Guard Soma wrapper export contract

active-uix
dev 5 months ago
parent 959ad3b1f9
commit 8baa422974

@ -91,6 +91,11 @@ Actualizacion 2026-05-16:
`$libs/datagrid`.
- Guardia nueva en `src/uix/contracts.test.ts`: ningun barrel publico de Soma
puede exportar desde `*provider.svelte` ni desde `$libs/*`.
- Guardia nueva adicional: cada `Provider` publico debe salir de
`components/{component}.svelte`; no se permiten nombres especiales para el
wrapper raiz.
- Documentacion corregida: `AlertDialog` ya importa `createForm` desde
`$libs/forms`, no desde `$soma/components/form`.
Actualizacion 2026-05-15:

@ -315,6 +315,18 @@ describe('UIX layer contracts', () => {
expect(missingExports).toEqual([]);
});
it('guards Soma Provider exports use the canonical root wrapper filename', () => {
const violations = collectPublicSomaComponentDirs()
.filter((dir) => {
const source = readFileSync(join(HERE, 'soma', 'components', dir, 'exports.ts'), 'utf8');
const expected = `export { default as Provider } from './components/${dir}.svelte';`;
return !source.includes(expected);
})
.map((dir) => `${dir}/exports.ts`);
expect(violations).toEqual([]);
});
it('guards Soma public barrels from provider implementation filenames', () => {
const violations = collectPublicSomaComponentDirs()
.map((dir) => join(HERE, 'soma', 'components', dir, 'exports.ts'))

Loading…
Cancel
Save

Powered by TurnKey Linux.