createOne(); $route = route('bo.settings.edit'); // WHEN $response = $this->actingAs($user, 'backend')->get($route); // THEN $response->assertForbidden(); // $response->assertOk() // ->assertViewIs('bo.settings.edit') // ->assertViewHas('setting'); }); it('updates employee sites with array input and redirects', function (): void { /** @var \Tests\TestCase $this */ // GIVEN $user = User::factory()->createOne(); $route = route('bo.settings.update'); $formData = [ 'employee_sites' => ['PA', 'LY', 'NA'], ]; // WHEN $response = $this->actingAs($user, 'backend')->put($route, $formData); // THEN $response->assertForbidden(); // $response->assertRedirect(route('bo.settings.edit')) // ->assertSessionHas('success'); // $setting = Setting::getSingleton(); // expect($setting->employee_sites)->toBe(['PA', 'LY', 'NA']); }); it('updates employee sites with comma string input and redirects', function (): void { /** @var \Tests\TestCase $this */ // GIVEN $user = User::factory()->createOne(); $route = route('bo.settings.update'); $formData = [ 'employee_sites' => 'PA, LY, NA', ]; // WHEN $response = $this->actingAs($user, 'backend')->put($route, $formData); // THEN $response->assertForbidden(); // $response->assertRedirect(route('bo.settings.edit')) // ->assertSessionHas('success'); // $setting = Setting::getSingleton(); // expect($setting->employee_sites)->toBe(['PA', 'LY', 'NA']); }); it('rejects invalid site code formats', function (): void { /** @var \Tests\TestCase $this */ // GIVEN $user = User::factory()->createOne(); $route = route('bo.settings.update'); $formData = [ 'employee_sites' => ['PA', '123', 'INVALID!'], ]; // WHEN $response = $this->actingAs($user, 'backend')->put($route, $formData); // THEN $response->assertSessionHasErrors(['employee_sites.1', 'employee_sites.2']); }); });