2025-04-01 10:38:02 +09:00

59 lines
1.5 KiB
TypeScript

import { computeVersionDiff } from './diff';
describe('computeVersionDiff', () => {
it('should compute the correct diff for added and removed lines', () => {
const json1 = { a: 1, b: 2 };
const json2 = { a: 1, b: 3, c: 4 };
const result = computeVersionDiff(json1, json2);
expect(result.added).toBe(2);
expect(result.removed).toBe(1);
});
it('should handle empty objects', () => {
const json1 = {};
const json2 = {};
const result = computeVersionDiff(json1, json2);
expect(result.added).toBe(0);
expect(result.removed).toBe(0);
});
it('should handle nested objects', () => {
const json1 = { a: { b: 1 } };
const json2 = { a: { b: 2, c: 4 } };
const result = computeVersionDiff(json1, json2);
expect(result.added).toBe(2);
expect(result.removed).toBe(1);
});
it('should handle arrays', () => {
const json1 = { a: [1, 2, 3], b: 2 };
const json2 = { a: [1, 2, 4] };
const result = computeVersionDiff(json1, json2);
expect(result.added).toBe(1);
expect(result.removed).toBe(2);
});
it('should use normalizeFunction to normalize input objects', () => {
const json1 = { a: 1, b: 2 };
const json2 = { a: 1, b: 3, c: 4 };
const normalizeFunction = (item: typeof json1) => {
const { b, ...rest } = item;
return rest;
};
const result = computeVersionDiff(json1, json2, normalizeFunction);
expect(result.added).toBe(1);
expect(result.removed).toBe(0);
});
});