mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-08-27 12:47:13 +00:00
fix(events): show raw codes in test selectors
This commit is contained in:
@@ -36,6 +36,7 @@ import {
|
||||
eventPatternLabel,
|
||||
groupEventPatterns,
|
||||
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
||||
import EventSelectOptionContent from '@/app/home/components/event-patterns/EventSelectOptionContent';
|
||||
|
||||
interface AgentDebugPanelProps {
|
||||
agentId: string;
|
||||
@@ -303,7 +304,10 @@ export default function AgentDebugPanel({
|
||||
description={eventPatternDescription(event, t)}
|
||||
className="py-2"
|
||||
>
|
||||
{eventPatternLabel(event, t)}
|
||||
<EventSelectOptionContent
|
||||
event={event}
|
||||
label={eventPatternLabel(event, t)}
|
||||
/>
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectGroup>
|
||||
@@ -316,7 +320,10 @@ export default function AgentDebugPanel({
|
||||
description={t('bots.eventDescriptions.custom')}
|
||||
className="py-2"
|
||||
>
|
||||
{t('agents.debugCustomEvent')}
|
||||
<EventSelectOptionContent
|
||||
event="custom.event"
|
||||
label={t('agents.debugCustomEvent')}
|
||||
/>
|
||||
</SelectItem>
|
||||
</SelectGroup>
|
||||
)}
|
||||
|
||||
@@ -120,6 +120,7 @@ import {
|
||||
eventNamespaces,
|
||||
groupEventPatterns,
|
||||
} from '@/app/home/components/event-patterns/event-pattern-groups';
|
||||
import EventSelectOptionContent from '@/app/home/components/event-patterns/EventSelectOptionContent';
|
||||
|
||||
export const PIPELINE_DISCARD = '__discard__';
|
||||
|
||||
@@ -1050,18 +1051,29 @@ function RouteDryRunDialog({
|
||||
{t('bots.dryRunEventType')}
|
||||
</label>
|
||||
<Select value={eventType} onValueChange={setEventType}>
|
||||
<SelectTrigger className="h-9">
|
||||
<SelectTrigger
|
||||
className="h-auto min-h-9 w-full"
|
||||
aria-label={t('bots.dryRunEventType')}
|
||||
>
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectContent className="w-[var(--radix-select-trigger-width)] max-w-[calc(100vw-2rem)]">
|
||||
{groupEventPatterns(eventOptions).map((group) => (
|
||||
<SelectGroup key={group.namespace}>
|
||||
<SelectLabel>
|
||||
{eventGroupLabel(group.namespace, t)}
|
||||
</SelectLabel>
|
||||
{group.patterns.map((event) => (
|
||||
<SelectItem key={event} value={event}>
|
||||
{eventLabel(event, t)}
|
||||
<SelectItem
|
||||
key={event}
|
||||
value={event}
|
||||
description={eventDescription(event, t)}
|
||||
className="py-2"
|
||||
>
|
||||
<EventSelectOptionContent
|
||||
event={event}
|
||||
label={eventLabel(event, t)}
|
||||
/>
|
||||
</SelectItem>
|
||||
))}
|
||||
</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(
|
||||
routeDialog.getByRole('button', { name: 'Run full test' }),
|
||||
).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(
|
||||
page.getByText('Messages', { exact: true }).last(),
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
page.getByText('Groups', { exact: true }).last(),
|
||||
).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 routeDialog.getByRole('button', { name: 'Preview match' }).click();
|
||||
|
||||
@@ -30,12 +30,16 @@ test.describe('processor detail workbench', () => {
|
||||
const debugEventPicker = debugPanel.getByRole('combobox', {
|
||||
name: 'Event type',
|
||||
});
|
||||
await expect(debugEventPicker).toContainText('message.received');
|
||||
await debugEventPicker.click();
|
||||
await expect(page.getByRole('group', { name: 'Messages' })).toBeVisible();
|
||||
await expect(page.getByRole('group', { name: 'Groups' })).toBeVisible();
|
||||
await expect(
|
||||
page.getByRole('option').filter({ hasText: 'Member joined group' }),
|
||||
).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(
|
||||
page.getByRole('option').filter({ hasText: 'Message edited' }),
|
||||
).toContainText('The platform reports that an existing message changed.');
|
||||
|
||||
Reference in New Issue
Block a user