feat(FN-4578): complete Step 4 — support milestone acceptance criteria patch
Fusion-Task-Id: FN-4578 Fusion-Task-Lineage: 1be0fa08-4d83-4988-a218-326225dfe4b5
This commit is contained in:
@@ -1430,6 +1430,26 @@ describe("Mission API", () => {
|
||||
expect(updateDependencies.status).toBe(200);
|
||||
expect(updateDependencies.body.dependencies).toEqual(["MS-DEP-1"]);
|
||||
|
||||
const updateAcceptanceCriteria = await request(
|
||||
app,
|
||||
"PATCH",
|
||||
`/api/missions/milestones/${milestone.id}`,
|
||||
JSON.stringify({ acceptanceCriteria: "Acceptance ready" }),
|
||||
{ "content-type": "application/json" },
|
||||
);
|
||||
expect(updateAcceptanceCriteria.status).toBe(200);
|
||||
expect(updateAcceptanceCriteria.body.acceptanceCriteria).toBe("Acceptance ready");
|
||||
|
||||
const malformedAcceptanceCriteria = await request(
|
||||
app,
|
||||
"PATCH",
|
||||
`/api/missions/milestones/${milestone.id}`,
|
||||
JSON.stringify({ acceptanceCriteria: 42 }),
|
||||
{ "content-type": "application/json" },
|
||||
);
|
||||
expect(malformedAcceptanceCriteria.status).toBe(500);
|
||||
expect(malformedAcceptanceCriteria.body.error).toContain("Description must be a string");
|
||||
|
||||
const noFields = await request(
|
||||
app,
|
||||
"PATCH",
|
||||
|
||||
@@ -1239,7 +1239,7 @@ export function createMissionRouter(
|
||||
"/milestones/:milestoneId",
|
||||
catchTypedHandler(async (req, res) => {
|
||||
const { milestoneId } = req.params;
|
||||
const { title, description, status, dependencies } = req.body;
|
||||
const { title, description, status, dependencies, acceptanceCriteria } = req.body;
|
||||
|
||||
if (!validateMilestoneId(milestoneId)) {
|
||||
throw badRequest("Invalid milestone ID format");
|
||||
@@ -1259,6 +1259,9 @@ export function createMissionRouter(
|
||||
if (dependencies !== undefined) {
|
||||
updates.dependencies = validateStringArray(dependencies, "dependencies");
|
||||
}
|
||||
if (acceptanceCriteria !== undefined) {
|
||||
updates.acceptanceCriteria = validateDescription(acceptanceCriteria);
|
||||
}
|
||||
|
||||
if (Object.keys(updates).length === 0) {
|
||||
throw badRequest("No valid fields to update");
|
||||
|
||||
Reference in New Issue
Block a user