Files
NetMesh/application/state/terminalCwdStore.test.ts

33 lines
1.2 KiB
TypeScript
Raw Normal View History

import assert from 'node:assert/strict';
import test from 'node:test';
import { terminalCwdStore } from './terminalCwdStore.ts';
test('terminalCwdStore bumps version only when cwd or provenance changes', () => {
const versions: number[] = [];
const unsubscribe = terminalCwdStore.subscribe(() => {
versions.push(terminalCwdStore.getVersion());
});
const baseVersion = terminalCwdStore.getVersion();
assert.equal(terminalCwdStore.setCwd('s1', '/tmp'), true);
assert.equal(terminalCwdStore.getCwd('s1'), '/tmp');
assert.equal(terminalCwdStore.getVersion(), baseVersion + 1);
assert.equal(terminalCwdStore.setCwd('s1', '/tmp'), false);
assert.equal(terminalCwdStore.getVersion(), baseVersion + 1);
assert.equal(terminalCwdStore.setCwd('s1', '/var'), true);
assert.equal(terminalCwdStore.getCwd('s1'), '/var');
assert.equal(terminalCwdStore.setCwd('s1', '/var', 'backend-strict'), true);
assert.equal(terminalCwdStore.getSource('s1'), 'backend-strict');
assert.equal(terminalCwdStore.setCwd('s1', '/var', 'backend-strict'), false);
terminalCwdStore.prune(new Set());
assert.equal(terminalCwdStore.getCwd('s1'), null);
unsubscribe();
assert.ok(versions.length >= 2);
});