import test from 'node:test'; import assert from 'node:assert/strict'; import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; import { createArmedStateStore } from '../src/core/armed-state-store.mjs'; test('armed state store persists arm changes across reload', () => { const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), 'unrip-armed-state-')); const store = createArmedStateStore({ stateDir, fileName: 'strategy-engine-control.json', initialArmed: false, }); assert.equal(store.isArmed(), false); const armedState = store.setArmed(true); assert.equal(armedState.armed, true); assert.ok(armedState.updated_at); const reloaded = createArmedStateStore({ stateDir, fileName: 'strategy-engine-control.json', initialArmed: false, }); assert.equal(reloaded.isArmed(), true); assert.equal(reloaded.getState().armed, true); }); test('armed state store falls back to initial state when no persisted file exists', () => { const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), 'unrip-armed-state-default-')); const store = createArmedStateStore({ stateDir, fileName: 'trade-executor-control.json', initialArmed: true, }); assert.equal(store.isArmed(), true); assert.equal(store.getState().updated_at, null); });