Il taccuino: le tappe del capitolo e l'obiettivo di adesso (tasto N)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApqNBvNbNCwXqR2RLo8QJh
This commit is contained in:
+8
-1
@@ -238,8 +238,15 @@ try {
|
||||
await page.waitForSelector('#continue:not([hidden])');
|
||||
await page.click('#continue');
|
||||
assert.equal(await page.evaluate(() => game.state.scene), 'trebbio');
|
||||
// La mappa: dal Trebbio alla Piazza con due clic; i posti mai visti (la Pieve) non ci sono.
|
||||
await settle(page);
|
||||
// Il taccuino (N): la tappa di adesso in evidenza, Esc lo chiude.
|
||||
await page.keyboard.press('n');
|
||||
assert.ok(await page.isVisible('#notebook'));
|
||||
assert.ok((await page.textContent('#notebook-list li.now')).length > 10, 'c\'è l\'obiettivo di adesso');
|
||||
await page.screenshot({ path: `${OUT}/07a-taccuino.png` });
|
||||
await page.keyboard.press('Escape');
|
||||
assert.ok(await page.isHidden('#notebook'));
|
||||
// La mappa: dal Trebbio alla Piazza con due clic; i posti mai visti (la Pieve) non ci sono.
|
||||
await page.click('#map-button');
|
||||
assert.equal(await page.locator('#map-board button[data-scene="pieve"]').count(), 0, 'la Pieve non è ancora vista');
|
||||
assert.ok(await page.isVisible('#map-board button.here[data-scene="trebbio"]'));
|
||||
|
||||
@@ -104,6 +104,24 @@ test('i crediti: i nomi di ogni voce escono in ordine casuale, sempre tutti', ()
|
||||
assert.ok(orders.size > 3, `${idee}: l'ordine non cambia`);
|
||||
});
|
||||
|
||||
test('il taccuino: lungo la soluzione le tappe si spuntano in ordine, una alla volta, e alla fine sono tutte fatte', () => {
|
||||
const g = new Game(story);
|
||||
g.go(story.start.scene, story.start.at);
|
||||
settle(g);
|
||||
assert.equal(g.notebook().done.length, 0);
|
||||
assert.match(g.notebook().now, /vecchietti/);
|
||||
let last = 0;
|
||||
for (const [verb, target, item] of solution) {
|
||||
if (verb === 'choose') g.choose(g.options().findIndex(o => o.text === target)); else g.act(verb, target, item);
|
||||
settle(g);
|
||||
const n = g.notebook().done.length;
|
||||
assert.ok(n === last || n === last + 1, `tappe saltate dopo ${verb} ${target}`);
|
||||
last = n;
|
||||
}
|
||||
assert.equal(g.notebook().now, null);
|
||||
assert.equal(g.notebook().done.length, story.notebook.length);
|
||||
});
|
||||
|
||||
test('la ricerca della mappa: pezzi di parola, senza maiuscole, accenti e apostrofi', () => {
|
||||
assert.ok(matchPlace('Campomigliaio', 'camp'));
|
||||
assert.ok(matchPlace('Via de\' Medici', 'de medici'));
|
||||
|
||||
Reference in New Issue
Block a user