mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-11 09:42:47 +01:00
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
import { randomUUID } from 'crypto'
|
|
import { login, test, createTicket } from './util'
|
|
|
|
test('can create a ticket', async ({ page }) => {
|
|
await login(page)
|
|
const name = `playwright-${randomUUID()}`
|
|
await createTicket(page, name)
|
|
await expect(page.locator('#app #name').getByText(name)).toBeVisible()
|
|
})
|
|
|
|
test.describe('update a ticket', () => {
|
|
const updates = [
|
|
{
|
|
field: 'description',
|
|
update: async (page) => {
|
|
await page.getByRole('button', { name: 'Edit' }).click()
|
|
await page.getByRole('application').getByRole('textbox').fill('Updated description')
|
|
await page.getByRole('button', { name: 'Save' }).last().click()
|
|
},
|
|
assert: async (page) => {
|
|
await expect(page.getByText('Updated description')).toBeVisible()
|
|
}
|
|
},
|
|
{
|
|
field: 'severity',
|
|
update: async (page) => {
|
|
await page.locator('#app #severity').selectOption('High')
|
|
},
|
|
assert: async (page) => {
|
|
await expect(page.locator('button').filter({ hasText: 'High' })).toBeVisible()
|
|
}
|
|
}
|
|
]
|
|
|
|
for (const { field, update, assert } of updates) {
|
|
test(`can update ${field}`, async ({ page }) => {
|
|
await login(page)
|
|
const name = `playwright-${randomUUID()}`
|
|
await createTicket(page, name)
|
|
await update(page)
|
|
await assert(page)
|
|
})
|
|
}
|
|
})
|
|
|
|
test('can delete a ticket', async ({ page }) => {
|
|
await login(page)
|
|
const name = `playwright-${randomUUID()}`
|
|
await createTicket(page, name)
|
|
await page.getByRole('button', { name: 'Delete Ticket' }).click()
|
|
await page.getByRole('dialog').getByRole('button', { name: 'Delete' }).click()
|
|
await page.waitForURL('**/tickets/incident')
|
|
await expect(page.locator(`text=${name}`)).toHaveCount(0)
|
|
})
|