<?php

namespace Tests\Unit\Services\Keywords;

use App\Services\Keywords\ProductKeywordParser;
use Tests\TestCase;

class ProductKeywordParserTest extends TestCase
{
    public function test_it_parses_grouped_and_flat_keyword_fields(): void
    {
        $parser = new ProductKeywordParser;

        $grouped = $parser->parse([
            'primary' => 'Mens FLX Tee',
            'related' => ['Soft Wander Tee', 'luxury mens tee'],
        ]);

        $this->assertSame('mens flx tee', $grouped['primary']);
        $this->assertSame(['soft wander tee', 'luxury mens tee'], $grouped['related']);

        $flat = $parser->parse(null, 'Office Chair', ['Ergonomic Chair']);

        $this->assertSame('office chair', $flat['primary']);
        $this->assertSame(['ergonomic chair'], $flat['related']);
    }

    public function test_it_collects_unique_seeds_from_candidates(): void
    {
        $seeds = (new ProductKeywordParser)->seedsFromCandidates([
            [
                'product_keywords' => [
                    'primary' => 'mens flx tee',
                    'related' => ['soft wander tee'],
                ],
            ],
            [
                'keyword_primary' => 'adidas court shoes',
                'keyword_related' => ['womens sneakers'],
            ],
        ]);

        $this->assertSame([
            'mens flx tee',
            'soft wander tee',
            'adidas court shoes',
            'womens sneakers',
        ], $seeds);
    }
}
