diff options
Diffstat (limited to 'modules/test')
| -rw-r--r-- | modules/test/test-world-model-save.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/modules/test/test-world-model-save.js b/modules/test/test-world-model-save.js new file mode 100644 index 0000000..eabba84 --- /dev/null +++ b/modules/test/test-world-model-save.js @@ -0,0 +1,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); |