| // 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" | 
|   ) | 
|   | 
| }) |