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 { createJsonStateStore } from '../src/core/json-state-store.mjs'; test('json state store preserves mutated in-memory state on setState', () => { const stateDir = fs.mkdtempSync(path.join(os.tmpdir(), 'unrip-json-state-')); const store = createJsonStateStore({ stateDir, fileName: 'state.json', initialState: { paused: false, publish_count: 0, deposit_addresses: {}, }, }); const state = store.getState(); state.publish_count = 1; state.deposit_addresses['btc:mainnet'] = { address: 'bc1qexample', }; store.setState(state); assert.deepEqual(store.getState(), { paused: false, publish_count: 1, deposit_addresses: { 'btc:mainnet': { address: 'bc1qexample', }, }, }); const reloaded = createJsonStateStore({ stateDir, fileName: 'state.json', initialState: {}, }); assert.deepEqual(reloaded.getState(), { paused: false, publish_count: 1, deposit_addresses: { 'btc:mainnet': { address: 'bc1qexample', }, }, }); });