import assert from 'node:assert/strict';
import {readFile} from 'node:fs/promises';

const catalog = await readFile(
    new URL('../../templates/shop/_catalog.html.twig', import.meta.url),
    'utf8',
);
const informationBlockCalls = [
    ...catalog.matchAll(/component\('shop:InformationBlocks',\s*\{[\s\S]*?\}\)\s*\}\}/gu),
];

assert.ok(
    informationBlockCalls.length >= 3,
    'Le catalogue doit rendre les blocs d’informations dans les zones prévues.',
);

for (const [componentCall] of informationBlockCalls) {
    assert.doesNotMatch(
        componentCall,
        /class:\s*[^,\n]*\bhidden\b/u,
        'Un conteneur shop:InformationBlocks ne doit pas être masqué.',
    );
}

console.log('OK — les blocs d’informations du catalogue restent visibles.');
