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.
@@ -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 an open pull request closes is in progress', () => {
315
- assert.strictEqual(withProgress('free', true), 'in-progress');
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', true), 'in-progress');
320
+ assert.strictEqual(withProgress('ready', 'in-progress'), 'in-progress');
318
321
 
319
- assert.strictEqual(withProgress('ready', false), 'ready');
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', true), '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
- assert.strictEqual(withProgress('cycle', true), 'cycle');
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(withProgress('attention', true), 'attention');
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
  });