Files
brain/tools/observer-of-observer.test.mjs
T

36 lines
1.2 KiB
JavaScript

import { describe, it, expect } from 'vitest';
import { isStale, weeksSince } from './observer-of-observer.mjs';
describe('weeksSince', () => {
it('returns 0 for now', () => {
const now = new Date('2026-05-19T00:00:00Z');
expect(weeksSince(now.toISOString(), now)).toBe(0);
});
it('returns 1 for 7 days ago', () => {
const past = new Date('2026-05-12T00:00:00Z');
const now = new Date('2026-05-19T00:00:00Z');
expect(weeksSince(past.toISOString(), now)).toBe(1);
});
it('returns 54+ for ~1 year ago', () => {
const past = new Date('2025-05-05T00:00:00Z');
const now = new Date('2026-05-19T00:00:00Z');
expect(weeksSince(past.toISOString(), now)).toBeGreaterThanOrEqual(54);
});
});
describe('isStale', () => {
it('false when last_read_at is recent', () => {
const counter = { last_read_at: '2026-05-12T00:00:00Z' };
const now = new Date('2026-05-19T00:00:00Z');
expect(isStale(counter, 54, now)).toBe(false);
});
it('true when last_read_at is >54 weeks ago', () => {
const counter = { last_read_at: '2025-05-05T00:00:00Z' };
const now = new Date('2026-05-19T00:00:00Z');
expect(isStale(counter, 54, now)).toBe(true);
});
});