mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-27 12:56:01 -06:00
8310c565e0
* 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
37 lines
1.3 KiB
TypeScript
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();
|
|
});
|
|
});
|