30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { inspectChangedFiles } from '../../../scripts/guards/changed-file-test-impact-guard.mjs'
|
|
|
|
describe('changed-file-test-impact-guard', () => {
|
|
it('requires api changes to be paired with contract, system, or regression tests', () => {
|
|
const violations = inspectChangedFiles([
|
|
'src/app/api/novel-promotion/[projectId]/generate-image/route.ts',
|
|
])
|
|
expect(violations).toEqual([
|
|
'api: changing src/app/api/** requires a matching contract, system, or regression test change; sources=src/app/api/novel-promotion/[projectId]/generate-image/route.ts',
|
|
])
|
|
})
|
|
|
|
it('accepts worker changes when system tests are updated together', () => {
|
|
const violations = inspectChangedFiles([
|
|
'src/lib/workers/image.worker.ts',
|
|
'tests/system/generate-image.system.test.ts',
|
|
])
|
|
expect(violations).toEqual([])
|
|
})
|
|
|
|
it('accepts provider changes when provider contract coverage is updated', () => {
|
|
const violations = inspectChangedFiles([
|
|
'src/lib/model-gateway/openai-compat/image.ts',
|
|
'tests/unit/model-gateway/openai-compat-template-image-output-urls.test.ts',
|
|
])
|
|
expect(violations).toEqual([])
|
|
})
|
|
})
|