unrip/test/json-state-store.test.mjs
philipp 57eb540b6e
All checks were successful
deploy / deploy (push) Successful in 22s
Fix shared state persistence
Proof: Liquidity manager must persist live deposit handles and funding observations so the active NEAR Intents proof can reach credited inventory and real execution.

Assumptions: Services commonly mutate store.getState() in place before calling setState, so the state store must preserve same-reference updates instead of clearing them.

Still fake: Strategy and executor remain disarmed, no live inventory is credited yet, and no live mainnet quote response has been sent.
2026-04-02 10:13:25 +02:00

54 lines
1.2 KiB
JavaScript

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',
},
},
});
});