35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
|
|
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([]);
|
||
|
|
});
|
||
|
|
});
|