39 lines
1.7 KiB
JavaScript
39 lines
1.7 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
const module = await import('../../cli/tests/request-lifecycle-fixture.mjs').catch(e => {
|
|
if (e.code === 'ERR_MODULE_NOT_FOUND' && e.message.includes('request-lifecycle-fixture.mjs')) return {};
|
|
throw e;
|
|
});
|
|
|
|
test('signed-in Console buttons deliver the approved original request and downloaded timer works offline', { timeout: 180000 }, async t => {
|
|
assert.equal(typeof module.lifecycleFixture, 'function', 'Task 8 needs the real lifecycle browser fixture');
|
|
const f = await module.lifecycleFixture(t); await f.start();
|
|
const page = await f.consoleBrowser(t);
|
|
await page.choose('autonomous');
|
|
await f.continue();
|
|
const e = await f.evidence();
|
|
assert.equal(e.state.phase, 'complete');
|
|
const artifact = await f.download();
|
|
assert.equal(artifact, e.download);
|
|
await page.offline(artifact);
|
|
assert.equal(await page.clock(), '25:00');
|
|
assert.equal(await page.phase(), 'Work');
|
|
assert.equal(await page.cues(), 0);
|
|
await page.start(); await page.advance(1000);
|
|
assert.equal(await page.clock(), '24:59');
|
|
await page.pause(); await page.advance(10000);
|
|
assert.equal(await page.clock(), '24:59');
|
|
await page.start(); await page.advance(1499000);
|
|
assert.equal(await page.phase(), 'Break');
|
|
assert.equal(await page.clock(), '05:00');
|
|
assert.equal(await page.cues(), 1);
|
|
await page.advance(300000);
|
|
assert.equal(await page.phase(), 'Work');
|
|
assert.equal(await page.clock(), '25:00');
|
|
assert.equal(await page.cues(), 2);
|
|
await page.advance(7000); await page.reset();
|
|
assert.equal(await page.clock(), '25:00');
|
|
await page.advance(10000); assert.equal(await page.clock(), '25:00');
|
|
assert.deepEqual(await page.externalRequests(), []);
|
|
});
|