mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-02-04 13:21:45 +00:00
feat: add option to renew API key (#1214)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// frontend/tests/api-key.spec.ts
|
||||
import { expect, test } from '@playwright/test';
|
||||
import { expect, Page, test } from '@playwright/test';
|
||||
import { apiKeys } from '../data';
|
||||
import { cleanupBackend } from '../utils/cleanup.util';
|
||||
|
||||
@@ -19,15 +19,7 @@ test.describe('API Key Management', () => {
|
||||
|
||||
// Choose the date
|
||||
const currentDate = new Date();
|
||||
await page.getByRole('button', { name: 'Select a date' }).click();
|
||||
await page.getByLabel('Select year').click();
|
||||
// Select the next year
|
||||
await page.getByRole('option', { name: (currentDate.getFullYear() + 1).toString() }).click();
|
||||
// Select the first day of the month
|
||||
await page
|
||||
.getByRole('button', { name: /([A-Z][a-z]+), ([A-Z][a-z]+) 1, (\d{4})/ })
|
||||
.first()
|
||||
.click();
|
||||
await selectDate(page, currentDate.getFullYear() + 1, currentDate.getMonth(), 1);
|
||||
|
||||
// Submit the form
|
||||
await page.getByRole('button', { name: 'Save' }).click();
|
||||
@@ -51,6 +43,30 @@ test.describe('API Key Management', () => {
|
||||
await expect(page.getByRole('cell', { name }).first()).toContainText(name);
|
||||
});
|
||||
|
||||
test('Renew API key', async ({ page }) => {
|
||||
const apiKey = apiKeys[1];
|
||||
|
||||
await page
|
||||
.getByRole('row', { name: apiKey.name })
|
||||
.getByRole('button', { name: 'Toggle menu' })
|
||||
.click();
|
||||
|
||||
await page.getByRole('menuitem', { name: 'Renew' }).click();
|
||||
|
||||
// Choose the date
|
||||
const currentDate = new Date();
|
||||
await selectDate(page, currentDate.getFullYear() + 1, currentDate.getMonth(), 1);
|
||||
|
||||
await page.getByRole('button', { name: 'Renew' }).click();
|
||||
|
||||
await expect(page.getByRole('heading', { name: 'API key renewed' })).toBeVisible();
|
||||
|
||||
// Verify the new expiration date is shown
|
||||
const row = page.getByRole('row', { name: apiKey.name });
|
||||
const expectedDate = new Date(currentDate.getFullYear() + 1, currentDate.getMonth(), 1);
|
||||
await expect(row.getByRole('cell', { name: expectedDate.toLocaleString() })).toBeVisible();
|
||||
});
|
||||
|
||||
test('Revoke API key', async ({ page }) => {
|
||||
const apiKey = apiKeys[0];
|
||||
|
||||
@@ -70,3 +86,33 @@ test.describe('API Key Management', () => {
|
||||
await expect(page.getByRole('cell', { name: apiKey.name })).not.toBeVisible();
|
||||
});
|
||||
});
|
||||
|
||||
async function selectDate(page: Page, year: number, month: number, day: number) {
|
||||
// Open the date picker
|
||||
await page.getByRole('button', { name: 'Select a date' }).click();
|
||||
// Select the year
|
||||
await page.getByLabel('Select year').click();
|
||||
await page.getByRole('option', { name: year.toString() }).click();
|
||||
// Select the month and day
|
||||
const monthNames = [
|
||||
'January',
|
||||
'February',
|
||||
'March',
|
||||
'April',
|
||||
'May',
|
||||
'June',
|
||||
'July',
|
||||
'August',
|
||||
'September',
|
||||
'October',
|
||||
'November',
|
||||
'December'
|
||||
];
|
||||
const monthName = monthNames[month];
|
||||
await page.getByRole('button', { name: 'Select month' }).click();
|
||||
await page.getByRole('option', { name: monthName }).click();
|
||||
|
||||
await page
|
||||
.getByRole('button', { name: new RegExp(`([A-Z][a-z]+), ([A-Z][a-z]+) ${day}, (\\d{4})`) }).first()
|
||||
.click();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user