actingAs(User::factory()->create()) ->post(route('locations.store'), [ 'name' => 'Test Location', ]) ->assertStatus(403) ->assertForbidden(); } public function testUserCanEditLocations() { $location = Location::factory()->create(['name' => 'Test Location']); $this->assertTrue(Location::where('name', 'Test Location')->exists()); $response = $this->actingAs(User::factory()->superuser()->create()) ->put(route('locations.update', ['location' => $location]), [ 'name' => 'Test Location Edited', ]) ->assertStatus(302) ->assertSessionHasNoErrors() ->assertRedirect(route('locations.index')); $this->followRedirects($response)->assertSee('Success'); $this->assertTrue(Location::where('name', 'Test Location Edited')->exists()); } public function testUserCannotEditLocationsToMakeThemTheirOwnParent() { $location = Location::factory()->create(); $response = $this->actingAs(User::factory()->superuser()->create()) ->from(route('locations.edit', ['location' => $location->id])) ->put(route('locations.update', ['location' => $location]), [ 'name' => 'Test Location', 'parent_id' => $location->id, ]) ->assertRedirect(route('locations.edit', ['location' => $location])); $this->followRedirects($response)->assertSee(trans('general.error')); $this->assertFalse(Location::where('name', 'Test Location')->exists()); } }