59 lines
1.5 KiB
TypeScript
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);
|
|
});
|
|
});
|