feat(KAN-32): add hierarchical acceptance criteria checklist
CI/CD / preconditions (pull_request) Successful in 1m4s
CI/CD / test_and_check_app (pull_request) Failing after 9m1s
CI/CD / Publish immutable image (pull_request) Skipped

This commit is contained in:
2026-09-14 10:18:00 +02:00
parent 5c47453d4d
commit b54cb68b22
13 changed files with 855 additions and 256 deletions
+24 -13
View File
@@ -105,22 +105,30 @@ try {
await page.keyboard.press('Enter');
await page.getByLabel('Title', { exact: true }).fill('Unsaved title draft');
await page
.getByRole('checkbox', { name: 'Cache requests safely', exact: true })
.check();
.locator('#ticket-checklist')
.getByRole('checkbox', {
name: 'Complete criterion 1: Cache requests safely',
exact: true,
})
.click();
await page.waitForFunction(
() => document.querySelector('#acceptance-criteria-11').checked,
() =>
document.querySelectorAll(
'#ticket-checklist input[type=checkbox]',
)[1].checked,
);
assert.equal(
await page.getByLabel('Title', { exact: true }).inputValue(),
'Unsaved title draft',
);
await page
.getByLabel('Acceptance criteria checklist', { exact: true })
.fill('[ ] A draft checklist item');
.getByLabel('Criterion 1', { exact: true })
.fill('A draft checklist item');
assert.equal(
await page
.locator('#ticket-checklist')
.getByRole('checkbox', {
name: 'Cache requests safely',
name: 'Complete criterion 1: Cache requests safely',
exact: true,
})
.isDisabled(),
@@ -155,10 +163,8 @@ try {
'Unsaved title draft',
);
assert.equal(
await page
.getByLabel('Acceptance criteria checklist', { exact: true })
.inputValue(),
'[ ] A draft checklist item',
await page.getByLabel('Criterion 1', { exact: true }).inputValue(),
'A draft checklist item',
);
await visit('?reject');
await edit().click();
@@ -196,16 +202,21 @@ try {
await page.getByText('Ticket updated.', { exact: true }).waitFor();
await visit('?rejectToggle');
await page
.getByRole('checkbox', { name: 'Cache requests safely', exact: true })
.check();
.locator('#ticket-checklist')
.getByRole('checkbox', {
name: 'Complete criterion 1: Cache requests safely',
exact: true,
})
.click();
await page
.getByRole('alert')
.filter({ hasText: 'Checklist status could not be saved' })
.waitFor();
assert.equal(
await page
.locator('#ticket-checklist')
.getByRole('checkbox', {
name: 'Cache requests safely',
name: 'Complete criterion 1: Cache requests safely',
exact: true,
})
.isChecked(),