Files
cosmos-explorer/src/Utils/MessageValidation.test.ts
asier-isayas d9436be61b Remove references to old Portal Backend (#2109)
* remove old portal backend endpoints

* format

* fix tests

* remove Materialized Views from createResourceTokenTreeNodes

* add portal FE back to defaultAllowedBackendEndpoints

---------

Co-authored-by: Asier Isayas <aisayas@microsoft.com>
2025-04-28 13:29:27 -04:00

46 lines
2.8 KiB
TypeScript

import { isInvalidParentFrameOrigin, isReadyMessage } from "./MessageValidation";
describe("isInvalidParentFrameOrigin", () => {
test.each`
domain | expected
${"https://cosmos.azure.com"} | ${false}
${"https://cosmos.azure.us"} | ${false}
${"https://cosmos.azure.cn"} | ${false}
${"https://portal.azure.com"} | ${false}
${"https://portal.azure.us"} | ${false}
${"https://portal.azure.cn"} | ${false}
${"https://portal.microsoftazure.de"} | ${false}
${"https://subdomain.portal.azure.com"} | ${false}
${"https://subdomain.portal.azure.us"} | ${false}
${"https://subdomain.portal.azure.cn"} | ${false}
${"https://cdb-ms-prod-pbe.cosmos.azure.com"} | ${false}
${"https://cdb-ff-prod-pbe.cosmos.azure.us"} | ${false}
${"https://cdb-mc-prod-pbe.cosmos.azure.cn"} | ${false}
${"https://cosmos-db-dataexplorer-germanycentral.azurewebsites.de"} | ${false}
${"https://random.domain"} | ${true}
${"https://malicious.cloudapp.azure.com"} | ${true}
${"https://malicious.germanycentral.cloudapp.microsoftazure.de"} | ${true}
${"https://maliciousazure.com"} | ${true}
${"https://maliciousportalsazure.com"} | ${true}
${"https://cosmos-db-dataexplorer-germanycentralAazurewebsites.de"} | ${true}
`("returns $expected when called with $domain", ({ domain, expected }) => {
expect(isInvalidParentFrameOrigin({ origin: domain } as MessageEvent)).toBe(expected);
});
});
describe("isReadyMessage", () => {
test.each`
event | expected
${{ data: { kind: "ready" } }} | ${true}
${{ data: { data: "ready" } }} | ${true}
${{ data: { data: "ready", kind: "ready" } }} | ${true}
${{ data: { kind: "not-ready" } }} | ${false}
${{ data: { data: "not-ready" } }} | ${false}
${{ data: { data: "not-ready", kind: "not-ready" } }} | ${false}
${{ data: {} }} | ${false}
${{}} | ${false}
`("returns $expected when called with $event", ({ event, expected }) => {
expect(isReadyMessage(event as MessageEvent)).toBe(expected);
});
});