16 lines
865 B
JavaScript
16 lines
865 B
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { activityStatus, normalizeActivity } from '../src/lib/activities.js';
|
|
|
|
test('activityStatus distinguishes upcoming, active and ended', () => {
|
|
const now = new Date('2026-09-21T12:00:00Z');
|
|
assert.equal(activityStatus('2026-09-22T12:00:00Z', null, now), 'upcoming');
|
|
assert.equal(activityStatus('2026-09-21T11:00:00Z', '2026-09-21T13:00:00Z', now), 'active');
|
|
assert.equal(activityStatus('2026-09-20T11:00:00Z', '2026-09-20T13:00:00Z', now), 'ended');
|
|
});
|
|
test('normalizeActivity supplies stable arrays and numeric count', () => {
|
|
const value = normalizeActivity({ startsAt: '2026-09-22T12:00:00Z', participantCount: '3' }, new Date('2026-09-21T12:00:00Z'));
|
|
assert.deepEqual(value.images, []); assert.deepEqual(value.tags, []); assert.equal(value.participantCount, 3);
|
|
});
|
|
|