Source code

Revision control

Copy as Markdown

Other Tools

{
"name": "Scope sorting with multiple empty scopes",
"details": "Tests that empty scopes don't interfere with scope resolution priority. This reproduces a bug where having multiple empty scope entries before a more specific scope causes the wrong scope to be selected.",
"tests": {
"Multiple empty scopes before specific scope": {
"importMap": {
"scopes": {
"./__bundles__/asdfasdf/": {},
"./__bundles__/qwerqwer/": {},
"./__bundles__/foo/": {
"bar": "./__bundles__/bar/version2/index.js"
},
"./__bundles__/": {
"bar": "./__bundles__/bar/version1/index.js"
}
}
},
"importMapBaseURL": "https://example.com/",
"tests": {
"Import from foo should use version2": {
"expectedResults": {
}
},
"Import from root bundles should use version1": {
"expectedResults": {
}
},
"Import from asdfasdf should use version1 (empty scope)": {
"expectedResults": {
}
},
"Import from qwerqwer should use version1 (empty scope)": {
"expectedResults": {
}
}
}
},
"Empty scopes after specific scope": {
"importMap": {
"scopes": {
"./__bundles__/foo/": {
"bar": "./__bundles__/bar/version2/index.js"
},
"./__bundles__/": {
"bar": "./__bundles__/bar/version1/index.js"
},
"./__bundles__/asdfasdf/": {},
"./__bundles__/qwerqwer/": {}
}
},
"importMapBaseURL": "https://example.com/",
"tests": {
"Import from foo should use version2 (order independent)": {
"expectedResults": {
}
},
"Import from root bundles should use version1": {
"expectedResults": {
}
}
}
},
"Single empty scope before specific scope": {
"importMap": {
"scopes": {
"./__bundles__/asdfasdf/": {},
"./__bundles__/foo/": {
"bar": "./__bundles__/bar/version2/index.js"
},
"./__bundles__/": {
"bar": "./__bundles__/bar/version1/index.js"
}
}
},
"importMapBaseURL": "https://example.com/",
"tests": {
"Import from foo should use version2 (single empty scope)": {
"expectedResults": {
}
}
}
},
"Deeply nested scopes with empty scopes": {
"importMap": {
"scopes": {
"./a/b/c/d/": {},
"./a/b/c/e/": {},
"./a/b/foo/": {
"pkg": "./resolved/version2.js"
},
"./a/b/": {
"pkg": "./resolved/version1.js"
}
}
},
"importMapBaseURL": "https://example.com/",
"tests": {
"Import from a/b/foo should use version2": {
"expectedResults": {
}
},
"Import from a/b/ should use version1": {
"expectedResults": {
}
}
}
},
"Many empty scopes with different lengths": {
"importMap": {
"scopes": {
"./x/": {},
"./xy/": {},
"./xyz/": {},
"./xyzw/": {},
"./xyzwv/": {},
"./packages/foo/": {
"bar": "./bar/version2.js"
},
"./packages/": {
"bar": "./bar/version1.js"
}
}
},
"importMapBaseURL": "https://example.com/",
"tests": {
"Import from packages/foo should use version2": {
"expectedResults": {
}
},
"Import from packages/ should use version1": {
"expectedResults": {
}
}
}
}
}
}