UNPKG

@radcliffetech/symbolos-core

Version:

Core symbolic simulation and execution engine for Symbolos

45 lines (44 loc) 1.77 kB
import { addToWorld, removeFromWorld } from "./world-actions"; import { beforeEach, describe, expect, it } from "vitest"; import { createSymbolicObject } from "./object-factory"; describe("world-actions", () => { let world; beforeEach(() => { world = { id: "test-world", tick: 0, step: 0, pipelineId: "test", runId: "test-run", artifacts: new Map(), context: {}, metadata: {}, }; }); it("adds a single symbolic object to world.artifacts", () => { const obj = createSymbolicObject("Note", { id: "n1", label: "hello" }); addToWorld(world, obj); expect(world.artifacts.get("n1")).toEqual(obj); }); it("adds multiple symbolic objects to world.artifacts", () => { const a = createSymbolicObject("Note", { id: "a", label: "a" }); const b = createSymbolicObject("Note", { id: "b", label: "b" }); addToWorld(world, [a, b]); expect(world.artifacts.size).toBe(2); expect(world.artifacts.get("a")).toEqual(a); expect(world.artifacts.get("b")).toEqual(b); }); it("removes a symbolic object by id", () => { const obj = createSymbolicObject("Note", { id: "n1", label: "hello" }); addToWorld(world, obj); removeFromWorld(world, "n1"); expect(world.artifacts.has("n1")).toBe(false); }); it("removes multiple symbolic objects by object reference", () => { const a = createSymbolicObject("Note", { id: "a", label: "a" }); const b = createSymbolicObject("Note", { id: "b", label: "b" }); addToWorld(world, [a, b]); removeFromWorld(world, [a, b]); expect(world.artifacts.size).toBe(0); }); });