66 lines
2.7 KiB
TypeScript
66 lines
2.7 KiB
TypeScript
import { completeSetup, expect, test } from './fixtures/electron';
|
|
|
|
const TEST_PROVIDER_ID = 'moonshot-e2e';
|
|
const TEST_PROVIDER_LABEL = 'Moonshot E2E';
|
|
|
|
async function seedTestProvider(page: Parameters<typeof completeSetup>[0]): Promise<void> {
|
|
await page.evaluate(async ({ providerId, providerLabel }) => {
|
|
const now = new Date().toISOString();
|
|
await window.electron.ipcRenderer.invoke('provider:save', {
|
|
id: providerId,
|
|
name: providerLabel,
|
|
type: 'moonshot',
|
|
baseUrl: 'https://api.moonshot.cn/v1',
|
|
model: 'kimi-k2.5',
|
|
enabled: true,
|
|
createdAt: now,
|
|
updatedAt: now,
|
|
});
|
|
}, { providerId: TEST_PROVIDER_ID, providerLabel: TEST_PROVIDER_LABEL });
|
|
}
|
|
|
|
test.describe('ClawX provider lifecycle', () => {
|
|
test('shows a saved provider and removes it cleanly after deletion', async ({ page }) => {
|
|
await completeSetup(page);
|
|
await seedTestProvider(page);
|
|
|
|
await page.getByTestId('sidebar-nav-models').click();
|
|
await expect(page.getByTestId('providers-settings')).toBeVisible();
|
|
await expect(page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`)).toContainText(TEST_PROVIDER_LABEL);
|
|
|
|
await page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`).hover();
|
|
await page.getByTestId(`provider-delete-${TEST_PROVIDER_ID}`).click();
|
|
|
|
await expect(page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`)).toHaveCount(0);
|
|
await expect(page.getByText(TEST_PROVIDER_LABEL)).toHaveCount(0);
|
|
});
|
|
|
|
test('does not redisplay a deleted provider after relaunch', async ({ electronApp, launchElectronApp, page }) => {
|
|
await completeSetup(page);
|
|
await seedTestProvider(page);
|
|
|
|
await page.getByTestId('sidebar-nav-models').click();
|
|
await expect(page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`)).toContainText(TEST_PROVIDER_LABEL);
|
|
|
|
await page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`).hover();
|
|
await page.getByTestId(`provider-delete-${TEST_PROVIDER_ID}`).click();
|
|
await expect(page.getByTestId(`provider-card-${TEST_PROVIDER_ID}`)).toHaveCount(0);
|
|
|
|
await electronApp.close();
|
|
|
|
const relaunchedApp = await launchElectronApp();
|
|
try {
|
|
const relaunchedPage = await relaunchedApp.firstWindow();
|
|
await relaunchedPage.waitForLoadState('domcontentloaded');
|
|
await expect(relaunchedPage.getByTestId('main-layout')).toBeVisible();
|
|
|
|
await relaunchedPage.getByTestId('sidebar-nav-models').click();
|
|
await expect(relaunchedPage.getByTestId('providers-settings')).toBeVisible();
|
|
await expect(relaunchedPage.getByTestId(`provider-card-${TEST_PROVIDER_ID}`)).toHaveCount(0);
|
|
await expect(relaunchedPage.getByText(TEST_PROVIDER_LABEL)).toHaveCount(0);
|
|
} finally {
|
|
await relaunchedApp.close();
|
|
}
|
|
});
|
|
});
|