Files
openclaw/src/gateway/server-wizard-sessions.test.ts
T
Peter Steinberger 8310c565e0 feat(onboarding): add provider sign-in (#104502)
* feat(onboarding): add provider sign-in flows

* fix(oauth): keep callback compatibility

* fix(onboarding): reconcile lost auth outcomes

* fix(onboarding): lock auth cancellation at commit

* fix(onboarding): close provider auth lifecycle gaps

* fix(onboarding): make terminal auth failures dismissable

* fix(onboarding): satisfy native app checks

* fix(onboarding): reconcile absent auth sessions

* fix(onboarding): bound provider auth sessions

* fix(onboarding): open provider auth links safely

* test(onboarding): use scanner-safe auth fixtures

* revert: keep established onboarding auth fixtures

* fix(onboarding): close provider auth cancellation gaps

* fix(gateway): retain uncollected wizard results

* fix(onboarding): bind provider reconciliation attempt

* fix(i18n): avoid guessing moved string identities

* style(onboarding): normalize remote auth choices efficiently

* fix(protocol): refresh optional provider auth choices

* test(gateway): cover provider auth dispatch order

* refactor(macos): split onboarding setup support

* fix(macos): refresh merged native checks
2026-07-11 13:00:17 -07:00

37 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { WizardSession } from "../wizard/session.js";
import { createWizardSessionTracker } from "./server-wizard-sessions.js";
describe("createWizardSessionTracker", () => {
it("retains an uncollected terminal result before reaping it", async () => {
let now = 1_000;
const tracker = createWizardSessionTracker({ now: () => now });
const terminal = new WizardSession(async () => {});
tracker.wizardSessions.set("finished", terminal);
await terminal.next();
expect(tracker.findRunningWizard()).toBeNull();
expect(tracker.wizardSessions.has("finished")).toBe(true);
now += 5 * 60 * 1000 - 1;
expect(tracker.findRunningWizard()).toBeNull();
expect(tracker.wizardSessions.has("finished")).toBe(true);
now += 1;
expect(tracker.findRunningWizard()).toBeNull();
expect(tracker.wizardSessions.has("finished")).toBe(false);
});
it("retains and reports the running session", () => {
const tracker = createWizardSessionTracker();
const running = new WizardSession(async (prompter) => {
await prompter.note("waiting");
});
tracker.wizardSessions.set("running", running);
expect(tracker.findRunningWizard()).toBe("running");
expect(tracker.wizardSessions.get("running")).toBe(running);
running.cancel();
});
});