60 lines
2.1 KiB
TypeScript
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);
|
|
});
|
|
});
|