|
1 | | -import { test, expect } from '../playwright/fixtures'; |
2 | | -import { PLAYWRIGHT_BASE_URL } from '../playwright/config'; |
| 1 | +import {test, expect} from '../playwright/fixtures'; |
| 2 | +import {PLAYWRIGHT_BASE_URL} from '../playwright/config'; |
3 | 3 |
|
4 | | -test('test that user name can be updated', async ({ page }) => { |
| 4 | +test('test that user name can be updated', async ({page}) => { |
5 | 5 | await page.goto(PLAYWRIGHT_BASE_URL + '/user/profile'); |
6 | | - await page.getByLabel('Name').fill('NEW NAME'); |
| 6 | + await page.getByLabel('Name', {exact: true} ).fill('NEW NAME'); |
7 | 7 | await Promise.all([ |
8 | | - page.getByRole('button', { name: 'Save' }).first().click(), |
| 8 | + page.getByRole('button', {name: 'Save'}).first().click(), |
9 | 9 | page.waitForResponse('**/user/profile-information'), |
10 | 10 | ]); |
11 | 11 | await page.reload(); |
12 | | - await expect(page.getByLabel('Name')).toHaveValue('NEW NAME'); |
| 12 | + await expect(page.getByLabel('Name', {exact: true})).toHaveValue('NEW NAME'); |
13 | 13 | }); |
14 | 14 |
|
15 | | -test.skip('test that user email can be updated', async ({ page }) => { |
| 15 | +test.skip('test that user email can be updated', async ({page}) => { |
16 | 16 | // this does not work because of email verification currently |
17 | 17 | await page.goto(PLAYWRIGHT_BASE_URL + '/user/profile'); |
18 | 18 | const emailId = Math.round(Math.random() * 10000); |
19 | 19 | await page.getByLabel('Email').fill(`newemail+${emailId}@test.com`); |
20 | | - await page.getByRole('button', { name: 'Save' }).first().click(); |
| 20 | + await page.getByRole('button', {name: 'Save'}).first().click(); |
21 | 21 | await page.reload(); |
22 | 22 | await expect(page.getByLabel('Email')).toHaveValue( |
23 | 23 | `newemail+${emailId}@test.com` |
24 | 24 | ); |
25 | 25 | }); |
| 26 | + |
| 27 | +async function createNewApiToken(page) { |
| 28 | + await page.getByLabel('API Key Name').fill('NEW API KEY'); |
| 29 | + await Promise.all([ |
| 30 | + page.getByRole('button', {name: 'Create API Key'}).click(), |
| 31 | + page.waitForResponse('**/users/me/api-tokens') |
| 32 | + ]); |
| 33 | + |
| 34 | + await expect(page.locator('body')).toContainText('API Token created successfully'); |
| 35 | + await page.getByRole('dialog').getByText('Close').click(); |
| 36 | + await expect(page.locator('body')).toContainText('NEW API KEY'); |
| 37 | +} |
| 38 | + |
| 39 | +test('test that user can create an API key', async ({page}) => { |
| 40 | + await page.goto(PLAYWRIGHT_BASE_URL + '/user/profile'); |
| 41 | + await createNewApiToken(page); |
| 42 | +}); |
| 43 | + |
| 44 | +test('test that user can delete an API key', async ({page}) => { |
| 45 | + await page.goto(PLAYWRIGHT_BASE_URL + '/user/profile'); |
| 46 | + await createNewApiToken(page); |
| 47 | + page.getByLabel('Delete API Token NEW API KEY').click(); |
| 48 | + await expect(page.getByRole('dialog')).toContainText('Are you sure you would like to delete this API token?'); |
| 49 | + await Promise.all([ |
| 50 | + page.getByRole('dialog').getByRole('button', {name: 'Delete'}).click(), |
| 51 | + page.waitForResponse('**/users/me/api-tokens') |
| 52 | + ]); |
| 53 | + await expect(page.locator('body')).not.toContainText('NEW API KEY'); |
| 54 | +}); |
| 55 | + |
| 56 | + |
| 57 | +test('test that user can revoke an API key', async ({page}) => { |
| 58 | + await page.goto(PLAYWRIGHT_BASE_URL + '/user/profile'); |
| 59 | + await createNewApiToken(page); |
| 60 | + page.getByLabel('Revoke API Token NEW API KEY').click(); |
| 61 | + await expect(page.getByRole('dialog')).toContainText('Are you sure you would like to revoke this API token?'); |
| 62 | + await Promise.all([ |
| 63 | + page.getByRole('dialog').getByRole('button', {name: 'Revoke'}).click(), |
| 64 | + page.waitForResponse('**/users/me/api-tokens') |
| 65 | + ]); |
| 66 | + await expect(page.getByRole('button', {name: 'Revoke'})).toBeHidden(); |
| 67 | + await expect(page.locator('body')).toContainText('NEW API KEY'); |
| 68 | + await expect(page.locator('body')).toContainText('Revoked'); |
| 69 | +}); |
0 commit comments