Prototipo del motore: scena, camminata, verbi, inventario, dialoghi, salvataggio
Motore guidato dai dati con due scene di prova (Piazza e salita alla Fortezza), percorsi su area concava, clic intelligente e pressione lunga, test della soluzione completa in node e nel browser con Playwright. Nel documento la leggenda del nonno. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { readSave, writeSave, clearSave } from '../src/engine/storage.js';
|
||||
import { memoryStorage } from './helpers.mjs';
|
||||
|
||||
test('scrive, rilegge e cancella il salvataggio', () => {
|
||||
const s = memoryStorage();
|
||||
assert.equal(readSave(s), null);
|
||||
assert.ok(writeSave(s, { scene: 'piazza' }));
|
||||
assert.deepEqual(readSave(s), { scene: 'piazza' });
|
||||
assert.ok(clearSave(s));
|
||||
assert.equal(readSave(s), null);
|
||||
});
|
||||
|
||||
test('un archivio rotto o bloccato non fa cadere il gioco', () => {
|
||||
const broken = { getItem() { throw new Error('bloccato'); }, setItem() { throw new Error('pieno'); }, removeItem() { throw new Error('no'); } };
|
||||
assert.equal(readSave(broken), null);
|
||||
assert.equal(writeSave(broken, {}), false);
|
||||
assert.equal(clearSave(broken), false);
|
||||
const garbage = memoryStorage();
|
||||
garbage.setItem('leggenda-regolo-save', '{non è json');
|
||||
assert.equal(readSave(garbage), null);
|
||||
});
|
||||
Reference in New Issue
Block a user