@aaronshaf/plane 0.1.8 → 0.1.10
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/package.json +1 -1
- package/src/commands/cycles.ts +86 -63
- package/src/commands/intake.ts +64 -44
- package/src/commands/issue.ts +386 -310
- package/src/commands/issues.ts +58 -45
- package/src/commands/labels.ts +6 -2
- package/src/commands/modules.ts +108 -74
- package/src/commands/pages.ts +42 -30
- package/src/config.ts +0 -16
- package/src/output.ts +12 -9
- package/src/resolve.ts +17 -29
- package/tests/api.test.ts +12 -8
- package/tests/cycles-extended.test.ts +15 -15
- package/tests/intake.test.ts +12 -12
- package/tests/issue-activity.test.ts +8 -16
- package/tests/issue-commands.test.ts +212 -295
- package/tests/issue-comments-worklogs.test.ts +31 -38
- package/tests/issue-links.test.ts +20 -23
- package/tests/modules.test.ts +17 -23
- package/tests/output.test.ts +11 -0
- package/tests/pages.test.ts +8 -8
|
@@ -80,12 +80,12 @@ afterEach(() => {
|
|
|
80
80
|
|
|
81
81
|
describe("cyclesList", () => {
|
|
82
82
|
it("lists cycles with status and dates", async () => {
|
|
83
|
-
const {
|
|
83
|
+
const { cyclesListHandler } = await import("@/commands/cycles");
|
|
84
84
|
const logs: string[] = [];
|
|
85
85
|
const orig = console.log;
|
|
86
86
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
87
87
|
try {
|
|
88
|
-
await Effect.runPromise((
|
|
88
|
+
await Effect.runPromise(cyclesListHandler({ project: "ACME" }));
|
|
89
89
|
} finally {
|
|
90
90
|
console.log = orig;
|
|
91
91
|
}
|
|
@@ -97,12 +97,12 @@ describe("cyclesList", () => {
|
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
it("shows em-dash for missing dates", async () => {
|
|
100
|
-
const {
|
|
100
|
+
const { cyclesListHandler } = await import("@/commands/cycles");
|
|
101
101
|
const logs: string[] = [];
|
|
102
102
|
const orig = console.log;
|
|
103
103
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
104
104
|
try {
|
|
105
|
-
await Effect.runPromise((
|
|
105
|
+
await Effect.runPromise(cyclesListHandler({ project: "ACME" }));
|
|
106
106
|
} finally {
|
|
107
107
|
console.log = orig;
|
|
108
108
|
}
|
|
@@ -116,12 +116,12 @@ describe("cyclesList", () => {
|
|
|
116
116
|
() => HttpResponse.json({ results: [] }),
|
|
117
117
|
),
|
|
118
118
|
);
|
|
119
|
-
const {
|
|
119
|
+
const { cyclesListHandler } = await import("@/commands/cycles");
|
|
120
120
|
const logs: string[] = [];
|
|
121
121
|
const orig = console.log;
|
|
122
122
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
123
123
|
try {
|
|
124
|
-
await Effect.runPromise((
|
|
124
|
+
await Effect.runPromise(cyclesListHandler({ project: "ACME" }));
|
|
125
125
|
} finally {
|
|
126
126
|
console.log = orig;
|
|
127
127
|
}
|
|
@@ -131,13 +131,13 @@ describe("cyclesList", () => {
|
|
|
131
131
|
|
|
132
132
|
describe("cycleIssuesList", () => {
|
|
133
133
|
it("lists issues in a cycle", async () => {
|
|
134
|
-
const {
|
|
134
|
+
const { cycleIssuesListHandler } = await import("@/commands/cycles");
|
|
135
135
|
const logs: string[] = [];
|
|
136
136
|
const orig = console.log;
|
|
137
137
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
138
138
|
try {
|
|
139
139
|
await Effect.runPromise(
|
|
140
|
-
(
|
|
140
|
+
cycleIssuesListHandler({ project: "ACME", cycleId: "cyc1" }),
|
|
141
141
|
);
|
|
142
142
|
} finally {
|
|
143
143
|
console.log = orig;
|
|
@@ -156,13 +156,13 @@ describe("cycleIssuesList", () => {
|
|
|
156
156
|
HttpResponse.json({ results: [{ id: "ci2", issue: "bare-uuid" }] }),
|
|
157
157
|
),
|
|
158
158
|
);
|
|
159
|
-
const {
|
|
159
|
+
const { cycleIssuesListHandler } = await import("@/commands/cycles");
|
|
160
160
|
const logs: string[] = [];
|
|
161
161
|
const orig = console.log;
|
|
162
162
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
163
163
|
try {
|
|
164
164
|
await Effect.runPromise(
|
|
165
|
-
(
|
|
165
|
+
cycleIssuesListHandler({ project: "ACME", cycleId: "cyc1" }),
|
|
166
166
|
);
|
|
167
167
|
} finally {
|
|
168
168
|
console.log = orig;
|
|
@@ -177,13 +177,13 @@ describe("cycleIssuesList", () => {
|
|
|
177
177
|
() => HttpResponse.json({ results: [] }),
|
|
178
178
|
),
|
|
179
179
|
);
|
|
180
|
-
const {
|
|
180
|
+
const { cycleIssuesListHandler } = await import("@/commands/cycles");
|
|
181
181
|
const logs: string[] = [];
|
|
182
182
|
const orig = console.log;
|
|
183
183
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
184
184
|
try {
|
|
185
185
|
await Effect.runPromise(
|
|
186
|
-
(
|
|
186
|
+
cycleIssuesListHandler({ project: "ACME", cycleId: "cyc1" }),
|
|
187
187
|
);
|
|
188
188
|
} finally {
|
|
189
189
|
console.log = orig;
|
|
@@ -204,13 +204,13 @@ describe("cycleIssuesAdd", () => {
|
|
|
204
204
|
},
|
|
205
205
|
),
|
|
206
206
|
);
|
|
207
|
-
const {
|
|
207
|
+
const { cycleIssuesAddHandler } = await import("@/commands/cycles");
|
|
208
208
|
const logs: string[] = [];
|
|
209
209
|
const orig = console.log;
|
|
210
210
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
211
211
|
try {
|
|
212
212
|
await Effect.runPromise(
|
|
213
|
-
(
|
|
213
|
+
cycleIssuesAddHandler({
|
|
214
214
|
project: "ACME",
|
|
215
215
|
cycleId: "cyc1",
|
|
216
216
|
ref: "ACME-29",
|
|
@@ -219,7 +219,7 @@ describe("cycleIssuesAdd", () => {
|
|
|
219
219
|
} finally {
|
|
220
220
|
console.log = orig;
|
|
221
221
|
}
|
|
222
|
-
expect((postedBody as
|
|
222
|
+
expect((postedBody as { issues?: string[] }).issues).toContain("i1");
|
|
223
223
|
expect(logs.join("\n")).toContain("ACME-29");
|
|
224
224
|
expect(logs.join("\n")).toContain("cyc1");
|
|
225
225
|
});
|
package/tests/intake.test.ts
CHANGED
|
@@ -76,12 +76,12 @@ afterEach(() => {
|
|
|
76
76
|
|
|
77
77
|
describe("intakeList", () => {
|
|
78
78
|
it("lists intake issues with status labels", async () => {
|
|
79
|
-
const {
|
|
79
|
+
const { intakeListHandler } = await import("@/commands/intake");
|
|
80
80
|
const logs: string[] = [];
|
|
81
81
|
const orig = console.log;
|
|
82
82
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
83
83
|
try {
|
|
84
|
-
await Effect.runPromise((
|
|
84
|
+
await Effect.runPromise(intakeListHandler({ project: "ACME" }));
|
|
85
85
|
} finally {
|
|
86
86
|
console.log = orig;
|
|
87
87
|
}
|
|
@@ -100,12 +100,12 @@ describe("intakeList", () => {
|
|
|
100
100
|
() => HttpResponse.json({ results: [] }),
|
|
101
101
|
),
|
|
102
102
|
);
|
|
103
|
-
const {
|
|
103
|
+
const { intakeListHandler } = await import("@/commands/intake");
|
|
104
104
|
const logs: string[] = [];
|
|
105
105
|
const orig = console.log;
|
|
106
106
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
107
107
|
try {
|
|
108
|
-
await Effect.runPromise((
|
|
108
|
+
await Effect.runPromise(intakeListHandler({ project: "ACME" }));
|
|
109
109
|
} finally {
|
|
110
110
|
console.log = orig;
|
|
111
111
|
}
|
|
@@ -113,12 +113,12 @@ describe("intakeList", () => {
|
|
|
113
113
|
});
|
|
114
114
|
|
|
115
115
|
it("handles intake issue without issue_detail", async () => {
|
|
116
|
-
const {
|
|
116
|
+
const { intakeListHandler } = await import("@/commands/intake");
|
|
117
117
|
const logs: string[] = [];
|
|
118
118
|
const orig = console.log;
|
|
119
119
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
120
120
|
try {
|
|
121
|
-
await Effect.runPromise((
|
|
121
|
+
await Effect.runPromise(intakeListHandler({ project: "ACME" }));
|
|
122
122
|
} finally {
|
|
123
123
|
console.log = orig;
|
|
124
124
|
}
|
|
@@ -142,18 +142,18 @@ describe("intakeAccept", () => {
|
|
|
142
142
|
},
|
|
143
143
|
),
|
|
144
144
|
);
|
|
145
|
-
const {
|
|
145
|
+
const { intakeAcceptHandler } = await import("@/commands/intake");
|
|
146
146
|
const logs: string[] = [];
|
|
147
147
|
const orig = console.log;
|
|
148
148
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
149
149
|
try {
|
|
150
150
|
await Effect.runPromise(
|
|
151
|
-
(
|
|
151
|
+
intakeAcceptHandler({ project: "ACME", intakeId: "int1" }),
|
|
152
152
|
);
|
|
153
153
|
} finally {
|
|
154
154
|
console.log = orig;
|
|
155
155
|
}
|
|
156
|
-
expect((patchedBody as
|
|
156
|
+
expect((patchedBody as { status?: number }).status).toBe(1);
|
|
157
157
|
expect(logs.join("\n")).toContain("accepted");
|
|
158
158
|
});
|
|
159
159
|
});
|
|
@@ -174,18 +174,18 @@ describe("intakeReject", () => {
|
|
|
174
174
|
},
|
|
175
175
|
),
|
|
176
176
|
);
|
|
177
|
-
const {
|
|
177
|
+
const { intakeRejectHandler } = await import("@/commands/intake");
|
|
178
178
|
const logs: string[] = [];
|
|
179
179
|
const orig = console.log;
|
|
180
180
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
181
181
|
try {
|
|
182
182
|
await Effect.runPromise(
|
|
183
|
-
(
|
|
183
|
+
intakeRejectHandler({ project: "ACME", intakeId: "int1" }),
|
|
184
184
|
);
|
|
185
185
|
} finally {
|
|
186
186
|
console.log = orig;
|
|
187
187
|
}
|
|
188
|
-
expect((patchedBody as
|
|
188
|
+
expect((patchedBody as { status?: number }).status).toBe(-2);
|
|
189
189
|
expect(logs.join("\n")).toContain("rejected");
|
|
190
190
|
});
|
|
191
191
|
});
|
|
@@ -81,15 +81,13 @@ afterEach(() => {
|
|
|
81
81
|
|
|
82
82
|
describe("issueActivity command handler", () => {
|
|
83
83
|
it("fetches and formats activity with field changes", async () => {
|
|
84
|
-
const {
|
|
84
|
+
const { issueActivityHandler } = await import("@/commands/issue");
|
|
85
85
|
const logs: string[] = [];
|
|
86
86
|
const originalLog = console.log;
|
|
87
87
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
88
88
|
|
|
89
89
|
try {
|
|
90
|
-
await Effect.runPromise(
|
|
91
|
-
(issueActivity as any).handler({ ref: "ACME-29" }),
|
|
92
|
-
);
|
|
90
|
+
await Effect.runPromise(issueActivityHandler({ ref: "ACME-29" }));
|
|
93
91
|
} finally {
|
|
94
92
|
console.log = originalLog;
|
|
95
93
|
}
|
|
@@ -109,15 +107,13 @@ describe("issueActivity command handler", () => {
|
|
|
109
107
|
),
|
|
110
108
|
);
|
|
111
109
|
|
|
112
|
-
const {
|
|
110
|
+
const { issueActivityHandler } = await import("@/commands/issue");
|
|
113
111
|
const logs: string[] = [];
|
|
114
112
|
const originalLog = console.log;
|
|
115
113
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
116
114
|
|
|
117
115
|
try {
|
|
118
|
-
await Effect.runPromise(
|
|
119
|
-
(issueActivity as any).handler({ ref: "ACME-29" }),
|
|
120
|
-
);
|
|
116
|
+
await Effect.runPromise(issueActivityHandler({ ref: "ACME-29" }));
|
|
121
117
|
} finally {
|
|
122
118
|
console.log = originalLog;
|
|
123
119
|
}
|
|
@@ -143,15 +139,13 @@ describe("issueActivity command handler", () => {
|
|
|
143
139
|
),
|
|
144
140
|
);
|
|
145
141
|
|
|
146
|
-
const {
|
|
142
|
+
const { issueActivityHandler } = await import("@/commands/issue");
|
|
147
143
|
const logs: string[] = [];
|
|
148
144
|
const originalLog = console.log;
|
|
149
145
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
150
146
|
|
|
151
147
|
try {
|
|
152
|
-
await Effect.runPromise(
|
|
153
|
-
(issueActivity as any).handler({ ref: "ACME-29" }),
|
|
154
|
-
);
|
|
148
|
+
await Effect.runPromise(issueActivityHandler({ ref: "ACME-29" }));
|
|
155
149
|
} finally {
|
|
156
150
|
console.log = originalLog;
|
|
157
151
|
}
|
|
@@ -180,15 +174,13 @@ describe("issueActivity command handler", () => {
|
|
|
180
174
|
),
|
|
181
175
|
);
|
|
182
176
|
|
|
183
|
-
const {
|
|
177
|
+
const { issueActivityHandler } = await import("@/commands/issue");
|
|
184
178
|
const logs: string[] = [];
|
|
185
179
|
const originalLog = console.log;
|
|
186
180
|
console.log = (...args: unknown[]) => logs.push(args.join(" "));
|
|
187
181
|
|
|
188
182
|
try {
|
|
189
|
-
await Effect.runPromise(
|
|
190
|
-
(issueActivity as any).handler({ ref: "ACME-29" }),
|
|
191
|
-
);
|
|
183
|
+
await Effect.runPromise(issueActivityHandler({ ref: "ACME-29" }));
|
|
192
184
|
} finally {
|
|
193
185
|
console.log = originalLog;
|
|
194
186
|
}
|