1
0
Fork 0
mirror of https://github.com/archtechx/laravel-seo.git synced 2025-12-12 09:54:03 +00:00

fix: previewify needs prefix to work correctly

This commit is contained in:
tpetry 2022-06-24 15:46:58 +02:00
parent cf8ec8d3ae
commit 987280a9ea
3 changed files with 11 additions and 11 deletions

View file

@ -235,7 +235,7 @@ seo()->previewify('page', 83);
After that, you can use the templates by calling `seo()->previewify()` like this: After that, you can use the templates by calling `seo()->previewify()` like this:
```php ```php
seo()->previewify('blog', ['title' => 'Foo', 'content' => 'bar'])` seo()->previewify('blog', ['previewify:title' => 'Foo', 'previewify:content' => 'bar'])`
``` ```
The call will set the generated image as the OpenGraph and Twitter card images. The generated URLs are signed. The call will set the generated image as the OpenGraph and Twitter card images. The generated URLs are signed.

View file

@ -192,8 +192,8 @@ class SEOManager
if ($data === null) { if ($data === null) {
$data = [ $data = [
'title' => $this->raw('title'), 'previewify:title' => $this->raw('title'),
'description' => $this->raw('description'), 'previewify:description' => $this->raw('description'),
]; ];
} }

View file

@ -18,16 +18,16 @@ test('previewify makes a request to the template not the alias', function () {
test('previewify templates can be given data', function () { test('previewify templates can be given data', function () {
seo()->previewify('blog', 1); seo()->previewify('blog', 1);
expect(seo()->previewify('blog', ['title' => 'abc', 'excerpt' => 'def'])) expect(seo()->previewify('blog', ['previewify:title' => 'abc', 'previewify:excerpt' => 'def']))
->toContain('previewify.app/generate/templates/1') ->toContain('previewify.app/generate/templates/1')
->toContain(base64_encode(json_encode(['title' => 'abc', 'excerpt' => 'def']))); ->toContain(base64_encode(json_encode(['previewify:title' => 'abc', 'previewify:excerpt' => 'def'])));
}); });
test('the previewify method returns a link to a signed url', function () { test('the previewify method returns a link to a signed url', function () {
seo()->previewify('blog', 1); seo()->previewify('blog', 1);
expect(seo()->previewify('blog', ['title' => 'abc'])) expect(seo()->previewify('blog', ['previewify:title' => 'abc']))
->toContain('?signature=' . hash_hmac('sha256', base64_encode(json_encode(['title' => 'abc'])), config('services.previewify.key'))); ->toContain('?signature=' . hash_hmac('sha256', base64_encode(json_encode(['previewify:title' => 'abc'])), config('services.previewify.key')));
}); });
test("previewify templates use default data when they're not passed any data explicitly", function () { test("previewify templates use default data when they're not passed any data explicitly", function () {
@ -37,7 +37,7 @@ test("previewify templates use default data when they're not passed any data exp
expect(seo()->previewify('blog')) expect(seo()->previewify('blog'))
->toContain('previewify.app/generate/templates/1') ->toContain('previewify.app/generate/templates/1')
->toContain(base64_encode(json_encode(['title' => 'foo', 'description' => 'bar']))); ->toContain(base64_encode(json_encode(['previewify:title' => 'foo', 'previewify:description' => 'bar'])));
}); });
test('previewify images are used as the cover images', function () { test('previewify images are used as the cover images', function () {
@ -55,7 +55,7 @@ test('the blade directive can be used with previewify', function () {
seo()->title('foo')->description('bar'); seo()->title('foo')->description('bar');
expect(blade("@seo('previewify', 'blog')"))->toBe(seo()->previewify('blog')); expect(blade("@seo('previewify', 'blog')"))->toBe(seo()->previewify('blog'));
expect(blade("@seo('previewify', 'blog', ['title' => 'abc'])"))->toBe(seo()->previewify('blog', ['title' => 'abc'])); expect(blade("@seo('previewify', 'blog', ['previewify:title' => 'abc'])"))->toBe(seo()->previewify('blog', ['previewify:title' => 'abc']));
}); });
test('previewify uses the raw title and description', function () { test('previewify uses the raw title and description', function () {
@ -66,12 +66,12 @@ test('previewify uses the raw title and description', function () {
expect(seo()->previewify('blog')) expect(seo()->previewify('blog'))
->toContain('previewify.app/generate/templates/1') ->toContain('previewify.app/generate/templates/1')
->toContain(base64_encode(json_encode(['title' => 'foo', 'description' => 'bar']))); ->toContain(base64_encode(json_encode(['previewify:title' => 'foo', 'previewify:description' => 'bar'])));
}); });
test('the @seo helper can be used for setting a previewify image', function () { test('the @seo helper can be used for setting a previewify image', function () {
seo()->previewify('blog', 1); seo()->previewify('blog', 1);
blade("@seo(['previewify' => ['blog', ['title' => 'abc', 'excerpt' => 'def']]])"); blade("@seo(['previewify' => ['blog', ['previewify:title' => 'abc', 'previewify:excerpt' => 'def']]])");
expect(seo('image'))->toContain('previewify.app/generate/templates/1'); expect(seo('image'))->toContain('previewify.app/generate/templates/1');
}); });