fix(events): show raw codes in test selectors

This commit is contained in:
RockChinQ
2026-08-26 14:12:52 +08:00
parent 4787799cd8
commit 8b63cc0281
5 changed files with 59 additions and 7 deletions
@@ -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>
);
}
+12 -1
View File
@@ -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.');