PR-URL: https://github.com/nodejs/node/pull/58537 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
26 lines
836 B
JavaScript
26 lines
836 B
JavaScript
// META: global=window,worker
|
|
|
|
function runTests(data) {
|
|
for (let entry of data) {
|
|
test(function () {
|
|
const pattern = new URLPattern(entry.pattern);
|
|
|
|
if (entry.expected === null) {
|
|
assert_throws_js(TypeError, _ => pattern.generate(entry.component, entry.groups),
|
|
'generate() should fail with TypeError');
|
|
return;
|
|
}
|
|
|
|
const result = pattern.generate(entry.component, entry.groups);
|
|
assert_equals(result, entry.expected);
|
|
}, `Pattern: ${JSON.stringify(entry.pattern)} ` +
|
|
`Component: ${entry.component} ` +
|
|
`Groups: ${JSON.stringify(entry.groups)}`);
|
|
}
|
|
}
|
|
|
|
promise_test(async function () {
|
|
const response = await fetch('resources/urlpattern-generate-test-data.json');
|
|
const data = await response.json();
|
|
runTests(data);
|
|
}, 'Loading data...');
|