bug: fixed an issue with the label and a bezier path with multiple points
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { describe, it, expect } from 'vitest'
|
||||
import { buildWaypointPath, distToSegment, findInsertIndex, snap45, snap45both } from '../waypointUtils'
|
||||
import { buildWaypointPath, distToSegment, findInsertIndex, getWaypointLabelPosition, snap45, snap45both } from '../waypointUtils'
|
||||
|
||||
describe('buildWaypointPath — bezier (default)', () => {
|
||||
it('builds a catmull-rom curve with no waypoints (start = end clamp)', () => {
|
||||
@@ -173,3 +173,22 @@ describe('findInsertIndex', () => {
|
||||
expect(idx).toBe(2)
|
||||
})
|
||||
})
|
||||
|
||||
describe('getWaypointLabelPosition', () => {
|
||||
it('uses the routed midpoint for a symmetric bezier waypoint path', () => {
|
||||
const point = getWaypointLabelPosition(0, 0, [{ x: 50, y: 100 }], 100, 0)
|
||||
expect(point.x).toBeCloseTo(50, 0)
|
||||
expect(point.y).toBeCloseTo(100, 0)
|
||||
})
|
||||
|
||||
it('uses the routed midpoint for a smooth waypoint path', () => {
|
||||
const point = getWaypointLabelPosition(0, 0, [{ x: 50, y: 0 }, { x: 50, y: 100 }], 100, 100, 'smooth')
|
||||
expect(point.x).toBeCloseTo(50, 0)
|
||||
expect(point.y).toBeCloseTo(50, 0)
|
||||
})
|
||||
|
||||
it('falls back to the source point when the path is degenerate', () => {
|
||||
const point = getWaypointLabelPosition(10, 20, [], 10, 20, 'smooth')
|
||||
expect(point).toEqual({ x: 10, y: 20 })
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user