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.
		
		
		
		
		
			
		
			
				
					
					
						
							70 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							70 lines
						
					
					
						
							1.5 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" | 
						|
  ) | 
						|
 | 
						|
})
 | 
						|
 |