import test from 'node:test' import assert from 'node:assert/strict' import { clampDragX, getTabBarFrame, tabIndexAtX } from '../src/custom-tab-bar/tabBarGeometry.js' test('maps a drag x to the tab under the finger', () => { assert.equal(tabIndexAtX(10, 100, 5), 0) assert.equal(tabIndexAtX(30, 100, 5), 1) assert.equal(tabIndexAtX(50, 100, 5), 2) assert.equal(tabIndexAtX(70, 100, 5), 3) assert.equal(tabIndexAtX(90, 100, 5), 4) }) test('clamps drag positions outside the bar', () => { assert.equal(tabIndexAtX(-10, 100, 5), 0) assert.equal(tabIndexAtX(200, 100, 5), 4) assert.equal(clampDragX(-5, 100), 0) assert.equal(clampDragX(120, 100), 100) assert.equal(clampDragX(Number.NaN, 100), 0) }) test('derives the floating bar frame from window width', () => { assert.deepEqual(getTabBarFrame(375), { left: 18, width: 339 }) assert.deepEqual(getTabBarFrame(750), { left: 36, width: 678 }) })