/** Regression coverage for source declarations owned by the client test aggregate. */ import { existsSync, readdirSync } from 'node:fs' import { resolve, sep } from 'node:path' import { fileURLToPath } from 'node:url' import ts from 'typescript' import { describe, expect, it } from 'vitest' const root = fileURLToPath(new URL('..', import.meta.url)) function clientCssDeclarations(): string[] { const clientRoot = resolve(root, 'packages/client') return readdirSync(clientRoot, { withFileTypes: true }) .filter(entry => entry.isDirectory()) .map(entry => resolve(clientRoot, entry.name, 'src/css-modules.d.ts')) .filter(existsSync) .map(file => file.replaceAll(sep, '/')) .sort() } describe('client TypeScript aggregate', () => { it('loads package CSS declarations without relying on workspace-link realpaths', () => { const configPath = resolve(root, 'tsconfig.client.json') const read = ts.readConfigFile(configPath, file => ts.sys.readFile(file)) if (read.error !== undefined) { throw new Error(ts.flattenDiagnosticMessageText(read.error.messageText, '\n')) } const parsed = ts.parseJsonConfigFileContent(read.config, ts.sys, root) const loaded = parsed.fileNames .map(file => file.replaceAll(sep, '/')) .filter(file => file.endsWith('/src/css-modules.d.ts')) .sort() expect(loaded).toEqual(clientCssDeclarations()) }) })