21 lines
1.4 KiB
TypeScript
21 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { kbxComponentCatalog, kbxComponentManifest } from '@kbx/ui'
|
|
|
|
const requiredCore=[
|
|
'KbxButton','KbxInput','KbxNumberField','KbxMoneyField','KbxQuantityField','KbxDateField','KbxDateRange','KbxSelect','KbxLookup','KbxCheckbox','KbxRadio','KbxTextarea','KbxTabs','KbxBadge','KbxTooltip','KbxBarcodeField',
|
|
'KbxPageHeader','KbxCommandBar','KbxSearchPanel','KbxFormSection','KbxSectionHeader','KbxDataGrid','KbxBulkActionBar','KbxQuickFilterBar','KbxSummaryBar','KbxStatus',
|
|
'KbxDialog','KbxDrawer','KbxToast','KbxConfirm','KbxExcelMenu','KbxExcelImport','KbxJobProgress','KbxAuditTrail','KbxHelpPanel','KbxAiPanel','KbxProposalPanel',
|
|
'KbxListPage','KbxMasterPage','KbxTransactionPage','KbxMasterDetailPage','KbxQueuePage','KbxReconcilePage','KbxWmsMobilePage',
|
|
]
|
|
|
|
describe('KBX source-standard core component contract',()=>{
|
|
it('publishes every v1 core component',()=>{
|
|
const names=new Set(kbxComponentManifest.map(x=>x.name))
|
|
for(const name of requiredCore) expect(names.has(name),name).toBe(true)
|
|
})
|
|
it('catalogs the highest-risk interactive components',()=>{
|
|
const catalogued=new Set(kbxComponentCatalog.map(x=>x.component))
|
|
for(const name of ['KbxInput','KbxLookup','KbxDataGrid','KbxCommandBar','KbxExcelImport','KbxWmsMobilePage','KbxApplicationShell']) expect(catalogued.has(name),name).toBe(true)
|
|
})
|
|
})
|