1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
import validator from 'validator';
import { afterEach, describe, expect, it } from 'vitest';
import { faker } from '../src';
import { seededTests } from './support/seededRuns';
const NON_SEEDED_BASED_RUN = 5;
describe('git', () => {
afterEach(() => {
faker.locale = 'en';
});
seededTests(faker, 'git', (t) => {
t.itEach('branch', 'commitMessage', 'commitSha', 'shortSha');
// The timestamp is not fixed, so we can't compare it
t.todo('commitEntry');
});
describe(`random seeded tests for seed ${faker.seed()}`, () => {
for (let i = 1; i <= NON_SEEDED_BASED_RUN; i++) {
describe('branch()', () => {
it('should return a random branch', () => {
const branch = faker.git.branch();
expect(branch).toBeTruthy();
expect(branch).toBeTypeOf('string');
expect(branch).toSatisfy(validator.isSlug);
});
});
describe('commitEntry', () => {
it('should return a valid random commitEntry', () => {
const commitEntry = faker.git.commitEntry();
expect(commitEntry).toBeTruthy();
expect(commitEntry).toBeTypeOf('string');
const parts = commitEntry.split(/\r?\n/);
expect(parts.length).toBeGreaterThanOrEqual(6);
expect(parts.length).toBeLessThanOrEqual(7);
expect(parts[0]).toMatch(/^commit [a-f0-9]+$/);
if (parts.length === 7) {
expect(parts[1]).toMatch(/^Merge: [a-f0-9]+ [a-f0-9]+$/);
expect(parts[2]).toMatch(/^Author: \w+ \w+ \<[\w\.]+@[\w\.]+\>$/);
expect(parts[3]).toMatch(/^Date: .+$/);
expect(parts[4]).toBe('');
expect(parts[5]).toMatch(/^\s{4}.+$/);
} else {
expect(parts[1]).toMatch(/^Author: \w+ \w+ \<[\w\.]+@[\w\.]+\>$/);
expect(parts[2]).toMatch(/^Date: .+$/);
expect(parts[3]).toBe('');
expect(parts[4]).toMatch(/^\s{4}.+$/);
}
});
it('should return a random commitEntry with a default end of line charcter of "\r\n"', () => {
const commitEntry = faker.git.commitEntry();
const parts = commitEntry.split('\r\n');
expect(parts.length).toBeGreaterThanOrEqual(6);
expect(parts.length).toBeLessThanOrEqual(7);
});
it('should return a random commitEntry with a configured end of line charcter of "\r\n" with eol = CRLF', () => {
const commitEntry = faker.git.commitEntry({
eol: 'CRLF',
});
const parts = commitEntry.split('\r\n');
expect(parts.length).toBeGreaterThanOrEqual(6);
expect(parts.length).toBeLessThanOrEqual(7);
});
it('should return a random commitEntry with a configured end of line charcter of "\n" with eol = LF', () => {
const commitEntry = faker.git.commitEntry({
eol: 'LF',
});
const parts = commitEntry.split('\n');
expect(parts.length).toBeGreaterThanOrEqual(6);
expect(parts.length).toBeLessThanOrEqual(7);
expect(commitEntry).not.contains('\r\n');
});
});
describe('commitMessage', () => {
it('should return a random commitMessage', () => {
const commitMessage = faker.git.commitMessage();
expect(commitMessage).toBeTruthy();
expect(commitMessage).toBeTypeOf('string');
const parts = commitMessage.split(' ');
expect(parts.length).toBeGreaterThanOrEqual(3);
});
});
describe('commitSha', () => {
it('should return a random commitSha', () => {
const commitSha = faker.git.commitSha();
expect(commitSha).toBeTruthy();
expect(commitSha).toBeTypeOf('string');
expect(commitSha).toSatisfy(validator.isHexadecimal);
expect(commitSha).toHaveLength(40);
});
});
describe('shortSha', () => {
it('should return a random shortSha', () => {
const shortSha = faker.git.shortSha();
expect(shortSha).toBeTruthy();
expect(shortSha).toBeTypeOf('string');
expect(shortSha).toSatisfy(validator.isHexadecimal);
expect(shortSha).toHaveLength(7);
});
});
}
});
});
|