|
|
|
|
@ -489,6 +489,19 @@ describe('UIX layer contracts', () => {
|
|
|
|
|
expect(() => new EngineSemantic({ visual: false })).not.toThrow();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('guards Sema production code from direct global listeners and console output', () => {
|
|
|
|
|
const violations = listSourceFiles(join(HERE, 'sema'))
|
|
|
|
|
.filter((file) => {
|
|
|
|
|
const source = stripComments(readFileSync(file, 'utf8'));
|
|
|
|
|
return /(?:document|window)\.(?:addEventListener|removeEventListener)\(|console\./.test(
|
|
|
|
|
source
|
|
|
|
|
);
|
|
|
|
|
})
|
|
|
|
|
.map((file) => file.replace(REPO_ROOT, ''));
|
|
|
|
|
|
|
|
|
|
expect(violations).toEqual([]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('ActiveEidos is the visual runtime and does not recreate an engine layer', () => {
|
|
|
|
|
expect(UIX_LAYER_CONTRACTS.activeEidos.publicRuntime).toBe('ActiveEidos');
|
|
|
|
|
expect(existsSync(new URL('./eidos/engine', import.meta.url))).toBe(false);
|
|
|
|
|
|