/
labeler.test.ts
120 lines (116 loc) · 2.37 KB
/
labeler.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
import {describe, expect, test} from '@jest/globals';
import {Inputs} from '../src/context';
import {Labeler, LabelStatus} from '../src/labeler';
const cases = [
[
'labels.update.yml',
{
githubToken: process.env.GITHUB_TOKEN || '',
yamlFile: '.res/labels.update.yml',
skipDelete: true,
dryRun: true,
exclude: []
},
{
skip: 12,
exclude: 0,
create: 2,
update: 2,
rename: 1,
delete: 6,
error: 0
}
],
[
'labels.exclude1.yml',
{
githubToken: process.env.GITHUB_TOKEN || '',
yamlFile: '.res/labels.exclude1.yml',
skipDelete: true,
dryRun: true,
exclude: ['* d*', '*enhancement', '*fix']
},
{
skip: 11,
exclude: 5,
create: 1,
update: 1,
rename: 0,
delete: 4,
error: 0
}
],
[
'labels.exclude2.yml',
{
githubToken: process.env.GITHUB_TOKEN || '',
yamlFile: '.res/labels.exclude2.yml',
skipDelete: true,
dryRun: true,
exclude: ['*fix']
},
{
skip: 16,
exclude: 1,
create: 1,
update: 0,
rename: 0,
delete: 4,
error: 0
}
]
];
describe('run', () => {
test.each(cases)('given %p', async (name, inputs, expected) => {
const labeler = new Labeler(inputs as Inputs);
await labeler.printRepoLabels();
console.log(
(await labeler.labels).map(label => {
return label.ghaction_log;
})
);
const res = {
skip: 0,
exclude: 0,
create: 0,
update: 0,
rename: 0,
delete: 0,
error: 0
};
for (const label of await labeler.labels) {
switch (label.ghaction_status) {
case LabelStatus.Exclude: {
res.exclude++;
break;
}
case LabelStatus.Create: {
res.create++;
break;
}
case LabelStatus.Update: {
res.update++;
break;
}
case LabelStatus.Rename: {
res.rename++;
break;
}
case LabelStatus.Delete: {
res.delete++;
break;
}
case LabelStatus.Skip: {
res.skip++;
break;
}
case LabelStatus.Error: {
res.error++;
break;
}
}
}
expect(res).toEqual(expected);
expect(() => labeler.run()).not.toThrow();
});
});