user = User::factory()->create(); // ✅ Create test user } public function test_can_get_all_coas() { Coa::factory()->count(3)->create(); $response = $this->actingAs($this->user)->getJson('/api/coas'); // ✅ Authenticate request $response->assertStatus(200) ->assertJsonCount(3); } public function test_can_create_coa() { $coaData = [ 'code' => '105', 'name' => 'Bank BRI' ]; $response = $this->actingAs($this->user)->postJson('/api/coas', $coaData); $response->assertStatus(201) ->assertJson($coaData); $this->assertDatabaseHas('coas', $coaData); } public function test_can_get_single_coa() { $coa = Coa::factory()->create(); $response = $this->actingAs($this->user)->getJson("/api/coas/{$coa->id}"); $response->assertStatus(200) ->assertJson([ 'id' => $coa->id, 'code' => $coa->code, 'name' => $coa->name ]); } public function test_can_update_coa() { $coa = Coa::factory()->create(); $updatedData = [ 'code' => '106', 'name' => 'Bank Permata' ]; $response = $this->actingAs($this->user)->putJson("/api/coas/{$coa->id}", $updatedData); $response->assertStatus(200) ->assertJson($updatedData); $this->assertDatabaseHas('coas', $updatedData); } public function test_can_delete_coa() { $coa = Coa::factory()->create(); $response = $this->actingAs($this->user)->deleteJson("/api/coas/{$coa->id}"); $response->assertStatus(200) ->assertJson(['message' => 'Akun bank berhasil dihapus']); $this->assertDatabaseMissing('coas', ['id' => $coa->id]); } }