mirror of
https://github.com/archtechx/laravel-seo.git
synced 2025-12-12 09:54:03 +00:00
Update tests
This commit is contained in:
parent
f633d23755
commit
c1ea60d08a
2 changed files with 77 additions and 77 deletions
77
tests/Pest/PreviewLinksTest.php
Normal file
77
tests/Pest/PreviewLinksTest.php
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
beforeEach(fn () => config(['services.previewlinks.key' => 'abc']));
|
||||||
|
|
||||||
|
test('previewlink templates can be set', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
expect(seo()->meta('previewlink.templates'))
|
||||||
|
->toHaveCount(1)
|
||||||
|
->toHaveKey('blog', '1');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('previewlink makes a request to the template not the alias', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
expect(seo()->previewlink('blog'))
|
||||||
|
->toContain('previewlinks.io/generate/templates/1');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('previewlink templates can be given data', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
expect(seo()->previewlink('blog', ['title' => 'abc', 'previewlinks:excerpt' => 'def']))
|
||||||
|
->toContain('previewlinks.io/generate/templates/1')
|
||||||
|
->toContain(base64_encode(json_encode(['previewlinks:title' => 'abc', 'previewlinks:excerpt' => 'def'])));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('the previewlink method returns a link to a signed url', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
expect(seo()->previewlink('blog', ['title' => 'abc']))
|
||||||
|
->toContain('?signature=' . hash_hmac('sha256', base64_encode(json_encode(['previewlinks:title' => 'abc'])), config('services.previewlinks.key')));
|
||||||
|
});
|
||||||
|
|
||||||
|
test("previewlink templates use default data when they're not passed any data explicitly", function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
seo()->title('foo')->description('bar');
|
||||||
|
|
||||||
|
expect(seo()->previewlink('blog'))
|
||||||
|
->toContain('previewlinks.io/generate/templates/1')
|
||||||
|
->toContain(base64_encode(json_encode(['previewlinks:title' => 'foo', 'previewlinks:description' => 'bar'])));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('previewlink images are used as the cover images', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
seo()->title('foo')->description('bar');
|
||||||
|
|
||||||
|
expect(seo()->previewlink('blog'))
|
||||||
|
->toBe(seo('image'));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('the blade directive can be used with previewlinks', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
seo()->title('foo')->description('bar');
|
||||||
|
|
||||||
|
expect(blade("@seo('previewlink', 'blog')"))->toBe(seo()->previewlink('blog'));
|
||||||
|
expect(blade("@seo('previewlink', 'blog', ['title' => 'abc'])"))->toBe(seo()->previewlink('blog', ['title' => 'abc']));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('previewlink uses the raw title and description', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
|
||||||
|
seo()->title(modify: fn (string $title) => $title . ' - modified');
|
||||||
|
seo()->title('foo')->description('bar');
|
||||||
|
|
||||||
|
expect(seo()->previewlink('blog'))
|
||||||
|
->toContain('previewlinks.io/generate/templates/1')
|
||||||
|
->toContain(base64_encode(json_encode(['previewlinks:title' => 'foo', 'previewlinks:description' => 'bar'])));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('the @seo helper can be used for setting a previewlinks image', function () {
|
||||||
|
seo()->previewlink('blog', 1);
|
||||||
|
blade("@seo(['previewlink' => ['blog', ['title' => 'abc', 'excerpt' => 'def']]])");
|
||||||
|
|
||||||
|
expect(seo('image'))->toContain('previewlinks.io/generate/templates/1');
|
||||||
|
});
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
beforeEach(fn () => config(['services.previewify.key' => 'abc']));
|
|
||||||
|
|
||||||
test('previewify templates can be set', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
expect(seo()->meta('previewify.templates'))
|
|
||||||
->toHaveCount(1)
|
|
||||||
->toHaveKey('blog', '1');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('previewify makes a request to the template not the alias', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
expect(seo()->previewify('blog'))
|
|
||||||
->toContain('previewify.app/generate/templates/1');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('previewify templates can be given data', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
expect(seo()->previewify('blog', ['title' => 'abc', 'previewify:excerpt' => 'def']))
|
|
||||||
->toContain('previewify.app/generate/templates/1')
|
|
||||||
->toContain(base64_encode(json_encode(['previewify:title' => 'abc', 'previewify:excerpt' => 'def'])));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('the previewify method returns a link to a signed url', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
expect(seo()->previewify('blog', ['title' => 'abc']))
|
|
||||||
->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 () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
seo()->title('foo')->description('bar');
|
|
||||||
|
|
||||||
expect(seo()->previewify('blog'))
|
|
||||||
->toContain('previewify.app/generate/templates/1')
|
|
||||||
->toContain(base64_encode(json_encode(['previewify:title' => 'foo', 'previewify:description' => 'bar'])));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('previewify images are used as the cover images', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
seo()->title('foo')->description('bar');
|
|
||||||
|
|
||||||
expect(seo()->previewify('blog'))
|
|
||||||
->toBe(seo('image'));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('the blade directive can be used with previewify', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
seo()->title('foo')->description('bar');
|
|
||||||
|
|
||||||
expect(blade("@seo('previewify', 'blog')"))->toBe(seo()->previewify('blog'));
|
|
||||||
expect(blade("@seo('previewify', 'blog', ['title' => 'abc'])"))->toBe(seo()->previewify('blog', ['title' => 'abc']));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('previewify uses the raw title and description', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
|
|
||||||
seo()->title(modify: fn (string $title) => $title . ' - modified');
|
|
||||||
seo()->title('foo')->description('bar');
|
|
||||||
|
|
||||||
expect(seo()->previewify('blog'))
|
|
||||||
->toContain('previewify.app/generate/templates/1')
|
|
||||||
->toContain(base64_encode(json_encode(['previewify:title' => 'foo', 'previewify:description' => 'bar'])));
|
|
||||||
});
|
|
||||||
|
|
||||||
test('the @seo helper can be used for setting a previewify image', function () {
|
|
||||||
seo()->previewify('blog', 1);
|
|
||||||
blade("@seo(['previewify' => ['blog', ['title' => 'abc', 'excerpt' => 'def']]])");
|
|
||||||
|
|
||||||
expect(seo('image'))->toContain('previewify.app/generate/templates/1');
|
|
||||||
});
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue