<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;

use Tests\Unit\PageLinkTestTrait;

use Illuminate\Support\Str;

use App\Models\CourseDescription;
use App\Models\Course;
use App\Models\ContentElement;

class CourseDescriptionTest extends TestCase
{
    use PageLinkTestTrait;
    use WithFaker;

    public function getModel()
    {
        return $this->createContentElement(CourseDescription::factory())->content;
    }

    protected function getLinkFields()
    {
        return [
            'body',
        ];
    }

    public function test_a_course_description_can_be_a_result_for_content_elements_search()
    {
        $course = Course::factory()->create();
        $content_element = $this->createContentElement(CourseDescription::factory(), $course);
        $course_description = $content_element->content;
        //$course_description->header = $this->faker->firstName;
        //$course_description->save();
        $course->publish();
        $this->assertNotNull($course_description->header);

        $terms = explode(' ', Str::substr($course_description->header, 0, 6));

        $results = ContentElement::searchResults(collect($terms)->filter(), collect());

        $this->assertTrue($results->count() > 0);
    }
}
