- {(['none', 'snake', 'flow'] as AnimMode[]).map((mode, i) => (
+ {(['none', 'basic', 'snake', 'flow'] as AnimMode[]).map((mode, i) => (
))}
diff --git a/frontend/src/components/modals/__tests__/EdgeModal.test.tsx b/frontend/src/components/modals/__tests__/EdgeModal.test.tsx
index 83c738d..7b97730 100644
--- a/frontend/src/components/modals/__tests__/EdgeModal.test.tsx
+++ b/frontend/src/components/modals/__tests__/EdgeModal.test.tsx
@@ -122,6 +122,21 @@ describe('EdgeModal', () => {
expect(onSubmit.mock.calls[0][0].animated).toBe('flow')
})
+ it('selecting Basic sends animated: "basic"', () => {
+ const onSubmit = vi.fn()
+ render()
+ fireEvent.click(screen.getByText('Basic'))
+ fireEvent.click(screen.getByRole('button', { name: 'Connect' }))
+ expect(onSubmit.mock.calls[0][0].animated).toBe('basic')
+ })
+
+ it('pre-fills animation from initial "basic" string', () => {
+ const onSubmit = vi.fn()
+ render()
+ fireEvent.click(screen.getByRole('button', { name: 'Connect' }))
+ expect(onSubmit.mock.calls[0][0].animated).toBe('basic')
+ })
+
it('selecting None after Snake omits animated from payload', () => {
const onSubmit = vi.fn()
render()
diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts
index 3437c01..2481349 100644
--- a/frontend/src/types/index.ts
+++ b/frontend/src/types/index.ts
@@ -107,7 +107,7 @@ export interface EdgeData extends Record {
speed?: string
custom_color?: string
path_style?: EdgePathStyle
- animated?: boolean | 'snake' | 'flow' | 'none'
+ animated?: boolean | 'snake' | 'flow' | 'basic' | 'none'
waypoints?: Waypoint[]
}