pr-report-core 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/checks.mjs.map +1 -1
- package/dist/labels.d.mts +18 -0
- package/dist/labels.d.mts.map +1 -1
- package/dist/labels.mjs +18 -0
- package/dist/labels.mjs.map +1 -1
- package/dist/queue-order.d.mts.map +1 -1
- package/dist/queue-order.mjs.map +1 -1
- package/dist/queue-owner.d.mts +3 -7
- package/dist/queue-owner.d.mts.map +1 -1
- package/dist/queue-owner.mjs +1 -12
- package/dist/queue-owner.mjs.map +1 -1
- package/dist/report.d.mts.map +1 -1
- package/dist/report.mjs +2 -2
- package/dist/report.mjs.map +1 -1
- package/dist/start-after.d.mts +32 -7
- package/dist/start-after.d.mts.map +1 -1
- package/dist/start-after.mjs +20 -1
- package/dist/start-after.mjs.map +1 -1
- package/package.json +9 -9
- package/src/checks.mts +1 -1
- package/src/checks.test.mts +20 -15
- package/src/labels.mts +20 -0
- package/src/merge-after.test.mts +13 -7
- package/src/queue-order.mts +5 -2
- package/src/queue-order.test.mts +19 -15
- package/src/queue-owner.mts +4 -18
- package/src/queue-owner.test.mts +4 -4
- package/src/report.mts +7 -6
- package/src/report.test.mts +57 -7
- package/src/stack.test.mts +2 -2
- package/src/start-after.mts +47 -8
- package/src/start-after.test.mts +79 -30
package/src/start-after.test.mts
CHANGED
|
@@ -2,10 +2,13 @@ import {
|
|
|
2
2
|
decideStartStates,
|
|
3
3
|
inheritStartAfter,
|
|
4
4
|
issuesInProgress,
|
|
5
|
+
progressOf,
|
|
5
6
|
referenceStatusOf,
|
|
6
7
|
waitsFor,
|
|
7
8
|
withProgress,
|
|
9
|
+
type InheritedOrder,
|
|
8
10
|
type ReferenceStatus,
|
|
11
|
+
type StartState,
|
|
9
12
|
} from './start-after.mjs';
|
|
10
13
|
|
|
11
14
|
describe(referenceStatusOf, () => {
|
|
@@ -90,7 +93,7 @@ describe(decideStartStates, () => {
|
|
|
90
93
|
test('an issue that declares nothing is free', () => {
|
|
91
94
|
assert.deepStrictEqual(
|
|
92
95
|
decideStartStates([{ number: 1, startAfter: [] }], known([])),
|
|
93
|
-
new Map([[1, 'free']]),
|
|
96
|
+
new Map<number, StartState>([[1, 'free']]),
|
|
94
97
|
);
|
|
95
98
|
});
|
|
96
99
|
|
|
@@ -103,7 +106,7 @@ describe(decideStartStates, () => {
|
|
|
103
106
|
],
|
|
104
107
|
known([]),
|
|
105
108
|
),
|
|
106
|
-
new Map([
|
|
109
|
+
new Map<number, StartState>([
|
|
107
110
|
[1, 'free'],
|
|
108
111
|
[2, 'blocked'],
|
|
109
112
|
]),
|
|
@@ -119,7 +122,7 @@ describe(decideStartStates, () => {
|
|
|
119
122
|
[2, 'done'],
|
|
120
123
|
]),
|
|
121
124
|
),
|
|
122
|
-
new Map([[3, 'ready']]),
|
|
125
|
+
new Map<number, StartState>([[3, 'ready']]),
|
|
123
126
|
);
|
|
124
127
|
});
|
|
125
128
|
|
|
@@ -137,7 +140,7 @@ describe(decideStartStates, () => {
|
|
|
137
140
|
[3, 'waiting'],
|
|
138
141
|
]),
|
|
139
142
|
),
|
|
140
|
-
new Map([
|
|
143
|
+
new Map<number, StartState>([
|
|
141
144
|
[10, 'blocked'],
|
|
142
145
|
[11, 'attention'],
|
|
143
146
|
[12, 'attention'],
|
|
@@ -158,7 +161,7 @@ describe(decideStartStates, () => {
|
|
|
158
161
|
[9, 'waiting'],
|
|
159
162
|
]),
|
|
160
163
|
),
|
|
161
|
-
new Map([
|
|
164
|
+
new Map<number, StartState>([
|
|
162
165
|
[1, 'blocked'],
|
|
163
166
|
[2, 'blocked'],
|
|
164
167
|
[3, 'ready'],
|
|
@@ -177,7 +180,7 @@ describe(decideStartStates, () => {
|
|
|
177
180
|
],
|
|
178
181
|
known([]),
|
|
179
182
|
),
|
|
180
|
-
new Map([
|
|
183
|
+
new Map<number, StartState>([
|
|
181
184
|
[1, 'cycle'],
|
|
182
185
|
[2, 'cycle'],
|
|
183
186
|
[3, 'cycle'],
|
|
@@ -195,10 +198,10 @@ describe(inheritStartAfter, () => {
|
|
|
195
198
|
{ number: 10, closes: [1] },
|
|
196
199
|
{ number: 20, closes: [] },
|
|
197
200
|
],
|
|
198
|
-
startAfterOf: new Map([[1, [20]]]),
|
|
199
|
-
openIssues: new Set([1]),
|
|
201
|
+
startAfterOf: new Map<number, readonly number[]>([[1, [20]]]),
|
|
202
|
+
openIssues: new Set<number>([1]),
|
|
200
203
|
}),
|
|
201
|
-
new Map([
|
|
204
|
+
new Map<number, InheritedOrder>([
|
|
202
205
|
[10, { mergeAfter: [20], notStarted: [] }],
|
|
203
206
|
[20, { mergeAfter: [], notStarted: [] }],
|
|
204
207
|
]),
|
|
@@ -213,8 +216,8 @@ describe(inheritStartAfter, () => {
|
|
|
213
216
|
{ number: 21, closes: [2] },
|
|
214
217
|
{ number: 22, closes: [2] },
|
|
215
218
|
],
|
|
216
|
-
startAfterOf: new Map([[1, [2]]]),
|
|
217
|
-
openIssues: new Set([1, 2]),
|
|
219
|
+
startAfterOf: new Map<number, readonly number[]>([[1, [2]]]),
|
|
220
|
+
openIssues: new Set<number>([1, 2]),
|
|
218
221
|
}).get(10),
|
|
219
222
|
{ mergeAfter: [21, 22], notStarted: [] },
|
|
220
223
|
);
|
|
@@ -224,8 +227,8 @@ describe(inheritStartAfter, () => {
|
|
|
224
227
|
assert.deepStrictEqual(
|
|
225
228
|
inheritStartAfter({
|
|
226
229
|
pulls: [{ number: 10, closes: [1] }],
|
|
227
|
-
startAfterOf: new Map([[1, [2]]]),
|
|
228
|
-
openIssues: new Set([1, 2]),
|
|
230
|
+
startAfterOf: new Map<number, readonly number[]>([[1, [2]]]),
|
|
231
|
+
openIssues: new Set<number>([1, 2]),
|
|
229
232
|
}).get(10),
|
|
230
233
|
{ mergeAfter: [], notStarted: [2] },
|
|
231
234
|
);
|
|
@@ -237,8 +240,8 @@ describe(inheritStartAfter, () => {
|
|
|
237
240
|
assert.deepStrictEqual(
|
|
238
241
|
inheritStartAfter({
|
|
239
242
|
pulls: [{ number: 10, closes: [1] }],
|
|
240
|
-
startAfterOf: new Map([[1, [3]]]),
|
|
241
|
-
openIssues: new Set([1]),
|
|
243
|
+
startAfterOf: new Map<number, readonly number[]>([[1, [3]]]),
|
|
244
|
+
openIssues: new Set<number>([1]),
|
|
242
245
|
}).get(10),
|
|
243
246
|
{ mergeAfter: [], notStarted: [] },
|
|
244
247
|
);
|
|
@@ -252,13 +255,13 @@ describe(inheritStartAfter, () => {
|
|
|
252
255
|
{ number: 10, closes: [1, 2] },
|
|
253
256
|
{ number: 11, closes: [3] },
|
|
254
257
|
],
|
|
255
|
-
startAfterOf: new Map([
|
|
258
|
+
startAfterOf: new Map<number, readonly number[]>([
|
|
256
259
|
[1, [2]],
|
|
257
260
|
[3, [11]],
|
|
258
261
|
]),
|
|
259
|
-
openIssues: new Set([1, 2, 3]),
|
|
262
|
+
openIssues: new Set<number>([1, 2, 3]),
|
|
260
263
|
}),
|
|
261
|
-
new Map([
|
|
264
|
+
new Map<number, InheritedOrder>([
|
|
262
265
|
[10, { mergeAfter: [], notStarted: [] }],
|
|
263
266
|
[11, { mergeAfter: [], notStarted: [] }],
|
|
264
267
|
]),
|
|
@@ -273,11 +276,11 @@ describe(inheritStartAfter, () => {
|
|
|
273
276
|
{ number: 30, closes: [] },
|
|
274
277
|
{ number: 20, closes: [5] },
|
|
275
278
|
],
|
|
276
|
-
startAfterOf: new Map([
|
|
279
|
+
startAfterOf: new Map<number, readonly number[]>([
|
|
277
280
|
[1, [30, 5, 6]],
|
|
278
281
|
[2, [5, 30, 6]],
|
|
279
282
|
]),
|
|
280
|
-
openIssues: new Set([1, 2, 5, 6]),
|
|
283
|
+
openIssues: new Set<number>([1, 2, 5, 6]),
|
|
281
284
|
}).get(10),
|
|
282
285
|
{ mergeAfter: [20, 30], notStarted: [6] },
|
|
283
286
|
);
|
|
@@ -287,8 +290,8 @@ describe(inheritStartAfter, () => {
|
|
|
287
290
|
assert.deepStrictEqual(
|
|
288
291
|
inheritStartAfter({
|
|
289
292
|
pulls: [{ number: 10, closes: [1] }],
|
|
290
|
-
startAfterOf: new Map(),
|
|
291
|
-
openIssues: new Set([1]),
|
|
293
|
+
startAfterOf: new Map<number, readonly number[]>(),
|
|
294
|
+
openIssues: new Set<number>([1]),
|
|
292
295
|
}).get(10),
|
|
293
296
|
{ mergeAfter: [], notStarted: [] },
|
|
294
297
|
);
|
|
@@ -311,20 +314,66 @@ describe(waitsFor, () => {
|
|
|
311
314
|
});
|
|
312
315
|
|
|
313
316
|
describe(withProgress, () => {
|
|
314
|
-
test('a startable issue
|
|
315
|
-
assert.strictEqual(withProgress('free',
|
|
317
|
+
test('a startable issue someone has got to says how far', () => {
|
|
318
|
+
assert.strictEqual(withProgress('free', 'in-progress'), 'in-progress');
|
|
316
319
|
|
|
317
|
-
assert.strictEqual(withProgress('ready',
|
|
320
|
+
assert.strictEqual(withProgress('ready', 'in-progress'), 'in-progress');
|
|
318
321
|
|
|
319
|
-
assert.strictEqual(withProgress('
|
|
322
|
+
assert.strictEqual(withProgress('free', 'planned'), 'planned');
|
|
323
|
+
|
|
324
|
+
assert.strictEqual(withProgress('ready', 'none'), 'ready');
|
|
320
325
|
});
|
|
321
326
|
|
|
322
327
|
test('one that is not startable says why, worked on or not', () => {
|
|
323
|
-
assert.strictEqual(withProgress('blocked',
|
|
328
|
+
assert.strictEqual(withProgress('blocked', 'in-progress'), 'blocked');
|
|
329
|
+
|
|
330
|
+
assert.strictEqual(withProgress('cycle', 'in-progress'), 'cycle');
|
|
331
|
+
|
|
332
|
+
assert.strictEqual(withProgress('attention', 'planned'), 'attention');
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
|
|
336
|
+
describe(progressOf, () => {
|
|
337
|
+
test('an open pull request closing it is in progress', () => {
|
|
338
|
+
assert.strictEqual(progressOf([], true), 'in-progress');
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
test('so is the in-progress label, with no pull request yet', () => {
|
|
342
|
+
assert.strictEqual(
|
|
343
|
+
progressOf([{ name: 'bug' }, { name: 'in-progress' }], false),
|
|
344
|
+
'in-progress',
|
|
345
|
+
);
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
test('the planned label is planned', () => {
|
|
349
|
+
assert.strictEqual(progressOf([{ name: 'planned' }], false), 'planned');
|
|
350
|
+
});
|
|
324
351
|
|
|
325
|
-
|
|
352
|
+
test('being worked on wins over being planned', () => {
|
|
353
|
+
assert.strictEqual(progressOf([{ name: 'planned' }], true), 'in-progress');
|
|
354
|
+
|
|
355
|
+
assert.strictEqual(
|
|
356
|
+
progressOf([{ name: 'planned' }, { name: 'in-progress' }], false),
|
|
357
|
+
'in-progress',
|
|
358
|
+
);
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
test('neither, or a label only like them, is none', () => {
|
|
362
|
+
assert.strictEqual(progressOf([], false), 'none');
|
|
363
|
+
|
|
364
|
+
assert.strictEqual(
|
|
365
|
+
progressOf([{ name: 'in-progress-x' }, { name: 'planned-later' }], false),
|
|
366
|
+
'none',
|
|
367
|
+
);
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
test('reads a label whatever its case, as GitHub does', () => {
|
|
371
|
+
assert.strictEqual(
|
|
372
|
+
progressOf([{ name: 'In-Progress' }], false),
|
|
373
|
+
'in-progress',
|
|
374
|
+
);
|
|
326
375
|
|
|
327
|
-
assert.strictEqual(
|
|
376
|
+
assert.strictEqual(progressOf([{ name: 'Planned' }], false), 'planned');
|
|
328
377
|
});
|
|
329
378
|
});
|
|
330
379
|
|
|
@@ -336,7 +385,7 @@ describe(issuesInProgress, () => {
|
|
|
336
385
|
{ linkedIssues: [{ number: 2 }] },
|
|
337
386
|
{ linkedIssues: [] },
|
|
338
387
|
]),
|
|
339
|
-
new Set([1, 2]),
|
|
388
|
+
new Set<number>([1, 2]),
|
|
340
389
|
);
|
|
341
390
|
});
|
|
342
391
|
});
|