Skip to main content
Module

x/importmap/testdata/scopes-exact-vs-prefix.json

Resolve specifiers with import maps.
Go to Latest
File
{ "name": "Exact vs. prefix based matching", "details": "Scopes are matched with base URLs that are exactly the same or subpaths under the scopes with trailing shashes", "link": "https://wicg.github.io/import-maps/#resolve-a-module-specifier Step 8.1", "tests": { "Scope without trailing slash only": { "importMap": { "scopes": { "/js": { "moment": "/only-triggered-by-exact/moment", "moment/": "/only-triggered-by-exact/moment/" } } }, "importMapBaseURL": "https://example.com/app/index.html", "tests": { "Non-trailing-slash base URL (exact match)": { "baseURL": "https://example.com/js", "expectedResults": { "moment": "https://example.com/only-triggered-by-exact/moment", "moment/foo": "https://example.com/only-triggered-by-exact/moment/foo" } }, "Trailing-slash base URL (fail)": { "baseURL": "https://example.com/js/", "expectedResults": { "moment": null, "moment/foo": null } }, "Subpath base URL (fail)": { "baseURL": "https://example.com/js/app.mjs", "expectedResults": { "moment": null, "moment/foo": null } }, "Non-subpath base URL (fail)": { "baseURL": "https://example.com/jsiscool", "expectedResults": { "moment": null, "moment/foo": null } } } }, "Scope with trailing slash only": { "importMap": { "scopes": { "/js/": { "moment": "/triggered-by-any-subpath/moment", "moment/": "/triggered-by-any-subpath/moment/" } } }, "importMapBaseURL": "https://example.com/app/index.html", "tests": { "Non-trailing-slash base URL (fail)": { "baseURL": "https://example.com/js", "expectedResults": { "moment": null, "moment/foo": null } }, "Trailing-slash base URL (exact match)": { "baseURL": "https://example.com/js/", "expectedResults": { "moment": "https://example.com/triggered-by-any-subpath/moment", "moment/foo": "https://example.com/triggered-by-any-subpath/moment/foo" } }, "Subpath base URL (prefix match)": { "baseURL": "https://example.com/js/app.mjs", "expectedResults": { "moment": "https://example.com/triggered-by-any-subpath/moment", "moment/foo": "https://example.com/triggered-by-any-subpath/moment/foo" } }, "Non-subpath base URL (fail)": { "baseURL": "https://example.com/jsiscool", "expectedResults": { "moment": null, "moment/foo": null } } } }, "Scopes with and without trailing slash": { "importMap": { "scopes": { "/js": { "moment": "/only-triggered-by-exact/moment", "moment/": "/only-triggered-by-exact/moment/" }, "/js/": { "moment": "/triggered-by-any-subpath/moment", "moment/": "/triggered-by-any-subpath/moment/" } } }, "importMapBaseURL": "https://example.com/app/index.html", "tests": { "Non-trailing-slash base URL (exact match)": { "baseURL": "https://example.com/js", "expectedResults": { "moment": "https://example.com/only-triggered-by-exact/moment", "moment/foo": "https://example.com/only-triggered-by-exact/moment/foo" } }, "Trailing-slash base URL (exact match)": { "baseURL": "https://example.com/js/", "expectedResults": { "moment": "https://example.com/triggered-by-any-subpath/moment", "moment/foo": "https://example.com/triggered-by-any-subpath/moment/foo" } }, "Subpath base URL (prefix match)": { "baseURL": "https://example.com/js/app.mjs", "expectedResults": { "moment": "https://example.com/triggered-by-any-subpath/moment", "moment/foo": "https://example.com/triggered-by-any-subpath/moment/foo" } }, "Non-subpath base URL (fail)": { "baseURL": "https://example.com/jsiscool", "expectedResults": { "moment": null, "moment/foo": null } } } } }}