Days with 4+ entries open with an hour-grid timeline in the day editor: untimed entries in an all-day strip, timed ones positioned by start/end with side-by-side columns for overlaps, click-to-edit. Layout math lives in a pure, unit-tested module (timelineLayout.js). Today's month-grid cell gets a vertical red slider positioned by the fraction of the day elapsed; the timeline gets the classic horizontal red current-time line. Both tick every minute with cleanup on unmount, and the initial positioning runs unconditionally while the node is still detached (the isConnected self-heal gates only interval ticks). Also splits entryRow rendering out of dayEditor.js to stay under the 500-line cap.
21 lines
877 B
JavaScript
21 lines
877 B
JavaScript
// Test barrel. The package.json `test` script runs `node --test tests/`, which
|
|
// on this Node build resolves the directory to `tests/index.js` and runs it as
|
|
// a single test file rather than scanning the directory. Importing each test
|
|
// module here registers its tests with the runner. Add new test files below.
|
|
//
|
|
// These run in one process, so each test file scopes its fixtures with
|
|
// top-level beforeEach/afterEach that touch only its own module-level
|
|
// app/tmpDir — keeping the files independent.
|
|
import './api.test.js';
|
|
import './checklist.test.js';
|
|
import './checklist-suggestions.test.js';
|
|
import './costs.test.js';
|
|
import './expense-csv.test.js';
|
|
import './expenses.test.js';
|
|
import './expenses-export.test.js';
|
|
import './flights.test.js';
|
|
import './rental.test.js';
|
|
import './stays.test.js';
|
|
import './timeline-layout.test.js';
|
|
import './transport.test.js';
|