import { DiffBuilder } from '../../../src/domain/entities/Diff'; describe('Diff Entity', () => { it('should create a diff with all required fields', () => { const diff = new DiffBuilder() .withFilePath('src/test.ts') .withOldContent('old content') .withNewContent('new content') .withLanguage('typescript') .build(); expect(diff.filePath).toBe('src/test.ts'); expect(diff.oldContent).toBe('old content'); expect(diff.newContent).toBe('new content'); expect(diff.language).toBe('typescript'); expect(diff.hunks).toEqual([]); expect(diff.isNewFile).toBe(false); expect(diff.isDeletedFile).toBe(false); expect(diff.isBinary).toBe(false); }); it('should create a new file diff', () => { const diff = new DiffBuilder() .withFilePath('src/new-file.ts') .withNewContent('new file content') .withLanguage('typescript') .asNewFile() .build(); expect(diff.isNewFile).toBe(true); expect(diff.isDeletedFile).toBe(false); }); it('should create a deleted file diff', () => { const diff = new DiffBuilder() .withFilePath('src/deleted-file.ts') .withOldContent('deleted file content') .withLanguage('typescript') .asDeletedFile() .build(); expect(diff.isNewFile).toBe(false); expect(diff.isDeletedFile).toBe(true); }); it('should create a binary file diff', () => { const diff = new DiffBuilder() .withFilePath('image.png') .withLanguage('binary') .asBinary() .build(); expect(diff.isBinary).toBe(true); }); });