aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/viewer/tests/latest.test.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/tests/latest.test.mjs')
-rw-r--r--viewer/tests/latest.test.mjs24
1 files changed, 24 insertions, 0 deletions
diff --git a/viewer/tests/latest.test.mjs b/viewer/tests/latest.test.mjs
new file mode 100644
index 0000000..e257ebf
--- /dev/null
+++ b/viewer/tests/latest.test.mjs
@@ -0,0 +1,24 @@
+import './_planet.mjs';
+import { test } from 'node:test';
+import assert from 'node:assert/strict';
+
+const { Latest } = await import('../js/latest.js');
+const { metaFor } = await import('../js/boot.js');
+
+test('only the newest call is current: an older answer arriving late is dropped', () => {
+ const l = new Latest();
+ const a = l.next(), b = l.next();
+ assert.equal(l.is(a), false);
+ assert.equal(l.is(b), true);
+});
+
+test('startup meta: an unknown era falls back to the default with a note', async () => {
+ const get = async u => { if (u.includes('era=')) throw new Error('unknown era'); return { era: 'hf' }; };
+ assert.deepEqual(await metaFor(get, 'x'), { meta: { era: 'hf' }, note: 'Era “x”: unknown era — showing hf' });
+ assert.deepEqual(await metaFor(get, ''), { meta: { era: 'hf' }, note: '' });
+});
+
+test('startup meta: without an era a failure is not called an unknown era', async () => {
+ const get = async () => { throw new Error('502 Bad Gateway'); };
+ await assert.rejects(metaFor(get, ''), /502/);
+});