test(FN-4459): complete Step 2 — add experiment session accessor tests

Fusion-Task-Id: FN-4459
Fusion-Task-Lineage: 3448a074-fa1c-45d6-8bb9-cc5922cee7f6
This commit is contained in:
Fusion
2026-05-14 03:44:22 -07:00
committed by gsxdsm
parent cddbb82c5f
commit 4aab9b5b31

View File

@@ -0,0 +1,58 @@
import { beforeEach, afterEach, describe, expect, it } from "vitest";
import { ExperimentSessionStore } from "../experiment-session-store.js";
import { createTaskStoreTestHarness } from "./store-test-helpers.js";
describe("TaskStore getExperimentSessionStore", () => {
const harness = createTaskStoreTestHarness();
beforeEach(harness.beforeEach);
afterEach(harness.afterEach);
it("returns an ExperimentSessionStore instance", () => {
const accessorStore = harness.store().getExperimentSessionStore();
expect(accessorStore).toBeInstanceOf(ExperimentSessionStore);
});
it("returns the same cached instance across calls", () => {
const store = harness.store();
const first = store.getExperimentSessionStore();
const second = store.getExperimentSessionStore();
expect(second).toBe(first);
});
it("uses the same project database backing storage", () => {
const taskStore = harness.store();
const accessorStore = taskStore.getExperimentSessionStore();
accessorStore.createSession({
name: "session-from-accessor",
metric: { name: "latency", direction: "minimize" },
});
const directStore = new ExperimentSessionStore(taskStore.getDatabase());
const sessions = directStore.listSessions();
expect(sessions).toHaveLength(1);
expect(sessions[0]?.name).toBe("session-from-accessor");
});
it("does not initialize research store when experiment accessor is called", () => {
const taskStore = harness.store() as unknown as {
getExperimentSessionStore: () => ExperimentSessionStore;
getResearchStore: () => unknown;
experimentSessionStore: ExperimentSessionStore | null;
researchStore: unknown;
};
expect(taskStore.researchStore).toBeNull();
expect(taskStore.experimentSessionStore).toBeNull();
taskStore.getExperimentSessionStore();
expect(taskStore.experimentSessionStore).toBeInstanceOf(ExperimentSessionStore);
expect(taskStore.researchStore).toBeNull();
const research = taskStore.getResearchStore();
expect(research).toBeTruthy();
});
});