// new-task-button.test.mjs — visibility contract for the New Task button // // The New Task button lives in the global header and must be visible on all tabs. // Run with: node --test web/test/new-task-button.test.mjs import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { newTaskButtonShouldShowOnTab } from '../app.js'; const ALL_TABS = ['tasks', 'active', 'running', 'stats']; describe('new task button visibility', () => { for (const tab of ALL_TABS) { it(`is visible on "${tab}" tab`, () => { assert.equal(newTaskButtonShouldShowOnTab(tab), true, `expected button to be visible on tab "${tab}"`); }); } it('is visible on any unknown future tab', () => { assert.equal(newTaskButtonShouldShowOnTab('help'), true); assert.equal(newTaskButtonShouldShowOnTab('templates'), true); assert.equal(newTaskButtonShouldShowOnTab(''), true); }); });