github-issue-tower-defence-management 1.162.3 → 1.162.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.162.5](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.162.4...v1.162.5) (2026-08-19)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **use-case:** run SetNoStoryIssueToStoryUseCase regardless of cacheUsed ([#1618](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1618)) ([3cee86d](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/3cee86d7dde60afb9f0bab841672a127ffe249ce)), closes [#1614](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1614)
7
+
8
+ ## [1.162.4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.162.3...v1.162.4) (2026-08-19)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **schedule:** keep the cycle running when the target date list is empty ([#1639](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1639)) ([94b102b](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/94b102b5038a4b3fabfc02187b68840954205d65))
14
+
1
15
  ## [1.162.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.162.2...v1.162.3) (2026-08-19)
2
16
 
3
17
 
@@ -6,14 +6,16 @@ class SetNoStoryIssueToStoryUseCase {
6
6
  this.issueRepository = issueRepository;
7
7
  this.run = async (input) => {
8
8
  const story = input.project.story;
9
- if (!story || input.cacheUsed) {
9
+ if (!story) {
10
10
  return;
11
11
  }
12
+ const earliestTargetDate = input.targetDates[0] ?? null;
12
13
  const isTargetIssue = (issue) => {
13
14
  return (issue.story === null &&
14
15
  !issue.labels.some((label) => label.toLowerCase().startsWith('story:')) &&
15
16
  (issue.nextActionDate === null ||
16
- issue.nextActionDate.getTime() <= input.targetDates[0].getTime()) &&
17
+ (earliestTargetDate !== null &&
18
+ issue.nextActionDate.getTime() <= earliestTargetDate.getTime())) &&
17
19
  issue.nextActionHour === null &&
18
20
  issue.state === 'OPEN');
19
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SetNoStoryIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetNoStoryIssueToStoryUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,6BAA6B;IACxC,YAAqB,eAAqD;QAArD,oBAAe,GAAf,eAAe,CAAsC;QAE1E,QAAG,GAAG,KAAK,EAAE,KAKZ,EAAiB,EAAE;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,MAAM,aAAa,GAAG,CAAC,KAAY,EAAW,EAAE;gBAC9C,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,IAAI;oBACpB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzC;oBACD,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;wBAC5B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnE,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,KAAK,CAAC,KAAK,KAAK,MAAM,CACvB,CAAC;YACJ,CAAC,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACpC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAC3B,KAAK,EACL,UAAU,CAAC,EAAE,CACd,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;IAvC2E,CAAC;CAwC/E;AAzCD,sEAyCC"}
1
+ {"version":3,"file":"SetNoStoryIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetNoStoryIssueToStoryUseCase.ts"],"names":[],"mappings":";;;AAIA,MAAa,6BAA6B;IACxC,YAAqB,eAAqD;QAArD,oBAAe,GAAf,eAAe,CAAsC;QAE1E,QAAG,GAAG,KAAK,EAAE,KAKZ,EAAiB,EAAE;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,kBAAkB,GAAgB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACrE,MAAM,aAAa,GAAG,CAAC,KAAY,EAAW,EAAE;gBAC9C,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,IAAI;oBACpB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzC;oBACD,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI;wBAC5B,CAAC,kBAAkB,KAAK,IAAI;4BAC1B,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC;oBACpE,KAAK,CAAC,cAAc,KAAK,IAAI;oBAC7B,KAAK,CAAC,KAAK,KAAK,MAAM,CACvB,CAAC;YACJ,CAAC,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACpC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAC3B,KAAK,EACL,UAAU,CAAC,EAAE,CACd,CAAC;gBACF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;IAzC2E,CAAC;CA0C/E;AA3CD,sEA2CC"}
@@ -86,9 +86,11 @@ class SetWorkflowManagementIssueToStoryUseCase {
86
86
  .startsWith(SetWorkflowManagementIssueToStoryUseCase.STORY_LABEL_PREFIX)) ||
87
87
  issue.labels.includes(SetWorkflowManagementIssueToStoryUseCase.DAILY_ROUTINE_LABEL) ||
88
88
  issue.isPr;
89
+ const earliestTargetDate = targetDates[0] ?? null;
89
90
  return (hasStoryOrWorkflowTrigger &&
90
91
  (issue.nextActionDate === null ||
91
- issue.nextActionDate.getTime() <= targetDates[0].getTime()) &&
92
+ (earliestTargetDate !== null &&
93
+ issue.nextActionDate.getTime() <= earliestTargetDate.getTime())) &&
92
94
  issue.nextActionHour === null &&
93
95
  issue.state === 'OPEN' &&
94
96
  issue.story === null);
@@ -1 +1 @@
1
- {"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.js","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.162.3",
3
+ "version": "1.162.5",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -73,24 +73,49 @@ describe('SetNoStoryIssueToStoryUseCase', () => {
73
73
  expect(mockIssueRepository.updateStory).not.toHaveBeenCalled();
74
74
  });
75
75
 
76
- it('should do nothing when cacheUsed is true', async () => {
77
- await useCase.run({
76
+ it('should not throw when the target date list is empty', async () => {
77
+ await expect(
78
+ useCase.run({
79
+ targetDates: [],
80
+ project: basicProject,
81
+ issues: [
82
+ {
83
+ ...mock<Issue>(),
84
+ labels: [],
85
+ story: null,
86
+ state: 'OPEN',
87
+ nextActionDate: new Date('2000-01-01T00:00:00Z'),
88
+ nextActionHour: null,
89
+ },
90
+ ],
91
+ cacheUsed: false,
92
+ }),
93
+ ).resolves.toBeUndefined();
94
+ expect(mockIssueRepository.updateStory).not.toHaveBeenCalled();
95
+ });
96
+
97
+ it('should assign story to eligible issue even when cacheUsed is true', async () => {
98
+ const issue: Issue = {
99
+ ...mock<Issue>(),
100
+ labels: [],
101
+ story: null,
102
+ state: 'OPEN',
103
+ nextActionDate: null,
104
+ nextActionHour: null,
105
+ };
106
+
107
+ const promise = useCase.run({
78
108
  targetDates: [targetDate],
79
109
  project: basicProject,
80
- issues: [
81
- {
82
- ...mock<Issue>(),
83
- labels: [],
84
- story: null,
85
- state: 'OPEN',
86
- nextActionDate: null,
87
- nextActionHour: null,
88
- },
89
- ],
110
+ issues: [issue],
90
111
  cacheUsed: true,
91
112
  });
113
+ await jest.runAllTimersAsync();
114
+ await promise;
92
115
 
93
- expect(mockIssueRepository.updateStory).not.toHaveBeenCalled();
116
+ expect(mockIssueRepository.updateStory.mock.calls).toEqual([
117
+ [{ ...basicProject, story: basicProject.story }, issue, 'noStoryId'],
118
+ ]);
94
119
  });
95
120
 
96
121
  it('should assign first story to eligible issue on non-minute-0 target date', async () => {
@@ -12,9 +12,10 @@ export class SetNoStoryIssueToStoryUseCase {
12
12
  cacheUsed: boolean;
13
13
  }): Promise<void> => {
14
14
  const story = input.project.story;
15
- if (!story || input.cacheUsed) {
15
+ if (!story) {
16
16
  return;
17
17
  }
18
+ const earliestTargetDate: Date | null = input.targetDates[0] ?? null;
18
19
  const isTargetIssue = (issue: Issue): boolean => {
19
20
  return (
20
21
  issue.story === null &&
@@ -22,7 +23,8 @@ export class SetNoStoryIssueToStoryUseCase {
22
23
  label.toLowerCase().startsWith('story:'),
23
24
  ) &&
24
25
  (issue.nextActionDate === null ||
25
- issue.nextActionDate.getTime() <= input.targetDates[0].getTime()) &&
26
+ (earliestTargetDate !== null &&
27
+ issue.nextActionDate.getTime() <= earliestTargetDate.getTime())) &&
26
28
  issue.nextActionHour === null &&
27
29
  issue.state === 'OPEN'
28
30
  );
@@ -99,6 +99,27 @@ describe('SetWorkflowManagementIssueToStoryUseCase', () => {
99
99
  });
100
100
 
101
101
  describe('run', () => {
102
+ it('should not throw when the target date list is empty', async () => {
103
+ await expect(
104
+ useCase.run({
105
+ targetDates: [],
106
+ project: basicProject,
107
+ issues: [
108
+ {
109
+ ...mock<Issue>(),
110
+ labels: ['daily-routine'],
111
+ story: null,
112
+ state: 'OPEN',
113
+ isPr: false,
114
+ nextActionDate: new Date('2000-01-01T00:00:00Z'),
115
+ nextActionHour: null,
116
+ },
117
+ ],
118
+ cacheUsed: false,
119
+ }),
120
+ ).resolves.toBeUndefined();
121
+ });
122
+
102
123
  it('should do nothing when project has no story field', async () => {
103
124
  const projectWithoutStory: Project = { ...basicProject, story: null };
104
125
 
@@ -186,10 +186,13 @@ export class SetWorkflowManagementIssueToStoryUseCase {
186
186
  ) ||
187
187
  issue.isPr;
188
188
 
189
+ const earliestTargetDate: Date | null = targetDates[0] ?? null;
190
+
189
191
  return (
190
192
  hasStoryOrWorkflowTrigger &&
191
193
  (issue.nextActionDate === null ||
192
- issue.nextActionDate.getTime() <= targetDates[0].getTime()) &&
194
+ (earliestTargetDate !== null &&
195
+ issue.nextActionDate.getTime() <= earliestTargetDate.getTime())) &&
193
196
  issue.nextActionHour === null &&
194
197
  issue.state === 'OPEN' &&
195
198
  issue.story === null
@@ -1 +1 @@
1
- {"version":3,"file":"SetNoStoryIssueToStoryUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetNoStoryIssueToStoryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,6BAA6B;IAC5B,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;gBAArD,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;IAE1E,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,KAAG,OAAO,CAAC,IAAI,CAAC,CAgCf;CACH"}
1
+ {"version":3,"file":"SetNoStoryIssueToStoryUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetNoStoryIssueToStoryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,6BAA6B;IAC5B,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;gBAArD,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC;IAE1E,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,KAAG,OAAO,CAAC,IAAI,CAAC,CAkCf;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,wCAAwC;IAEjD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CACjE;gBAHQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CACjE;IAGH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,YAAY;IAC9C,MAAM,CAAC,QAAQ,CAAC,yBAAyB,+BAA+B;IACxE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,mBAAmB;IACtD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,gBAAgB;IAEpD,MAAM,CAAC,kBAAkB,GAAI,WAAW,MAAM,KAAG,MAAM,CACL;IAElD,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,KAAG,OAAO,CAAC,IAAI,CAAC,CAwFf;IAEF,MAAM,CAAC,6BAA6B,GAClC,YAAY,MAAM,EAClB,aAAa,MAAM,KAClB,MAAM,CAC2I;IAEpJ,OAAO,CAAC,yBAAyB,CAgC/B;IAEF,OAAO,CAAC,4BAA4B,CAiBlC;IAEF,OAAO,CAAC,eAAe,CAsBrB;CACH"}
1
+ {"version":3,"file":"SetWorkflowManagementIssueToStoryUseCase.d.ts","sourceRoot":"","sources":["../../../src/domain/usecases/SetWorkflowManagementIssueToStoryUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,qBAAa,wCAAwC;IAEjD,QAAQ,CAAC,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CACjE;gBAHQ,eAAe,EAAE,IAAI,CAC5B,eAAe,EACf,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,CACjE;IAGH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,YAAY;IAC9C,MAAM,CAAC,QAAQ,CAAC,yBAAyB,+BAA+B;IACxE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,mBAAmB;IACtD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,gBAAgB;IAEpD,MAAM,CAAC,kBAAkB,GAAI,WAAW,MAAM,KAAG,MAAM,CACL;IAElD,GAAG,GAAU,OAAO;QAClB,WAAW,EAAE,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,KAAK,EAAE,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,KAAG,OAAO,CAAC,IAAI,CAAC,CAwFf;IAEF,MAAM,CAAC,6BAA6B,GAClC,YAAY,MAAM,EAClB,aAAa,MAAM,KAClB,MAAM,CAC2I;IAEpJ,OAAO,CAAC,yBAAyB,CAgC/B;IAEF,OAAO,CAAC,4BAA4B,CAiBlC;IAEF,OAAO,CAAC,eAAe,CAyBrB;CACH"}