Skip to content

Commit 2fc83ea

Browse files
committed
test: add simple generic config validations
1 parent fac8171 commit 2fc83ea

File tree

10 files changed

+523
-4
lines changed

10 files changed

+523
-4
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`rules body-leading-blank empty 1`] = `
4+
Array [
5+
false,
6+
"body must have leading blank line",
7+
]
8+
`;
9+
10+
exports[`rules body-leading-blank filled 1`] = `
11+
Array [
12+
true,
13+
]
14+
`;
15+
16+
exports[`rules body-leading-blank simple 1`] = `
17+
Array [
18+
true,
19+
]
20+
`;
21+
22+
exports[`rules footer-leading-blank empty 1`] = `
23+
Array [
24+
true,
25+
]
26+
`;
27+
28+
exports[`rules footer-leading-blank filled 1`] = `
29+
Array [
30+
false,
31+
"footer must have leading blank line",
32+
]
33+
`;
34+
35+
exports[`rules footer-leading-blank simple 1`] = `
36+
Array [
37+
true,
38+
]
39+
`;
40+
41+
exports[`rules header-max-length empty 1`] = `
42+
Array [
43+
false,
44+
"header must not be longer than always characters, current length is 13",
45+
]
46+
`;
47+
48+
exports[`rules header-max-length filled 1`] = `
49+
Array [
50+
false,
51+
"header must not be longer than always characters, current length is 13",
52+
]
53+
`;
54+
55+
exports[`rules header-max-length simple 1`] = `
56+
Array [
57+
false,
58+
"header must not be longer than always characters, current length is 13",
59+
]
60+
`;
61+
62+
exports[`rules scope-case empty 1`] = `
63+
Array [
64+
true,
65+
]
66+
`;
67+
68+
exports[`rules scope-case filled 1`] = `
69+
Array [
70+
true,
71+
]
72+
`;
73+
74+
exports[`rules scope-case simple 1`] = `
75+
Array [
76+
true,
77+
]
78+
`;
79+
80+
exports[`rules subject-empty empty 1`] = `
81+
Array [
82+
false,
83+
"subject must be empty",
84+
]
85+
`;
86+
87+
exports[`rules subject-empty filled 1`] = `
88+
Array [
89+
false,
90+
"subject must be empty",
91+
]
92+
`;
93+
94+
exports[`rules subject-empty simple 1`] = `
95+
Array [
96+
false,
97+
"subject must be empty",
98+
]
99+
`;
100+
101+
exports[`rules subject-full-stop empty 1`] = `
102+
Array [
103+
false,
104+
"subject must end with full stop",
105+
]
106+
`;
107+
108+
exports[`rules subject-full-stop filled 1`] = `
109+
Array [
110+
false,
111+
"subject must end with full stop",
112+
]
113+
`;
114+
115+
exports[`rules subject-full-stop simple 1`] = `
116+
Array [
117+
false,
118+
"subject must end with full stop",
119+
]
120+
`;
121+
122+
exports[`rules type-empty empty 1`] = `
123+
Array [
124+
false,
125+
"type must be empty",
126+
]
127+
`;
128+
129+
exports[`rules type-empty filled 1`] = `
130+
Array [
131+
false,
132+
"type must be empty",
133+
]
134+
`;
135+
136+
exports[`rules type-empty simple 1`] = `
137+
Array [
138+
false,
139+
"type must be empty",
140+
]
141+
`;
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import config from '.';
2+
import rules from '@commitlint/rules';
3+
import parse from '@commitlint/parse';
4+
5+
const messages = Object.entries({
6+
simple: 'test: subject',
7+
empty: 'test: subject\nbody',
8+
filled: 'test: subject\nBREAKING CHANGE: something important'
9+
});
10+
const configRules = Object.entries(config.rules);
11+
12+
it('should have correct structure', () => {
13+
expect(config).toMatchObject({
14+
rules: expect.any(Object)
15+
});
16+
});
17+
18+
describe('rules', () => {
19+
describe.each(configRules)('%s', (name, options) => {
20+
it.each(messages)('%s', async (type, message) => {
21+
expect(rules[name](await parse(message), ...options)).toMatchSnapshot();
22+
});
23+
});
24+
});

