mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-15 23:41:53 -05:00
Fix splatnet room url detection logic
This commit is contained in:
parent
fe782602fe
commit
0bcbc83cb4
|
|
@ -7,6 +7,14 @@ import {
|
|||
|
||||
describe("isSplatnetRoomUrl", () => {
|
||||
test("accepts canonical SplatNet share path", () => {
|
||||
expect(
|
||||
isSplatnetRoomUrl(
|
||||
"https://s.nintendo.com/av5ja-lp1/znca/game/4834290508791808?p=%2Froom_creator%2Finvitation%2F1f14e24b-3c9e-6352-8a80-b7993ffad0d0",
|
||||
),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
test("accepts canonical SplatNet share path (no query params)", () => {
|
||||
expect(isSplatnetRoomUrl("https://s.nintendo.com/av5ja-lp1/abc123")).toBe(
|
||||
true,
|
||||
);
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ export function isSplatnetRoomUrl(url: string): boolean {
|
|||
parsed.username === "" &&
|
||||
parsed.password === "" &&
|
||||
parsed.port === "" &&
|
||||
parsed.search === "" &&
|
||||
parsed.hash === "" &&
|
||||
SPLATNET_ROOM_PATH_PATTERN.test(parsed.pathname)
|
||||
SPLATNET_ROOM_PATH_PATTERN.test(parsed.pathname) &&
|
||||
isAllowedSplatnetSearch(parsed.searchParams)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -42,3 +42,10 @@ export function isMatchRoomUrl(url: string) {
|
|||
const pathname = URL.canParse(url) ? new URL(url).pathname : url;
|
||||
return MATCH_ROOM_URL_PATTERN.test(pathname);
|
||||
}
|
||||
|
||||
function isAllowedSplatnetSearch(params: URLSearchParams): boolean {
|
||||
if (params.size === 0) return true;
|
||||
if (params.size > 1) return false;
|
||||
const p = params.get("p");
|
||||
return p !== null && SPLATNET_ROOM_PATH_PATTERN.test(p);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user