'value']) ); $result = $renderer->render($block); expect($result)->toHaveKeys(['component', 'data']); expect($result['component'])->toBe('cms/block'); expect($result['data']['blockType'])->toBe('custom-block'); expect($result['data']['blockId'])->toBe('custom-1'); expect($result['data']['data'])->toBe(['key' => 'value']); }); it('renders block with settings', function () { $renderer = new DefaultBlockRenderer(); $block = ContentBlock::create( type: BlockType::fromString('custom-block'), blockId: BlockId::fromString('custom-1'), data: BlockData::fromArray(['key' => 'value']), settings: BlockSettings::fromArray(['setting' => 'value']) ); $result = $renderer->render($block); expect($result['data']['settings'])->toBe(['setting' => 'value']); }); it('renders block without settings', function () { $renderer = new DefaultBlockRenderer(); $block = ContentBlock::create( type: BlockType::fromString('custom-block'), blockId: BlockId::fromString('custom-1'), data: BlockData::fromArray(['key' => 'value']) ); $result = $renderer->render($block); expect($result['data']['settings'])->toBe([]); }); it('supports all block types', function () { $renderer = new DefaultBlockRenderer(); expect($renderer->supports('hero'))->toBeTrue(); expect($renderer->supports('text'))->toBeTrue(); expect($renderer->supports('custom-block'))->toBeTrue(); expect($renderer->supports('any-type'))->toBeTrue(); }); });