@commitlint/config-angular/package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,15 @@
2828
"url": "https://github.com/conventional-changelog/commitlint/issues"
2929
},
3030
"homepage": "https://github.com/conventional-changelog/commitlint#readme",
31+
"babel": {
32+
"presets": [
33+
"babel-preset-commitlint"
34+
]
35+
},
3136
"devDependencies": {
32-
"@commitlint/utils": "^8.3.4"
37+
"@commitlint/utils": "^8.3.4",
38+
"@commitlint/rules": "^8.3.4",
39+
"@commitlint/parse": "^8.3.4"
3340
},
3441
"dependencies": {
3542
"@commitlint/config-angular-type-enum": "^8.3.4"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`rules body-leading-blank empty 1`] = `
4+
Array [
5+
false,
6+
"body must have leading blank line",
7+
]
8+
`;
9+
10+
exports[`rules body-leading-blank filled 1`] = `
11+
Array [
12+
true,
13+
]
14+
`;
15+
16+
exports[`rules body-leading-blank simple 1`] = `
17+
Array [
18+
true,
19+
]
20+
`;
21+
22+
exports[`rules footer-leading-blank empty 1`] = `
23+
Array [
24+
true,
25+
]
26+
`;
27+
28+
exports[`rules footer-leading-blank filled 1`] = `
29+
Array [
30+
false,
31+
"footer must have leading blank line",
32+
]
33+
`;
34+
35+
exports[`rules footer-leading-blank simple 1`] = `
36+
Array [
37+
true,
38+
]
39+
`;
40+
41+
exports[`rules header-max-length empty 1`] = `
42+
Array [
43+
false,
44+
"header must not be longer than always characters, current length is 13",
45+
]
46+
`;
47+
48+
exports[`rules header-max-length filled 1`] = `
49+
Array [
50+
false,
51+
"header must not be longer than always characters, current length is 13",
52+
]
53+
`;
54+
55+
exports[`rules header-max-length simple 1`] = `
56+
Array [
57+
false,
58+
"header must not be longer than always characters, current length is 13",
59+
]
60+
`;
61+
62+
exports[`rules scope-case empty 1`] = `
63+
Array [
64+
true,
65+
]
66+
`;
67+
68+
exports[`rules scope-case filled 1`] = `
69+
Array [
70+
true,
71+
]
72+
`;
73+
74+
exports[`rules scope-case simple 1`] = `
75+
Array [
76+
true,
77+
]
78+
`;
79+
80+
exports[`rules subject-empty empty 1`] = `
81+
Array [
82+
false,
83+
"subject must be empty",
84+
]
85+
`;
86+
87+
exports[`rules subject-empty filled 1`] = `
88+
Array [
89+
false,
90+
"subject must be empty",
91+
]
92+
`;
93+
94+
exports[`rules subject-empty simple 1`] = `
95+
Array [
96+
false,
97+
"subject must be empty",
98+
]
99+
`;
100+
101+
exports[`rules subject-full-stop empty 1`] = `
102+
Array [
103+
false,
104+
"subject must end with full stop",
105+
]
106+
`;
107+
108+
exports[`rules subject-full-stop filled 1`] = `
109+
Array [
110+
false,
111+
"subject must end with full stop",
112+
]
113+
`;
114+
115+
exports[`rules subject-full-stop simple 1`] = `
116+
Array [
117+
false,
118+
"subject must end with full stop",
119+
]
120+
`;
121+
122+
exports[`rules type-empty empty 1`] = `
123+
Array [
124+
false,
125+
"type must be empty",
126+
]
127+
`;
128+
129+
exports[`rules type-empty filled 1`] = `
130+
Array [
131+
false,
132+
"type must be empty",
133+
]
134+
`;
135+
136+
exports[`rules type-empty simple 1`] = `
137+
Array [
138+
false,
139+
"type must be empty",
140+
]
141+
`;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import config from '.';
2+
import rules from '@commitlint/rules';
3+
import parse from '@commitlint/parse';
4+
5+
const messages = Object.entries({
6+
simple: 'test: subject',
7+
empty: 'test: subject\nbody',
8+
filled: 'test: subject\nBREAKING CHANGE: something important'
9+
});
10+
const configRules = Object.entries(config.rules);
11+
12+
it('should have correct structure', () => {
13+
expect(config).toMatchObject({
14+
rules: expect.any(Object)
15+
});
16+
});
17+
18+
describe('rules', () => {
19+
describe.each(configRules)('%s', (name, options) => {
20+
it.each(messages)('%s', async (type, message) => {
21+
expect(rules[name](await parse(message), ...options)).toMatchSnapshot();
22+
});
23+
});
24+
});

@commitlint/config-conventional/package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,15 @@
3131
"url": "https://github.com/conventional-changelog/commitlint/issues"
3232
},
3333
"homepage": "https://github.com/conventional-changelog/commitlint#readme",
34+
"babel": {
35+
"presets": [
36+
"babel-preset-commitlint"
37+
]
38+
},
3439
"devDependencies": {
35-
"@commitlint/utils": "^8.3.4"
40+
"@commitlint/utils": "^8.3.4",
41+
"@commitlint/rules": "^8.3.4",
42+
"@commitlint/parse": "^8.3.4"
3643
},
3744
"dependencies": {
3845
"conventional-changelog-conventionalcommits": "4.2.1"

0 commit comments

Comments
 (0)