30 lines
818 B
TypeScript
30 lines
818 B
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import fs from 'node:fs';
|
|
import path from 'node:path';
|
|
|
|
const alphaDir = path.resolve(__dirname, '../../../../apps/website/components/alpha');
|
|
|
|
const metaAllowlist = new Set([
|
|
'FeatureLimitationTooltip.tsx',
|
|
'CompanionInstructions.tsx',
|
|
'CompanionStatus.tsx',
|
|
'AlphaBanner.tsx',
|
|
'AlphaFooter.tsx',
|
|
'AlphaNav.tsx',
|
|
]);
|
|
|
|
describe('Alpha components structure', () => {
|
|
it('contains only alpha chrome and meta components', () => {
|
|
const entries = fs.readdirSync(alphaDir);
|
|
const tsxFiles = entries.filter((file) => file.endsWith('.tsx'));
|
|
|
|
const violations = tsxFiles.filter((file) => {
|
|
if (metaAllowlist.has(file)) {
|
|
return false;
|
|
}
|
|
return !file.startsWith('Alpha');
|
|
});
|
|
|
|
expect(violations).toEqual([]);
|
|
});
|
|
}); |