mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
/** 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())
|
|
})
|
|
})
|