diff --git a/tests/redirect.test.ts b/tests/redirect.test.ts index c1a108e..63497ff 100644 --- a/tests/redirect.test.ts +++ b/tests/redirect.test.ts @@ -57,3 +57,35 @@ test('Redirect.redirect', (t) => { ); } }); + +test('Redirect.isMatch', (t) => { + type UrlSamples = Array<[string, boolean]>; + + const hostnameRedirect = new HostnameRedirect({ + hostname: 'example.org', + matchType: 'hostname', + toMatch: 'example.com', + type: 'hostname', + }); + + const hostnameSamples: UrlSamples = [ + ['https://example.com', true], + ['https://www.example.com', false], + ['https://example.org', false], + ]; + + const invalidRedirect = new HostnameRedirect({ + test: 'invalid', + } as unknown as Redirects['parameters']); + + const samples: Array<[Redirects, UrlSamples]> = [ + [invalidRedirect, [['https://example.org', false]]], + [hostnameRedirect, hostnameSamples], + ]; + + for (const [redirect, urlSamples] of samples) { + for (const [sample, expected] of urlSamples) { + t.is(redirect.isMatch(new URL(sample)), expected); + } + } +});