Files
sunrise/tests/flashlight.test.ts
T

15 lines
905 B
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { flashlightAfterSunUpdate } from '../src/controls/flashlight.ts';
test('sunset enables the flashlight once, preserves manual off, and resets at dawn', () => {
assert.equal(flashlightAfterSunUpdate(false, undefined, 20), false);
assert.equal(flashlightAfterSunUpdate(false, 1, -0.1), false, 'wait until the solar disc has set');
assert.equal(flashlightAfterSunUpdate(false, -0.1, -1), true);
assert.equal(flashlightAfterSunUpdate(false, -1, -2), false, 'manual off survives time updates');
assert.equal(flashlightAfterSunUpdate(true, -2, -3), true);
assert.equal(flashlightAfterSunUpdate(true, -3, 1), false);
assert.equal(flashlightAfterSunUpdate(false, 1, -1), true, 'next night enables again');
assert.equal(flashlightAfterSunUpdate(false, undefined, -10), true, 'nighttime arrival enables the torch');
});