33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
|
|
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);
|
||
|
|
});
|