mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-28 13:17:14 +00:00
fix(events): show raw codes in test selectors
This commit is contained in:
@@ -36,6 +36,7 @@ import {
|
|||||||
eventPatternLabel,
|
eventPatternLabel,
|
||||||
groupEventPatterns,
|
groupEventPatterns,
|
||||||
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
||||||
|
import EventSelectOptionContent from '@/app/home/components/event-patterns/EventSelectOptionContent';
|
||||||
|
|
||||||
interface AgentDebugPanelProps {
|
interface AgentDebugPanelProps {
|
||||||
agentId: string;
|
agentId: string;
|
||||||
@@ -303,7 +304,10 @@ export default function AgentDebugPanel({
|
|||||||
description={eventPatternDescription(event, t)}
|
description={eventPatternDescription(event, t)}
|
||||||
className="py-2"
|
className="py-2"
|
||||||
>
|
>
|
||||||
{eventPatternLabel(event, t)}
|
<EventSelectOptionContent
|
||||||
|
event={event}
|
||||||
|
label={eventPatternLabel(event, t)}
|
||||||
|
/>
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
))}
|
))}
|
||||||
</SelectGroup>
|
</SelectGroup>
|
||||||
@@ -316,7 +320,10 @@ export default function AgentDebugPanel({
|
|||||||
description={t('bots.eventDescriptions.custom')}
|
description={t('bots.eventDescriptions.custom')}
|
||||||
className="py-2"
|
className="py-2"
|
||||||
>
|
>
|
||||||
{t('agents.debugCustomEvent')}
|
<EventSelectOptionContent
|
||||||
|
event="custom.event"
|
||||||
|
label={t('agents.debugCustomEvent')}
|
||||||
|
/>
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
</SelectGroup>
|
</SelectGroup>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ import {
|
|||||||
eventNamespaces,
|
eventNamespaces,
|
||||||
groupEventPatterns,
|
groupEventPatterns,
|
||||||
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
||||||
|
import EventSelectOptionContent from '@/app/home/components/event-patterns/EventSelectOptionContent';
|
||||||
|
|
||||||
export const PIPELINE_DISCARD = '__discard__';
|
export const PIPELINE_DISCARD = '__discard__';
|
||||||
|
|
||||||
@@ -1050,18 +1051,29 @@ function RouteDryRunDialog({
|
|||||||
{t('bots.dryRunEventType')}
|
{t('bots.dryRunEventType')}
|
||||||
</label>
|
</label>
|
||||||
<Select value={eventType} onValueChange={setEventType}>
|
<Select value={eventType} onValueChange={setEventType}>
|
||||||
<SelectTrigger className="h-9">
|
<SelectTrigger
|
||||||
|
className="h-auto min-h-9 w-full"
|
||||||
|
aria-label={t('bots.dryRunEventType')}
|
||||||
|
>
|
||||||
<SelectValue />
|
<SelectValue />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent className="w-[var(--radix-select-trigger-width)] max-w-[calc(100vw-2rem)]">
|
||||||
{groupEventPatterns(eventOptions).map((group) => (
|
{groupEventPatterns(eventOptions).map((group) => (
|
||||||
<SelectGroup key={group.namespace}>
|
<SelectGroup key={group.namespace}>
|
||||||
<SelectLabel>
|
<SelectLabel>
|
||||||
{eventGroupLabel(group.namespace, t)}
|
{eventGroupLabel(group.namespace, t)}
|
||||||
</SelectLabel>
|
</SelectLabel>
|
||||||
{group.patterns.map((event) => (
|
{group.patterns.map((event) => (
|
||||||
<SelectItem key={event} value={event}>
|
<SelectItem
|
||||||
{eventLabel(event, t)}
|
key={event}
|
||||||
|
value={event}
|
||||||
|
description={eventDescription(event, t)}
|
||||||
|
className="py-2"
|
||||||
|
>
|
||||||
|
<EventSelectOptionContent
|
||||||
|
event={event}
|
||||||
|
label={eventLabel(event, t)}
|
||||||
|
/>
|
||||||
</SelectItem>
|
</SelectItem>
|
||||||
))}
|
))}
|
||||||
</SelectGroup>
|
</SelectGroup>
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
interface EventSelectOptionContentProps {
|
||||||
|
event: string;
|
||||||
|
label: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function EventSelectOptionContent({
|
||||||
|
event,
|
||||||
|
label,
|
||||||
|
}: EventSelectOptionContentProps) {
|
||||||
|
return (
|
||||||
|
<span className="flex min-w-0 items-center gap-2">
|
||||||
|
<span className="truncate font-medium">{label}</span>
|
||||||
|
<code className="shrink-0 rounded-sm bg-muted px-1 py-0.5 font-mono text-[10px] font-normal text-muted-foreground">
|
||||||
|
{event}
|
||||||
|
</code>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -474,13 +474,24 @@ test.describe('bot advanced flows', () => {
|
|||||||
await expect(
|
await expect(
|
||||||
routeDialog.getByRole('button', { name: 'Run full test' }),
|
routeDialog.getByRole('button', { name: 'Run full test' }),
|
||||||
).toBeVisible();
|
).toBeVisible();
|
||||||
await routeDialog.getByRole('combobox').first().click();
|
const routeEventPicker = routeDialog.getByRole('combobox', {
|
||||||
|
name: 'Event type',
|
||||||
|
});
|
||||||
|
await expect(routeEventPicker).toContainText('message.received');
|
||||||
|
await routeEventPicker.click();
|
||||||
await expect(
|
await expect(
|
||||||
page.getByText('Messages', { exact: true }).last(),
|
page.getByText('Messages', { exact: true }).last(),
|
||||||
).toBeVisible();
|
).toBeVisible();
|
||||||
await expect(
|
await expect(
|
||||||
page.getByText('Groups', { exact: true }).last(),
|
page.getByText('Groups', { exact: true }).last(),
|
||||||
).toBeVisible();
|
).toBeVisible();
|
||||||
|
const receivedMessageOption = page
|
||||||
|
.getByRole('option')
|
||||||
|
.filter({ hasText: 'Message received' });
|
||||||
|
await expect(receivedMessageOption).toContainText('message.received');
|
||||||
|
await expect(receivedMessageOption).toContainText(
|
||||||
|
'A user or group sends a new message to the bot.',
|
||||||
|
);
|
||||||
await page.keyboard.press('Escape');
|
await page.keyboard.press('Escape');
|
||||||
|
|
||||||
await routeDialog.getByRole('button', { name: 'Preview match' }).click();
|
await routeDialog.getByRole('button', { name: 'Preview match' }).click();
|
||||||
|
|||||||
@@ -30,12 +30,16 @@ test.describe('processor detail workbench', () => {
|
|||||||
const debugEventPicker = debugPanel.getByRole('combobox', {
|
const debugEventPicker = debugPanel.getByRole('combobox', {
|
||||||
name: 'Event type',
|
name: 'Event type',
|
||||||
});
|
});
|
||||||
|
await expect(debugEventPicker).toContainText('message.received');
|
||||||
await debugEventPicker.click();
|
await debugEventPicker.click();
|
||||||
await expect(page.getByRole('group', { name: 'Messages' })).toBeVisible();
|
await expect(page.getByRole('group', { name: 'Messages' })).toBeVisible();
|
||||||
await expect(page.getByRole('group', { name: 'Groups' })).toBeVisible();
|
await expect(page.getByRole('group', { name: 'Groups' })).toBeVisible();
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('option').filter({ hasText: 'Member joined group' }),
|
page.getByRole('option').filter({ hasText: 'Member joined group' }),
|
||||||
).toContainText('A member joins a group where the bot is present.');
|
).toContainText('A member joins a group where the bot is present.');
|
||||||
|
await expect(
|
||||||
|
page.getByRole('option').filter({ hasText: 'Member joined group' }),
|
||||||
|
).toContainText('group.member_joined');
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('option').filter({ hasText: 'Message edited' }),
|
page.getByRole('option').filter({ hasText: 'Message edited' }),
|
||||||
).toContainText('The platform reports that an existing message changed.');
|
).toContainText('The platform reports that an existing message changed.');
|
||||||
|
|||||||
Reference in New Issue
Block a user