aboutsummaryrefslogtreecommitdiff
path: root/modules/test/test-world-model-save.js
blob: eabba84ca4a2a9346ca32a17dcd43fc4e87b5d04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// modules/test/test-world-model-save.js  — run: node modules/test/test-world-model-save.js
const fs = require('fs'), path = require('path');
const src = fs.readFileSync(path.join(__dirname, '../core/module-world-model.js'), 'utf8');
const WorldModelModule = new Function(src + '\nreturn WorldModelModule;')();
const wm = new WorldModelModule();
wm._model = { version: 'test', nodes: 1 };

const calls = [];
const fake = {
    readDir: () => [], mkdir: () => {},
    readFile: () => '',
    writeFile: (p) => { calls.push(p); return false; },      // every write fails
    fsReadJSON: () => ({ version: 'test', nodes: 1 }),        // truthy: old code would promote
    fsWriteJSON: (p) => { calls.push(p); return false; },
    deleteFile: () => true,
};
const errs = []; const orig = console.error;
console.error = (m) => errs.push(String(m));
wm._saveToVFS(fake);
console.error = orig;

const promoted = calls.some(p => p === '/system/world-model.json');
console.log(JSON.stringify({ calls, errs, promoted }));
process.exit(promoted || errs.length === 0 ? 1 : 0);