|
import { expect, test } from '@playwright/test'; |
|
import type { Page } from '@playwright/test'; |
|
|
|
const enterTestKey = async (page: Page, endpoint: string) => { |
|
await page.getByTestId('new-conversation-menu').click(); |
|
await page.getByTestId(`endpoint-item-${endpoint}`).hover({ force: true }); |
|
await page.getByRole('button', { name: 'Set API Key' }).click(); |
|
await page.getByTestId(`input-${endpoint}`).fill('test'); |
|
await page.getByRole('button', { name: 'Submit' }).click(); |
|
await page.getByTestId(`endpoint-item-${endpoint}`).click(); |
|
}; |
|
|
|
test.describe('Key suite', () => { |
|
|
|
test('Test Setting and Revoking Keys', async ({ page }) => { |
|
await page.goto('http://localhost:3080/', { timeout: 5000 }); |
|
const endpoint = 'chatGPTBrowser'; |
|
|
|
const newTopicButton = page.getByTestId('new-conversation-menu'); |
|
await newTopicButton.click(); |
|
|
|
const endpointItem = page.getByTestId(`endpoint-item-${endpoint}`); |
|
await endpointItem.click(); |
|
|
|
let setKeyButton = page.getByRole('button', { name: 'Set API key first' }); |
|
|
|
expect(setKeyButton.count()).toBeTruthy(); |
|
|
|
await enterTestKey(page, endpoint); |
|
|
|
const submitButton = page.getByTestId('submit-button'); |
|
|
|
expect(submitButton.count()).toBeTruthy(); |
|
|
|
await newTopicButton.click(); |
|
|
|
await endpointItem.hover({ force: true }); |
|
|
|
await page.getByRole('button', { name: 'Set API Key' }).click(); |
|
await page.getByRole('button', { name: 'Revoke' }).click(); |
|
await page.getByRole('button', { name: 'Confirm Action' }).click(); |
|
await page |
|
.locator('div') |
|
.filter({ hasText: /^Revoke$/ }) |
|
.nth(1) |
|
.click(); |
|
await page.getByRole('button', { name: 'Cancel' }).click(); |
|
setKeyButton = page.getByRole('button', { name: 'Set API key first' }); |
|
expect(setKeyButton.count()).toBeTruthy(); |
|
}); |
|
|
|
test('Test Setting and Revoking Keys from Settings', async ({ page }) => { |
|
await page.goto('http://localhost:3080/', { timeout: 5000 }); |
|
const endpoint = 'bingAI'; |
|
|
|
const newTopicButton = page.getByTestId('new-conversation-menu'); |
|
await newTopicButton.click(); |
|
|
|
const endpointItem = page.getByTestId(`endpoint-item-${endpoint}`); |
|
await endpointItem.click(); |
|
|
|
let setKeyButton = page.getByRole('button', { name: 'Set API key first' }); |
|
|
|
expect(setKeyButton.count()).toBeTruthy(); |
|
|
|
await enterTestKey(page, endpoint); |
|
|
|
const submitButton = page.getByTestId('submit-button'); |
|
|
|
expect(submitButton.count()).toBeTruthy(); |
|
|
|
await page.getByRole('button', { name: 'test' }).click(); |
|
await page.getByText('Settings').click(); |
|
await page.getByRole('tab', { name: 'Data controls' }).click(); |
|
await page.getByRole('button', { name: 'Revoke' }).click(); |
|
await page.getByRole('button', { name: 'Confirm Action' }).click(); |
|
|
|
const revokeButton = page.getByRole('button', { name: 'Revoke' }); |
|
expect(revokeButton.count()).toBeTruthy(); |
|
|
|
await page.getByRole('button', { name: 'Close' }).click(); |
|
|
|
setKeyButton = page.getByRole('button', { name: 'Set API key first' }); |
|
expect(setKeyButton.count()).toBeTruthy(); |
|
}); |
|
}); |
|
|