mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-26 12:17:14 +00:00
95 lines
3.3 KiB
TypeScript
95 lines
3.3 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { installLangBotApiMocks } from './fixtures/langbot-api';
|
|
|
|
test.describe('processor detail workbench', () => {
|
|
test.use({ viewport: { width: 1440, height: 900 } });
|
|
|
|
test('agent keeps debugging left of its orchestration settings', async ({
|
|
page,
|
|
}) => {
|
|
await installLangBotApiMocks(page, {
|
|
authenticated: true,
|
|
withRunnerToolSelector: true,
|
|
});
|
|
|
|
await page.goto('/home/agents?id=agent-workbench');
|
|
|
|
const debugPanel = page.getByRole('region', { name: 'Debug' });
|
|
const configPanel = page.getByRole('region', { name: 'Configuration' });
|
|
await expect(debugPanel).toBeVisible();
|
|
await expect(configPanel).toBeVisible();
|
|
|
|
const debugBox = await debugPanel.boundingBox();
|
|
const configBox = await configPanel.boundingBox();
|
|
expect(debugBox).not.toBeNull();
|
|
expect(configBox).not.toBeNull();
|
|
expect(debugBox!.x).toBeLessThan(configBox!.x);
|
|
expect(configBox!.width).toBeGreaterThan(debugBox!.width);
|
|
|
|
const appShell = page.locator('[class*="group/sidebar-wrapper"]');
|
|
await expect
|
|
.poll(() => appShell.evaluate((element) => element.scrollTop))
|
|
.toBe(0);
|
|
expect(debugBox!.y).toBeGreaterThanOrEqual(0);
|
|
|
|
const flow = configPanel.locator('ol');
|
|
await expect(flow.getByRole('button').nth(0)).toContainText(
|
|
'Bindable Event Range',
|
|
);
|
|
await expect(flow.getByRole('button').nth(1)).toContainText('Runner');
|
|
await expect(flow.getByRole('button').nth(2)).toContainText('Local Agent');
|
|
|
|
await flow.getByRole('button').nth(0).click();
|
|
await expect(
|
|
configPanel.getByText('Bindable Event Range', { exact: true }).last(),
|
|
).toBeVisible();
|
|
await flow.getByRole('button').nth(2).click();
|
|
await expect(
|
|
configPanel.getByText('Local Agent', { exact: true }).last(),
|
|
).toBeVisible();
|
|
});
|
|
|
|
test('pipeline keeps debug chat left and exposes its main flow first', async ({
|
|
page,
|
|
}) => {
|
|
await installLangBotApiMocks(page, { authenticated: true });
|
|
|
|
await page.goto('/home/pipelines?id=pipeline-workbench');
|
|
|
|
const debugPanel = page.getByRole('region', { name: 'Debug Chat' });
|
|
const configPanel = page.getByRole('region', { name: 'Configuration' });
|
|
await expect(debugPanel).toBeVisible();
|
|
await expect(configPanel).toBeVisible();
|
|
|
|
const debugBox = await debugPanel.boundingBox();
|
|
const configBox = await configPanel.boundingBox();
|
|
expect(debugBox).not.toBeNull();
|
|
expect(configBox).not.toBeNull();
|
|
expect(debugBox!.x).toBeLessThan(configBox!.x);
|
|
expect(configBox!.width).toBeGreaterThan(debugBox!.width);
|
|
|
|
const appShell = page.locator('[class*="group/sidebar-wrapper"]');
|
|
await expect
|
|
.poll(() => appShell.evaluate((element) => element.scrollTop))
|
|
.toBe(0);
|
|
expect(debugBox!.y).toBeGreaterThanOrEqual(0);
|
|
|
|
const flow = configPanel.locator('ol');
|
|
await expect(flow.getByRole('button').nth(0)).toContainText(
|
|
'Trigger Conditions',
|
|
);
|
|
await expect(flow.getByRole('button').nth(1)).toContainText(
|
|
'AI Capabilities',
|
|
);
|
|
await expect(flow.getByRole('button').nth(2)).toContainText(
|
|
'Output Processing',
|
|
);
|
|
|
|
await flow.getByRole('button').nth(1).click();
|
|
await expect(
|
|
configPanel.getByText('Runtime', { exact: true }).last(),
|
|
).toBeVisible();
|
|
});
|
|
});
|