You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							71 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							71 lines
						
					
					
						
							1.6 KiB
						
					
					
				| // Copyright 2014 Simon Lydell
 | |
| // X11 (“MIT”) Licensed. (See LICENSE.)
 | |
| 
 | |
| var test = require("tape")
 | |
| 
 | |
| var resolveUrl = require("../")
 | |
| 
 | |
| "use strict"
 | |
| 
 | |
| test("resolveUrl", function(t) {
 | |
| 
 | |
|   t.plan(7)
 | |
| 
 | |
|   t.equal(typeof resolveUrl, "function", "is a function")
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl("https://example.com/"),
 | |
|     "https://example.com/"
 | |
|   )
 | |
| 
 | |
|   var loc = "https://example.com/articles/resolving-urls/edit"
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl(loc, "remove"),
 | |
|     "https://example.com/articles/resolving-urls/remove"
 | |
|   )
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl(loc, "/static/scripts/app.js"),
 | |
|     "https://example.com/static/scripts/app.js"
 | |
|   )
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map"),
 | |
|     "https://example.com/static/source-maps/app.js.map"
 | |
|   )
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl(loc, "/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee"),
 | |
|     "https://example.com/static/coffee/app.coffee"
 | |
|   )
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl(loc, "//cdn.example.com/jquery.js"),
 | |
|     "https://cdn.example.com/jquery.js"
 | |
|   )
 | |
| 
 | |
| })
 | |
| 
 | |
| test("edge cases", function(t) {
 | |
| 
 | |
|   t.plan(4)
 | |
| 
 | |
|   t["throws"](resolveUrl, /at least one argument/, "throws with no arguments")
 | |
| 
 | |
|   var accidentallyUndefined
 | |
|   var result
 | |
|   t.doesNotThrow(
 | |
|     function() { result = resolveUrl(accidentallyUndefined) },
 | |
|     "undefined is still an argument"
 | |
|   )
 | |
|   t.ok(result.match(/\/undefined$/), "undefined is stringified")
 | |
| 
 | |
|   t.equal(
 | |
|     resolveUrl("http://foo.org/test", undefined, {}, ["a/b"], null),
 | |
|     "http://foo.org/a/null",
 | |
|     "arguments are stringified"
 | |
|   )
 | |
| 
 | |
| })
 |