|
import { expect, test } from '@playwright/test'; |
|
|
|
test.describe('Settings suite', () => { |
|
test('Last Bing settings', async ({ page }) => { |
|
await page.goto('http://localhost:3080/', { timeout: 5000 }); |
|
await page.evaluate(() => |
|
window.localStorage.setItem( |
|
'lastConversationSetup', |
|
JSON.stringify({ |
|
conversationId: 'new', |
|
title: 'New Chat', |
|
endpoint: 'bingAI', |
|
createdAt: '', |
|
updatedAt: '', |
|
jailbreak: false, |
|
context: null, |
|
systemMessage: null, |
|
toneStyle: 'creative', |
|
jailbreakConversationId: null, |
|
conversationSignature: null, |
|
clientId: null, |
|
invocationId: 1, |
|
}), |
|
), |
|
); |
|
await page.goto('http://localhost:3080/', { timeout: 5000 }); |
|
|
|
const initialLocalStorage = await page.evaluate(() => window.localStorage); |
|
const lastConvoSetup = JSON.parse(initialLocalStorage.lastConversationSetup); |
|
expect(lastConvoSetup.endpoint).toEqual('bingAI'); |
|
|
|
const newTopicButton = page.getByTestId('new-conversation-menu'); |
|
await newTopicButton.click(); |
|
|
|
|
|
const endpointItem = page.getByTestId('endpoint-item-bingAI'); |
|
await endpointItem.click(); |
|
|
|
await page.getByTestId('text-input').click(); |
|
const button1 = page.getByRole('button', { name: 'Mode: BingAI' }); |
|
const button2 = page.getByRole('button', { name: 'Mode: Sydney' }); |
|
|
|
try { |
|
await button1.click({ timeout: 100 }); |
|
} catch (e) { |
|
|
|
} |
|
|
|
try { |
|
await button2.click({ timeout: 100 }); |
|
} catch (e) { |
|
|
|
} |
|
await page.getByRole('option', { name: 'Sydney' }).click(); |
|
await page.getByRole('tab', { name: 'Balanced' }).click(); |
|
|
|
|
|
await newTopicButton.click(); |
|
await page.getByRole('menuitemradio', { name: 'ChatGPT OpenAI' }).click(); |
|
|
|
|
|
await page.getByTestId('text-input').click(); |
|
await newTopicButton.click(); |
|
await endpointItem.click(); |
|
|
|
|
|
const localStorage = await page.evaluate(() => window.localStorage); |
|
const lastBingSettings = JSON.parse(localStorage.lastBingSettings); |
|
const { jailbreak, toneStyle } = lastBingSettings; |
|
expect(jailbreak).toBeTruthy(); |
|
expect(toneStyle).toEqual('balanced'); |
|
const button = page.getByRole('button', { name: 'Mode: Sydney' }); |
|
expect(button.count()).toBeTruthy(); |
|
}); |
|
}); |
|
|