| import { expect, test } from '@playwright/test';
|
|
|
| test.describe('Deduct Situation Panel Options', () => {
|
| test('It successfully requests deduction from the intelligence API', async ({ page }) => {
|
| await page.goto('/?view=global');
|
|
|
|
|
| if (!process.env.TEST_REAL_LLM) {
|
| await page.route('**/api/intelligence/v1/deduct-situation', async (route) => {
|
| const json = {
|
| analysis: '### Mocked AI Analysis\n- This is a simulated response.\n- Situation is stable.',
|
| model: 'mocked-e2e-model',
|
| provider: 'groq',
|
| };
|
| await route.fulfill({ json });
|
| });
|
| }
|
|
|
|
|
| await page.keyboard.press('ControlOrMeta+k');
|
| await page.waitForSelector('.command-palette');
|
| await page.fill('.command-palette input', 'deduct');
|
| await page.click('text="Jump to Deduct Situation"');
|
|
|
|
|
| const panel = page.locator('.wm-panel', { hasText: 'DEDUCT SITUATION' });
|
| await expect(panel).toBeVisible();
|
|
|
|
|
| const textarea = panel.locator('textarea').first();
|
| await textarea.fill('What is the geopolitical status of the Pacific?');
|
|
|
|
|
| const analyzeBtn = panel.locator('button', { hasText: 'Analyze' });
|
| await analyzeBtn.click();
|
|
|
|
|
| await expect(panel.locator('text="Analyzing timeline and impact..."')).toBeVisible();
|
|
|
|
|
| if (!process.env.TEST_REAL_LLM) {
|
| await expect(panel.locator('text="Mocked AI Analysis"')).toBeVisible({ timeout: 10000 });
|
| await expect(panel.locator('text="Situation is stable."')).toBeVisible();
|
| } else {
|
|
|
|
|
| await expect(panel.locator('.deduction-result')).not.toBeEmpty({ timeout: 30000 });
|
| }
|
| });
|
| });
|
|
|