mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-08 00:02:49 +01:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
import { login, test } from './util'
|
|
|
|
// Verify that login stores a token and grants API access
|
|
|
|
test('login grants api access', async ({ page }) => {
|
|
await login(page)
|
|
await expect(page).toHaveURL(/.*\/dashboard/)
|
|
|
|
const token = await page.evaluate(() => localStorage.getItem('token'))
|
|
expect(token).toBeTruthy()
|
|
|
|
const response = await page.request.get('/auth/user', {
|
|
headers: { Authorization: `Bearer ${token}` }
|
|
})
|
|
expect(response.status()).toBe(200)
|
|
const data = await response.json()
|
|
expect(data.user.email).toBe('admin@catalyst-soar.com')
|
|
})
|
|
|
|
// Verify that logout clears the token and api requests fail without it
|
|
|
|
test('logout denies api access', async ({ page }) => {
|
|
await login(page)
|
|
const button = page.getByRole('button', { name: /admin/i })
|
|
await button.click()
|
|
await page.getByRole('menuitem', { name: 'Log out' }).click()
|
|
await page.waitForURL('**/login')
|
|
|
|
const token = await page.evaluate(() => localStorage.getItem('token'))
|
|
expect(token).toBe('')
|
|
|
|
const response = await page.request.get('/auth/user')
|
|
const data = await response.json()
|
|
expect(data).toBeNull()
|
|
})
|