import { completeSetup, expect, test } from './fixtures/electron'; const TEST_PROVIDER_ID = 'moonshot-e2e'; const TEST_PROVIDER_LABEL = 'Moonshot E2E'; async function seedTestProvider(page: Parameters[0]): Promise { 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(); } }); });