import test from 'node:test' import assert from 'node:assert/strict' import { loadModule } from './load.mjs' const { projectCounts, projectsInView } = await loadModule('src/lib/projectList.js') const P = [ { $id: 'a' }, { $id: 'b', customerId: 'k' }, { $id: 'c', archived: true }, { $id: 'd', isTemplate: true }, { $id: 'e', isTemplate: true, archived: true }, ] const ids = (list) => list.map((p) => p.$id) test('Aktive Projekte ohne Archiv und Vorlagen', () => { assert.deepEqual(ids(projectsInView(P, 'all')), ['a', 'b']) assert.deepEqual(ids(projectsInView(P, 'unassigned')), ['a']) assert.deepEqual(ids(projectsInView(P, 'assigned')), ['b']) }) test('Alle inkl. Archiv: wirklich alles (Vorlagen nur fuer Admins)', () => { assert.deepEqual(ids(projectsInView(P, 'everything')), ['a', 'b', 'c']) assert.deepEqual(ids(projectsInView(P, 'everything', { isAdmin: true })), ['a', 'b', 'c', 'd', 'e']) }) test('Archiviert und Vorlagen', () => { assert.deepEqual(ids(projectsInView(P, 'archived')), ['c']) assert.deepEqual(ids(projectsInView(P, 'archived', { isAdmin: true })), ['c', 'e']) assert.deepEqual(ids(projectsInView(P, 'templates')), ['d']) }) test('Zaehler passen zu den Ansichten', () => { assert.deepEqual(projectCounts(P), { all: 2, unassigned: 1, assigned: 1, archived: 1, templates: 1, everything: 3 }) assert.deepEqual(projectCounts(P, { isAdmin: true }).everything, 5) })