Files
catalyst/ui/tests/e2e/comments.spec.ts
2025-09-02 21:58:08 +02:00

55 lines
1.9 KiB
TypeScript

import { expect } from '@playwright/test'
import { randomUUID } from 'crypto'
import { login, test, createTicket, createComment } from './util'
test('can create a comment', async ({ page }) => {
await login(page)
const ticketName = `playwright-${randomUUID()}`
await createTicket(page, ticketName)
const message = `comment-${randomUUID()}`
await createComment(page, message)
})
test.describe('update a comment', () => {
const updates = [
{
field: 'message',
update: async (page) => {
await page.getByRole('tab', { name: 'Comments' }).click()
await page.getByRole('button', { name: 'More' }).click()
await page.getByRole('menuitem', { name: 'Edit' }).click()
await page.locator('textarea').nth(1).fill('Updated Comment')
await page.getByRole('button', { name: 'Save' }).click()
},
assert: async (page) => {
await expect(page.getByText('Updated Comment')).toBeVisible()
}
}
]
for (const { field, update, assert } of updates) {
test(`can update ${field}`, async ({ page }) => {
await login(page)
const ticketName = `playwright-${randomUUID()}`
await createTicket(page, ticketName)
const message = `comment-${randomUUID()}`
await createComment(page, message)
await update(page, message)
await assert(page)
})
}
})
test('can delete a comment', async ({ page }) => {
await login(page)
const ticketName = `playwright-${randomUUID()}`
await createTicket(page, ticketName)
const message = `comment-${randomUUID()}`
await createComment(page, message)
await page.getByRole('tab', { name: 'Comments' }).click()
await page.getByRole('button', { name: 'More' }).click()
await page.getByRole('menuitem', { name: 'Delete' }).click()
await page.getByRole('dialog').getByRole('button', { name: 'Delete' }).click()
await expect(page.getByText(message)).toHaveCount(0)
})