33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
|
|
use App\Support\Seo\SeoDataBuilder;
|
|
use Tests\TestCase;
|
|
|
|
uses(TestCase::class);
|
|
|
|
it('normalizes a single associative structured data schema', function () {
|
|
$seo = SeoDataBuilder::fromArray([
|
|
'title' => 'Categories',
|
|
'structured_data' => [
|
|
'@context' => 'https://schema.org',
|
|
'@type' => 'CollectionPage',
|
|
'name' => 'Categories',
|
|
],
|
|
])->build()->toArray();
|
|
|
|
expect($seo['json_ld'] ?? [])
|
|
->toHaveCount(1)
|
|
->and($seo['json_ld'][0]['@type'] ?? null)->toBe('CollectionPage');
|
|
});
|
|
|
|
it('normalizes JSON string structured data schemas', function () {
|
|
$seo = SeoDataBuilder::fromArray([
|
|
'title' => 'Categories',
|
|
'structured_data' => '{"@context":"https://schema.org","@type":"CollectionPage","name":"Categories"}',
|
|
])->build()->toArray();
|
|
|
|
expect($seo['json_ld'] ?? [])
|
|
->toHaveCount(1)
|
|
->and($seo['json_ld'][0]['@context'] ?? null)->toBe('https://schema.org')
|
|
->and($seo['json_ld'][0]['@type'] ?? null)->toBe('CollectionPage');
|
|
}); |