Implement academy analytics, billing, and web stories updates

This commit is contained in:
2026-05-26 07:27:29 +02:00
parent 456c3d6bb0
commit 0b33a1b074
177 changed files with 27360 additions and 2685 deletions

View File

@@ -15,6 +15,7 @@ uses(RefreshDatabase::class);
it('renders JSON-LD structured data on published artwork page', function () {
$user = User::factory()->create(['name' => 'Schema Author']);
$licenseUrl = route('terms-of-service');
$contentType = ContentType::create([
'name' => 'Photography',
@@ -65,11 +66,15 @@ it('renders JSON-LD structured data on published artwork page', function () {
)->toArray()['json_ld'], JSON_UNESCAPED_SLASHES))
->toContain('"@type":"ImageObject"')
->toContain('"name":"Schema Ready Artwork"')
->toContain('"license":"' . $licenseUrl . '"')
->toContain('"acquireLicensePage":"' . $licenseUrl . '"')
->toContain('"copyrightNotice":"Schema Author"')
->toContain('"keywords":["neon","city"]');
});
it('builds artwork seo data with breadcrumb and image-license metadata', function () {
$user = User::factory()->create(['name' => 'Schema Breadcrumb Author']);
$licenseUrl = route('terms-of-service');
$contentType = ContentType::create([
'name' => 'Photography',
@@ -131,6 +136,8 @@ it('builds artwork seo data with breadcrumb and image-license metadata', functio
->toContain('"@type":"ImageObject"')
->toContain('"creditText":"Schema Breadcrumb Author"')
->toContain('"license":"https://skinbase.org/licenses/custom-license"')
->toContain('"acquireLicensePage":"' . $licenseUrl . '"')
->toContain('"copyrightNotice":"Schema Breadcrumb Author"')
->toContain('"@type":"BreadcrumbList"')
->toContain('"name":"Photography"')
->toContain('"name":"Forest"');