<?php

namespace Tests\Unit;

use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Illuminate\Support\Collection;

use App\Models\ContentElement;

trait ContentElementRenderTestTrait
{
    abstract protected function getModel();

    public function test_a_content_element_can_render_its_view(): void
    {
        $content_element = $this->getModel()->contentElement;
        $page = $content_element->pages->first();

        $this->assertInstanceOf(ContentElement::class, $content_element);

        $view = $content_element->renderView($page, $page->content, true, true, 1);
        $this->assertNotNull($view);

        foreach ($content_element->content->search_fields as $field) {
            $this->assertTrue(Str::contains($view, $content_element->content->{$field}));
        }
    }
}
