agent-ecosystem/test/renderer/store/teamDataRefreshTimestamps.test.ts
2026-05-22 10:00:54 +03:00

60 lines
2.1 KiB
TypeScript

import { afterEach, describe, expect, it, vi } from 'vitest';
import {
clearAllLastResolvedTeamDataRefreshes,
clearLastResolvedTeamDataRefreshAt,
getLastResolvedTeamDataRefreshAt,
hasLastResolvedTeamDataRefreshAt,
recordLastResolvedTeamDataRefresh,
} from '../../../src/renderer/store/team/teamDataRefreshTimestamps';
afterEach(() => {
vi.useRealTimers();
clearAllLastResolvedTeamDataRefreshes();
});
describe('teamDataRefreshTimestamps', () => {
it('returns undefined for teams without a recorded refresh', () => {
expect(getLastResolvedTeamDataRefreshAt('my-team')).toBeUndefined();
expect(hasLastResolvedTeamDataRefreshAt('my-team')).toBe(false);
});
it('records explicit refresh timestamps by team', () => {
recordLastResolvedTeamDataRefresh('my-team', 100);
recordLastResolvedTeamDataRefresh('other-team', 200);
expect(getLastResolvedTeamDataRefreshAt('my-team')).toBe(100);
expect(getLastResolvedTeamDataRefreshAt('other-team')).toBe(200);
expect(hasLastResolvedTeamDataRefreshAt('my-team')).toBe(true);
});
it('uses Date.now by default to preserve current call-site behavior', () => {
vi.setSystemTime(new Date('2026-05-22T06:30:00.000Z'));
recordLastResolvedTeamDataRefresh('my-team');
expect(getLastResolvedTeamDataRefreshAt('my-team')).toBe(
new Date('2026-05-22T06:30:00.000Z').getTime()
);
});
it('clears one team timestamp without touching other teams', () => {
recordLastResolvedTeamDataRefresh('my-team', 100);
recordLastResolvedTeamDataRefresh('other-team', 200);
clearLastResolvedTeamDataRefreshAt('my-team');
expect(getLastResolvedTeamDataRefreshAt('my-team')).toBeUndefined();
expect(getLastResolvedTeamDataRefreshAt('other-team')).toBe(200);
});
it('clears all recorded timestamps', () => {
recordLastResolvedTeamDataRefresh('my-team', 100);
recordLastResolvedTeamDataRefresh('other-team', 200);
clearAllLastResolvedTeamDataRefreshes();
expect(hasLastResolvedTeamDataRefreshAt('my-team')).toBe(false);
expect(hasLastResolvedTeamDataRefreshAt('other-team')).toBe(false);
});
});