26 lines
1.3 KiB
TypeScript
26 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { kbxScreenRecipeCatalog, kbxScreenRecipeVerificationCatalog } from '@kbx/contracts'
|
|
import { kbxTemplateManifest } from '@kbx/ui'
|
|
|
|
describe('KBX screen recipes',()=>{
|
|
it('closes every T01-T09 template to an implementation and verification recipe',()=>{
|
|
expect(Object.keys(kbxScreenRecipeCatalog)).toHaveLength(9)
|
|
for(const template of kbxTemplateManifest){
|
|
const recipe=kbxScreenRecipeCatalog[template.code]
|
|
const verification=kbxScreenRecipeVerificationCatalog[template.code]
|
|
expect(recipe.type).toBe(template.type)
|
|
expect(recipe.templateComponent).toBe(template.component)
|
|
expect(recipe.requiredPolicies.length).toBeGreaterThan(0)
|
|
expect(recipe.recoveryPolicies.length).toBeGreaterThan(0)
|
|
expect(recipe.securityPolicies.length).toBeGreaterThan(0)
|
|
expect(recipe.canonicalScenarioIds.length).toBeGreaterThan(0)
|
|
expect(recipe.testProfile.requiredChecks.length).toBeGreaterThan(0)
|
|
expect(recipe.testProfile.requiredScenarioKinds).toContain('e2e')
|
|
expect(verification.complete).toBe(true)
|
|
expect(verification.missingScenarioKinds).toEqual([])
|
|
expect(verification.missingTags).toEqual([])
|
|
expect(verification.missingEvidence).toEqual([])
|
|
}
|
|
})
|
|
})
|