64 lines
2.1 KiB
TypeScript
64 lines
2.1 KiB
TypeScript
import { test, expect } from "../../fixtures/test-base";
|
|
import { KanbanPage } from "../../pages/kanban-page";
|
|
|
|
test.describe("Workflow steps", () => {
|
|
test("task appears in correct column after API move", async ({
|
|
testPage,
|
|
apiClient,
|
|
seedData,
|
|
}) => {
|
|
// Seed a task (lands in the start step by default)
|
|
const task = await apiClient.createTask(seedData.workspaceId, "Workflow Move Task", {
|
|
workflow_id: seedData.workflowId,
|
|
workflow_step_id: seedData.startStepId,
|
|
});
|
|
|
|
// Find a non-start step to move to
|
|
const targetStep = seedData.steps.find((s) => !s.is_start_step);
|
|
if (!targetStep) {
|
|
test.skip(true, "No non-start step available to test move");
|
|
return;
|
|
}
|
|
|
|
// Move the task via API
|
|
await apiClient.moveTask(task.id, seedData.workflowId, targetStep.id);
|
|
|
|
// Navigate to kanban and verify the card is visible
|
|
const kanban = new KanbanPage(testPage);
|
|
await kanban.goto();
|
|
|
|
const card = kanban.taskCardByTitle("Workflow Move Task");
|
|
await expect(card).toBeVisible();
|
|
});
|
|
|
|
test("multiple tasks can be seeded into different steps", async ({
|
|
testPage,
|
|
apiClient,
|
|
seedData,
|
|
}) => {
|
|
const startStep = seedData.steps.find((s) => s.is_start_step) ?? seedData.steps[0];
|
|
const otherStep = seedData.steps.find((s) => s.id !== startStep.id);
|
|
if (!otherStep) {
|
|
test.skip(true, "Need at least 2 workflow steps");
|
|
return;
|
|
}
|
|
|
|
// Create tasks and move one
|
|
await apiClient.createTask(seedData.workspaceId, "Step A Task", {
|
|
workflow_id: seedData.workflowId,
|
|
workflow_step_id: seedData.startStepId,
|
|
});
|
|
const taskB = await apiClient.createTask(seedData.workspaceId, "Step B Task", {
|
|
workflow_id: seedData.workflowId,
|
|
workflow_step_id: seedData.startStepId,
|
|
});
|
|
await apiClient.moveTask(taskB.id, seedData.workflowId, otherStep.id);
|
|
|
|
const kanban = new KanbanPage(testPage);
|
|
await kanban.goto();
|
|
|
|
await expect(kanban.taskCardByTitle("Step A Task")).toBeVisible();
|
|
await expect(kanban.taskCardByTitle("Step B Task")).toBeVisible();
|
|
});
|
|
});
|