64 lines
1.7 KiB
TypeScript
64 lines
1.7 KiB
TypeScript
import { When } from '@cucumber/cucumber'
|
|
import { strict as assert } from 'assert'
|
|
import type { PerausetWorld } from '../support/world.js'
|
|
import { getUserId } from '../support/db.js'
|
|
|
|
When('I create a task template with title {string} category {string}', async function (this: PerausetWorld, title: string, category: string) {
|
|
await this.post('/tasks/templates', {
|
|
title,
|
|
category,
|
|
})
|
|
})
|
|
|
|
When('I create a task instance with title {string} category {string}', async function (this: PerausetWorld, title: string, category: string) {
|
|
await this.post('/tasks', {
|
|
title,
|
|
category,
|
|
})
|
|
})
|
|
|
|
When('I assign the task to user {string}', async function (this: PerausetWorld, email: string) {
|
|
const taskId = (this as any).taskId
|
|
|
|
// Look up userId from DB
|
|
let userId = this.createdUsers[email]
|
|
if (!userId) {
|
|
userId = getUserId(email)
|
|
this.createdUsers[email] = userId
|
|
}
|
|
|
|
await this.post(`/tasks/${taskId}/assign`, {
|
|
taskId,
|
|
userId,
|
|
})
|
|
})
|
|
|
|
When('I start the task', async function (this: PerausetWorld) {
|
|
const taskId = (this as any).taskId
|
|
await this.post(`/tasks/${taskId}/start`, {
|
|
taskId,
|
|
})
|
|
})
|
|
|
|
When('I complete the task', async function (this: PerausetWorld) {
|
|
const taskId = (this as any).taskId
|
|
await this.post(`/tasks/${taskId}/complete`, {
|
|
taskId,
|
|
})
|
|
})
|
|
|
|
When('I claim the task', async function (this: PerausetWorld) {
|
|
const taskId = (this as any).taskId
|
|
await this.post(`/tasks/${taskId}/claim`, {
|
|
taskId,
|
|
})
|
|
})
|
|
|
|
When('I mark the task as blocked with reason {string}', async function (this: PerausetWorld, reason: string) {
|
|
const taskId = (this as any).taskId
|
|
await this.post(`/tasks/${taskId}/block`, {
|
|
taskId,
|
|
reason,
|
|
})
|
|
})
|