create([ 'email' => fake()->unique()->safeEmail(), 'password' => Hash::make('password'), ]); $user = User::factory()->create([ 'planner_id' => $planner->id, 'name' => 'Test User', ]); $dish = Dish::factory()->create([ 'planner_id' => $planner->id, 'name' => 'Test Dish', ]); $dish->users()->attach($user); return [$planner, $user]; } it('can generate a schedule with a user and dish', function () { [$planner] = makeScheduleFixture(); loginAs($planner, '/schedule') ->assertSee('Test User') ->click('button[wire\:click="generate"]') ->assertSee('Test Dish'); }); it('shows the generated dish on the calendar', function () { [$planner] = makeScheduleFixture(); loginAs($planner, '/schedule') ->click('button[wire\:click="generate"]') ->assertSee('Test Dish'); }); it('can clear the month schedule', function () { [$planner] = makeScheduleFixture(); loginAs($planner, '/schedule') ->click('button[wire\:click="generate"]') ->assertSee('Test Dish') ->click('button[wire\:click="clearMonth"]') ->assertSee('No dishes scheduled'); }); it('selects all users by default', function () { [$planner, $user] = makeScheduleFixture(); loginAs($planner, '/schedule') ->assertSee('Test User') ->assertChecked('input[value="'.$user->id.'"]'); });