From 5f94c2592d4a8b7b34c7fc179dc2bb3687127384 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 20 Apr 2026 18:17:04 +0100 Subject: [PATCH] test: stabilize directory id sorting --- extensions/discord/src/directory-contract.test.ts | 12 +++++++++++- extensions/slack/src/directory-contract.test.ts | 12 +++++++++++- extensions/telegram/src/directory-contract.test.ts | 13 ++++++++++--- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/extensions/discord/src/directory-contract.test.ts b/extensions/discord/src/directory-contract.test.ts index b8a2d4f4b20..c8e61dccfbc 100644 --- a/extensions/discord/src/directory-contract.test.ts +++ b/extensions/discord/src/directory-contract.test.ts @@ -36,7 +36,17 @@ async function expectDirectoryIds( ) { const entries = await listDirectoryEntriesWithDefaults(listFn, cfg); const ids = entries.map((entry) => entry.id); - expect(options?.sorted ? ids.toSorted((a, b) => a.localeCompare(b)) : ids).toEqual(expected); + expect(options?.sorted ? sortDirectoryIds(ids) : ids).toEqual( + options?.sorted ? sortDirectoryIds(expected) : expected, + ); +} + +function compareDirectoryIds(left: string, right: string) { + return left < right ? -1 : left > right ? 1 : 0; +} + +function sortDirectoryIds(values: string[]) { + return values.toSorted(compareDirectoryIds); } describe("Discord directory contract", () => { diff --git a/extensions/slack/src/directory-contract.test.ts b/extensions/slack/src/directory-contract.test.ts index f3e0021301e..47a08752b1f 100644 --- a/extensions/slack/src/directory-contract.test.ts +++ b/extensions/slack/src/directory-contract.test.ts @@ -31,7 +31,17 @@ async function expectDirectoryIds( ) { const entries = await listDirectoryEntriesWithDefaults(listFn, cfg); const ids = entries.map((entry) => entry.id); - expect(options?.sorted ? ids.toSorted((a, b) => a.localeCompare(b)) : ids).toEqual(expected); + expect(options?.sorted ? sortDirectoryIds(ids) : ids).toEqual( + options?.sorted ? sortDirectoryIds(expected) : expected, + ); +} + +function compareDirectoryIds(left: string, right: string) { + return left < right ? -1 : left > right ? 1 : 0; +} + +function sortDirectoryIds(values: string[]) { + return values.toSorted(compareDirectoryIds); } describe("Slack directory contract", () => { diff --git a/extensions/telegram/src/directory-contract.test.ts b/extensions/telegram/src/directory-contract.test.ts index e2902a2a875..5cc78ecb1ff 100644 --- a/extensions/telegram/src/directory-contract.test.ts +++ b/extensions/telegram/src/directory-contract.test.ts @@ -36,12 +36,19 @@ async function expectDirectoryIds( ) { const entries = await listDirectoryEntriesWithDefaults(listFn, cfg); const ids = entries.map((entry) => entry.id); - const sortIds = (values: string[]) => values.toSorted((a, b) => a.localeCompare(b)); - expect(options?.sorted ? sortIds(ids) : ids).toEqual( - options?.sorted ? sortIds(expected) : expected, + expect(options?.sorted ? sortDirectoryIds(ids) : ids).toEqual( + options?.sorted ? sortDirectoryIds(expected) : expected, ); } +function compareDirectoryIds(left: string, right: string) { + return left < right ? -1 : left > right ? 1 : 0; +} + +function sortDirectoryIds(values: string[]) { + return values.toSorted(compareDirectoryIds); +} + describe("Telegram directory contract", () => { it("keeps public probe and token resolution aligned with base contracts", () => { expectTypeOf().toMatchTypeOf();