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