'Text content']) ); $result = $renderer->render($block); expect($result)->toHaveKeys(['component', 'data']); expect($result['component'])->toBe('cms/text'); expect($result['data']['content'])->toBe('Text content'); }); it('renders text block with alignment', function () { $renderer = new TextBlockRenderer(); $block = ContentBlock::create( type: BlockType::text(), blockId: BlockId::fromString('text-1'), data: BlockData::fromArray([ 'content' => 'Text content', 'alignment' => 'center', ]) ); $result = $renderer->render($block); expect($result['data']['content'])->toBe('Text content'); expect($result['data']['alignment'])->toBe('center'); }); it('renders text block with maxWidth setting', function () { $renderer = new TextBlockRenderer(); $block = ContentBlock::create( type: BlockType::text(), blockId: BlockId::fromString('text-1'), data: BlockData::fromArray(['content' => 'Text content']), settings: BlockSettings::fromArray(['maxWidth' => 800]) ); $result = $renderer->render($block); expect($result['data']['maxWidth'])->toBe(800); }); it('handles snake_case maxWidth setting', function () { $renderer = new TextBlockRenderer(); $block = ContentBlock::create( type: BlockType::text(), blockId: BlockId::fromString('text-1'), data: BlockData::fromArray(['content' => 'Text content']), settings: BlockSettings::fromArray(['max_width' => 800]) ); $result = $renderer->render($block); expect($result['data']['maxWidth'])->toBe(800); }); it('provides default values for missing fields', function () { $renderer = new TextBlockRenderer(); $block = ContentBlock::create( type: BlockType::text(), blockId: BlockId::fromString('text-1'), data: BlockData::fromArray(['content' => 'Text content']) ); $result = $renderer->render($block); expect($result['data']['content'])->toBe('Text content'); expect($result['data']['alignment'])->toBe('left'); expect($result['data']['maxWidth'])->toBeNull(); }); it('supports text block type', function () { $renderer = new TextBlockRenderer(); expect($renderer->supports('text'))->toBeTrue(); expect($renderer->supports('hero'))->toBeFalse(); expect($renderer->supports('image'))->toBeFalse(); }); });