chore: commit remaining workspace changes
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Models\AcademyCourse;
|
||||
use App\Models\AcademyCourseLesson;
|
||||
use App\Models\AcademyCourseSection;
|
||||
use App\Models\AcademyLesson;
|
||||
|
||||
it('syncs the foundations course idempotently and skips missing lessons', function (): void {
|
||||
AcademyLesson::query()->create([
|
||||
'title' => 'What Is AI-Assisted Digital Art',
|
||||
'slug' => 'what-is-ai-assisted-digital-art',
|
||||
'content' => 'Intro lesson body',
|
||||
'difficulty' => 'beginner',
|
||||
'access_level' => 'free',
|
||||
'lesson_type' => 'article',
|
||||
'active' => true,
|
||||
'published_at' => now()->subMinute(),
|
||||
]);
|
||||
|
||||
AcademyLesson::query()->create([
|
||||
'title' => 'Prompting Basics For Skinbase Creators',
|
||||
'slug' => 'prompting-basics-for-skinbase-creators',
|
||||
'content' => 'Prompt basics body',
|
||||
'difficulty' => 'beginner',
|
||||
'access_level' => 'free',
|
||||
'lesson_type' => 'article',
|
||||
'active' => true,
|
||||
'published_at' => now()->subMinute(),
|
||||
]);
|
||||
|
||||
$this->artisan('academy:courses:sync-foundations')
|
||||
->expectsOutputToContain('Skipped missing lesson [ai-ethics-and-skinbase-upload-rules].')
|
||||
->expectsOutput('AI-Assisted Digital Art Foundations course synced.')
|
||||
->assertSuccessful();
|
||||
|
||||
$course = AcademyCourse::query()->where('slug', 'ai-assisted-digital-art-foundations')->first();
|
||||
|
||||
expect($course)->not->toBeNull()
|
||||
->and($course?->status)->toBe('published')
|
||||
->and($course?->is_featured)->toBeTrue();
|
||||
|
||||
expect(AcademyCourseSection::query()->where('course_id', $course->id)->count())->toBe(4);
|
||||
expect(AcademyCourseLesson::query()->where('course_id', $course->id)->count())->toBe(2);
|
||||
expect($course->fresh()->lessons_count_cache)->toBe(2);
|
||||
|
||||
$this->artisan('academy:courses:sync-foundations')->assertSuccessful();
|
||||
|
||||
expect(AcademyCourse::query()->where('slug', 'ai-assisted-digital-art-foundations')->count())->toBe(1);
|
||||
expect(AcademyCourseSection::query()->where('course_id', $course->id)->count())->toBe(4);
|
||||
expect(AcademyCourseLesson::query()->where('course_id', $course->id)->count())->toBe(2);
|
||||
});
|
||||
Reference in New Issue
Block a user