aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/viewer/tests/latest.test.mjs
blob: e257ebf6c499ebd9713853b7ee93727bb9e01caa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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/);
});