🔥 **Cleanup:** Removed BookCase and OrangePill models, factories, migrations, and related references. Added tests for new service and meetup creation flows. Updated PHPUnit settings and browser-specific configurations.

This commit is contained in:
BT
2026-05-02 22:00:26 +01:00
parent 63aed880e1
commit 04e3e30fcf
54 changed files with 3440 additions and 298 deletions
+66
View File
@@ -0,0 +1,66 @@
<?php
use App\Models\Course;
use App\Models\Lecturer;
use Livewire\Livewire;
beforeEach(function () {
$this->lecturer = Lecturer::factory()->create();
});
it('creates a Course with valid data', function () {
actingAsUser();
Livewire::test('courses.create')
->set('name', 'Bitcoin 101')
->set('lecturer_id', $this->lecturer->id)
->call('createCourse')
->assertHasNoErrors();
expect(Course::query()->where('name', 'Bitcoin 101')->exists())->toBeTrue();
});
it('rejects course creation without a name', function () {
actingAsUser();
Livewire::test('courses.create')
->set('lecturer_id', $this->lecturer->id)
->call('createCourse')
->assertHasErrors(['name' => 'required']);
});
it('rejects course creation without a lecturer', function () {
actingAsUser();
Livewire::test('courses.create')
->set('name', 'Course Without Lecturer')
->call('createCourse')
->assertHasErrors(['lecturer_id' => 'required']);
});
it('rejects course creation with non-existent lecturer_id', function () {
actingAsUser();
Livewire::test('courses.create')
->set('name', 'Bad Lecturer Course')
->set('lecturer_id', 999999)
->call('createCourse')
->assertHasErrors(['lecturer_id' => 'exists']);
});
it('updates an existing course when authenticated', function () {
$course = Course::factory()->create(['name' => 'Old Name', 'lecturer_id' => $this->lecturer->id]);
actingAsUser();
Livewire::test('courses.edit', ['course' => $course])
->set('name', 'New Name')
->set('lecturer_id', $this->lecturer->id)
->call('updateCourse')
->assertHasNoErrors();
expect($course->refresh()->name)->toBe('New Name');
});
it('redirects guests when accessing course-create', function () {
$this->get('/de/course-create')->assertRedirect(route('login'));
});