diff --git a/packages/aelis-source-tfl/src/renderer.test.tsx b/packages/aelis-source-tfl/src/renderer.test.tsx index 25896bd..ae3752a 100644 --- a/packages/aelis-source-tfl/src/renderer.test.tsx +++ b/packages/aelis-source-tfl/src/renderer.test.tsx @@ -61,6 +61,15 @@ describe("renderTflAlert", () => { expect(caption.props.content).toBe("Nearest station: 2.5km away") }) + test("formats near-1km boundary as km not meters", () => { + const node = renderTflAlert(makeItem({ closestStationDistance: 0.9999 })) + const spec = render(node) + + const root = spec.elements[spec.root]! + const caption = spec.elements[root.children![2]!]! + expect(caption.props.content).toBe("Nearest station: 1.0km away") + }) + test("omits station distance when null", () => { const node = renderTflAlert(makeItem({ closestStationDistance: null })) const spec = render(node) diff --git a/packages/aelis-source-tfl/src/renderer.tsx b/packages/aelis-source-tfl/src/renderer.tsx index d5cc5a1..e0eb02a 100644 --- a/packages/aelis-source-tfl/src/renderer.tsx +++ b/packages/aelis-source-tfl/src/renderer.tsx @@ -14,10 +14,11 @@ const SEVERITY_LABEL: Record = { } function formatDistance(km: number): string { - if (km < 1) { - return `${Math.round(km * 1000)}m away` + const meters = Math.round(km * 1000) + if (meters < 1000) { + return `${meters}m away` } - return `${km.toFixed(1)}km away` + return `${(meters / 1000).toFixed(1)}km away` } export const renderTflAlert: FeedItemRenderer<"tfl-alert", TflAlertData> = (item) => {