Files
GMW/tests/state/uiState.test.ts
T

45 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { normalizeSharedUIState } from "../../src/state/uiState";
describe("normalizeSharedUIState", () => {
it("maps legacy selectedGuild into voice and text guilds", () => {
expect(normalizeSharedUIState({ selectedGuild: "guild-1" })).toEqual({
selectedVoiceGuild: "guild-1",
selectedVoiceChannel: "",
selectedTextGuild: "guild-1",
selectedTextChannel: "",
activeTab: "voice",
isListening: false,
isStreaming: false,
});
});
it("keeps valid explicit values", () => {
expect(
normalizeSharedUIState({
selectedVoiceGuild: "voice-guild",
selectedVoiceChannel: "voice-channel",
selectedTextGuild: "text-guild",
selectedTextChannel: "text-channel",
activeTab: "media",
isListening: true,
isStreaming: true,
}),
).toEqual({
selectedVoiceGuild: "voice-guild",
selectedVoiceChannel: "voice-channel",
selectedTextGuild: "text-guild",
selectedTextChannel: "text-channel",
activeTab: "media",
isListening: true,
isStreaming: true,
});
});
it("falls back to voice tab for invalid activeTab", () => {
expect(normalizeSharedUIState({ activeTab: "bad" as never })).toMatchObject({
activeTab: "voice",
});
});
});