mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
82 lines
2.9 KiB
TypeScript
82 lines
2.9 KiB
TypeScript
import { readdirSync } from 'node:fs'
|
|
import { resolve } from 'node:path'
|
|
import { describe, expect, it } from 'vitest'
|
|
import { selectLintShard } from './lint-shards.ts'
|
|
|
|
const packagesRoot = resolve(import.meta.dirname, '..', 'packages')
|
|
|
|
describe('lint gate shards', () => {
|
|
it('keeps the unsharded local command complete', () => {
|
|
expect(selectLintShard()).toEqual({ eslintTargets: ['.'], includeDuplication: true })
|
|
expect(selectLintShard('')).toEqual({ eslintTargets: ['.'], includeDuplication: true })
|
|
})
|
|
|
|
it('partitions package sources and tests into alphabetic ranges plus their repository complement', () => {
|
|
expect(selectLintShard('package-sources-a-c')).toEqual({
|
|
eslintTargets: ['packages/[a-c]*/*/src/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-sources-d-m')).toEqual({
|
|
eslintTargets: ['packages/[d-m]*/*/src/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-sources-n-s')).toEqual({
|
|
eslintTargets: ['packages/[n-s]*/*/src/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-sources-t-z')).toEqual({
|
|
eslintTargets: ['packages/[t-z]*/*/src/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-tests-a-c')).toEqual({
|
|
eslintTargets: ['packages/[a-c]*/*/tests/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-tests-d-m')).toEqual({
|
|
eslintTargets: ['packages/[d-m]*/*/tests/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-tests-n-s')).toEqual({
|
|
eslintTargets: ['packages/[n-s]*/*/tests/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-tests-t-z')).toEqual({
|
|
eslintTargets: ['packages/[t-z]*/*/tests/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-sources')).toEqual({
|
|
eslintTargets: ['packages/*/*/src/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('package-tests')).toEqual({
|
|
eslintTargets: ['packages/*/*/tests/**/*.ts'],
|
|
includeDuplication: false,
|
|
})
|
|
expect(selectLintShard('repository')).toEqual({
|
|
eslintTargets: [
|
|
'.',
|
|
'--ignore-pattern',
|
|
'packages/*/*/src/**',
|
|
'--ignore-pattern',
|
|
'packages/*/*/tests/**',
|
|
],
|
|
includeDuplication: true,
|
|
})
|
|
})
|
|
|
|
it('assigns every package group once in the Linux topology', () => {
|
|
const groups = readdirSync(packagesRoot, { withFileTypes: true })
|
|
.filter(entry => entry.isDirectory())
|
|
.map(entry => entry.name)
|
|
.sort()
|
|
const ranges = [/^[a-c]/u, /^[d-m]/u, /^[n-s]/u, /^[t-z]/u]
|
|
const assignments = ranges.flatMap(range => groups.filter(group => range.test(group))).sort()
|
|
|
|
expect(assignments).toEqual(groups)
|
|
})
|
|
|
|
it('rejects an unknown lane', () => {
|
|
expect(() => selectLintShard('missing')).toThrow('unknown DSH_LINT_SHARD')
|
|
})
|
|
})
|