pr-check / tests / parsers / extractDiffContent.test.ts
extractDiffContent.test.ts
Raw
import { expect, test, describe, it } from "bun:test";
import { CommitDiff } from "../../src/interfaces/CommitDiff";
import { generateHumanReadableCommitDiffDocument } from "../../src/parsers/extractDiffContent";

describe('generateHumanReadableDiffDocument', () => {
  it('should generate a human readable diff document', () => {
    // Arrange
    const commitDiff: CommitDiff = {
      commitHash: 'abcdef123456',
      author: 'John Doe',
      date: '2023-11-15',
      title: 'Fix a bug',
      message: 'This commit fixes a bug.',
      diffs: [
        {
          fileName: 'file1.txt',
          lines: [
            { lineNum: 1, content: 'Hello, world!' },
            { lineNum: 2, content: '+Hello, Git!' }
          ]
        },
        {
          fileName: 'file2.txt',
          lines: [
            { lineNum: 1, content: 'Goodbye, world!' },
            { lineNum: 2, content: '+Goodbye, Git!' }
          ]
        }
      ]
    };

    const expectedOutput = [
      'Commit title: Fix a bug',
      'Commit message: This commit fixes a bug.',
      'File: file1.txt',
      'Changes:',
      '1: Hello, world!',
      '2: +Hello, Git!',
      'File: file2.txt',
      'Changes:',
      '1: Goodbye, world!',
      '2: +Goodbye, Git!',
    ].join('\n');

    // Act
    const result = generateHumanReadableCommitDiffDocument(commitDiff);

    // Assert
    expect(result).toEqual(expectedOutput);
  });

});