import { describe, it, expect } from 'vitest'; import { diffManifest } from '../../src/lib/sw/diff-manifest'; describe('diffManifest', () => { it('detects new IDs to add', () => { const result = diffManifest([1, 2, 3, 4], [1, 2]); expect(result.toAdd.sort()).toEqual([3, 4]); expect(result.toRemove).toEqual([]); }); it('detects removed IDs', () => { const result = diffManifest([1, 2], [1, 2, 3, 4]); expect(result.toAdd).toEqual([]); expect(result.toRemove.sort()).toEqual([3, 4]); }); it('detects both add and remove in one diff', () => { const result = diffManifest([1, 3, 5], [1, 2, 3]); expect(result.toAdd).toEqual([5]); expect(result.toRemove).toEqual([2]); }); it('returns empty arrays when identical', () => { const result = diffManifest([1, 2, 3], [3, 2, 1]); expect(result.toAdd).toEqual([]); expect(result.toRemove).toEqual([]); }); it('handles empty caches (first sync)', () => { const result = diffManifest([1, 2], []); expect(result.toAdd.sort()).toEqual([1, 2]); expect(result.toRemove).toEqual([]); }); });