mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-16 21:53:07 +00:00
61 lines
2.9 KiB
JavaScript
61 lines
2.9 KiB
JavaScript
import { parseGitLogOutput } from '../src/lib/git-log-parser.js';
|
|
|
|
// Mock data with NUL-based separator
|
|
const mockGitOutput = `a1b2c3d4e5f67890abcd1234567890abcd1234\x00a1b2c3\x00John Doe\x00john@example.com\x002023-01-01T12:00:00Z\x00Initial commit\x00This is the commit body\x00e5f6g7h8i9j0klmnoprstuv\x00e5f6g7\x00Jane Smith\x00jane@example.com\x002023-01-02T12:00:00Z\x00Fix bug\x00Fixed the bug with ---END--- in the message\x00q1w2e3r4t5y6u7i8o9p0asdfghjkl\x00q1w2e3\x00Bob Johnson\x00bob@example.com\x002023-01-03T12:00:00Z\x00Another commit\x00Empty body\x00`;
|
|
|
|
// Mock data with problematic ---END--- in commit message
|
|
const mockOutputWithEndMarker = `a1b2c3d4e5f67890abcd1234567890abcd1234\x00a1b2c3\x00John Doe\x00john@example.com\x002023-01-01T12:00:00Z\x00Initial commit\x00This is the commit body\x00---END--- is in this message\x00e5f6g7h8i9j0klmnoprstuv\x00e5f6g7\x00Jane Smith\x00jane@example.com\x002023-01-02T12:00:00Z\x00Fix bug\x00Fixed the bug with ---END--- in the message\x00q1w2e3r4t5y6u7i8o9p0asdfghjkl\x00q1w2e3\x00Bob Johnson\x00bob@example.com\x002023-01-03T12:00:00Z\x00Another commit\x00Empty body\x00`;
|
|
|
|
console.log('Testing parseGitLogOutput with NUL-based separator...\n');
|
|
|
|
// Test 1: Normal parsing
|
|
console.log('Test 1: Normal parsing');
|
|
try {
|
|
const commits = parseGitLogOutput(mockGitOutput);
|
|
console.log(`✓ Parsed ${commits.length} commits successfully`);
|
|
console.log('First commit:', commits[0]);
|
|
console.log('Second commit:', commits[1]);
|
|
console.log('Third commit:', commits[2]);
|
|
console.log('');
|
|
} catch (error) {
|
|
console.error('✗ Test 1 failed:', error);
|
|
}
|
|
|
|
// Test 2: Parsing with ---END--- in commit messages
|
|
console.log('Test 2: Parsing with ---END--- in commit messages');
|
|
try {
|
|
const commits = parseGitLogOutput(mockOutputWithEndMarker);
|
|
console.log(`✓ Parsed ${commits.length} commits successfully`);
|
|
console.log('Commits with ---END--- in messages:');
|
|
commits.forEach((commit, index) => {
|
|
console.log(`${index + 1}. ${commit.subject}: "${commit.body}"`);
|
|
});
|
|
console.log('');
|
|
} catch (error) {
|
|
console.error('✗ Test 2 failed:', error);
|
|
}
|
|
|
|
// Test 3: Empty output
|
|
console.log('Test 3: Empty output');
|
|
try {
|
|
const commits = parseGitLogOutput('');
|
|
console.log(`✓ Parsed ${commits.length} commits from empty output`);
|
|
console.log('');
|
|
} catch (error) {
|
|
console.error('✗ Test 3 failed:', error);
|
|
}
|
|
|
|
// Test 4: Output with only one commit
|
|
console.log('Test 4: Output with only one commit');
|
|
const singleCommitOutput = `a1b2c3d4e5f67890abcd1234567890abcd1234\x00a1b2c3\x00John Doe\x00john@example.com\x002023-01-01T12:00:00Z\x00Single commit\x00Single commit body\x00`;
|
|
try {
|
|
const commits = parseGitLogOutput(singleCommitOutput);
|
|
console.log(`✓ Parsed ${commits.length} commits successfully`);
|
|
console.log('Single commit:', commits[0]);
|
|
console.log('');
|
|
} catch (error) {
|
|
console.error('✗ Test 4 failed:', error);
|
|
}
|
|
|
|
console.log('All tests completed!');
|