forked from conventional-changelog/commitlint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscope-enum.test.ts
123 lines (104 loc) · 4.08 KB
/
scope-enum.test.ts
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
import parse from '@commitlint/parse';
import {scopeEnum} from './scope-enum';
const messages = {
plain: 'foo(bar): baz',
superfluous: 'foo(): baz',
empty: 'foo: baz',
multiple: 'foo(bar,baz): qux',
scoped: 'foo(@a/b): test',
};
const parsed = {
plain: parse(messages.plain),
superfluous: parse(messages.superfluous),
empty: parse(messages.empty),
multiple: parse(messages.multiple),
scoped: parse(messages.scoped),
};
test('scope-enum with plain message and always should succeed empty enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'always', []);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum allows custom delimiters', async () => {
const [actual] = scopeEnum(await parsed.scoped, 'always', {
values: ['@a/b'],
delimiter: /,/g,
});
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with plain message and never should error empty enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'never', []);
const expected = false;
expect(actual).toEqual(expected);
});
test('with plain message should succeed correct enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'always', ['bar']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with plain message should error false enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'always', ['foo']);
const expected = false;
expect(actual).toEqual(expected);
});
test('scope-enum with plain message should error forbidden enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'never', ['bar']);
const expected = false;
expect(actual).toEqual(expected);
});
test('scope-enum with plain message should succeed forbidden enum', async () => {
const [actual] = scopeEnum(await parsed.plain, 'never', ['foo']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with superfluous scope should succeed enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'always', ['bar']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with superfluous scope and "never" should succeed', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'never', ['bar']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with superfluous scope and always should succeed empty enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'always', []);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with superfluous scope and never should succeed empty enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'never', []);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with empty scope and always should succeed empty enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'always', []);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with empty scope and always should succeed filled enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'always', ['foo']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with empty scope and never should succeed empty enum', async () => {
const [actual] = scopeEnum(await parsed.superfluous, 'never', []);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with multiple scope should succeed on message with multiple scope', async () => {
const [actual] = scopeEnum(await parsed.multiple, 'never', ['bar', 'baz']);
const expected = false;
expect(actual).toEqual(expected);
});
test('scope-enum with multiple scope should error on message with forbidden enum', async () => {
const [actual] = scopeEnum(await parsed.multiple, 'never', ['bar', 'qux']);
const expected = true;
expect(actual).toEqual(expected);
});
test('scope-enum with multiple scope should error on message with superfluous scope', async () => {
const [actual] = scopeEnum(await parsed.multiple, 'never', ['bar']);
const expected = true;
expect(actual).toEqual(expected);
});