user = User::factory()->create(); $this->coa = Coa::factory()->create(); } /** @test */ public function test_can_list_all_kas_masuk() { KasMasuk::factory()->count(3)->create(['user_id' => $this->user->id, 'coa_id' => $this->coa->id]); $response = $this->actingAs($this->user)->getJson('/api/kas-masuk'); $response->assertStatus(200) ->assertJsonCount(3); } /** @test */ public function test_can_create_a_kas_masuk_entry() { $data = [ 'tanggal' => now()->toDateString(), 'deskripsi' => 'Pemasukan dari pelanggan', 'jumlah' => 1000000, 'coa_id' => $this->coa->id, ]; $response = $this->actingAs($this->user)->postJson('/api/kas-masuk', $data); $response->assertStatus(201) ->assertJsonFragment(['deskripsi' => 'Pemasukan dari pelanggan']); $this->assertDatabaseHas('kas_masuks', $data); } /** @test */ public function test_can_get_a_specific_kas_masuk_entry() { $kasMasuk = KasMasuk::factory()->create(['user_id' => $this->user->id, 'coa_id' => $this->coa->id]); $response = $this->actingAs($this->user)->getJson("/api/kas-masuk/{$kasMasuk->id}"); $response->assertStatus(200) ->assertJsonFragment(['deskripsi' => $kasMasuk->deskripsi]); } /** @test */ public function test_can_update_a_kas_masuk_entry() { $kasMasuk = KasMasuk::factory()->create(['user_id' => $this->user->id, 'coa_id' => $this->coa->id]); $updateData = [ 'deskripsi' => 'Pemasukan dari investasi', 'jumlah' => 2000000, 'coa_id' => $this->coa->id, ]; $response = $this->actingAs($this->user)->putJson("/api/kas-masuk/{$kasMasuk->id}", $updateData); $response->assertStatus(200) ->assertJsonFragment(['deskripsi' => 'Pemasukan dari investasi']); $this->assertDatabaseHas('kas_masuks', $updateData); } /** @test */ public function test_can_delete_a_kas_masuk_entry() { $kasMasuk = KasMasuk::factory()->create(['user_id' => $this->user->id, 'coa_id' => $this->coa->id]); $response = $this->actingAs($this->user)->deleteJson("/api/kas-masuk/{$kasMasuk->id}"); $response->assertStatus(200); $this->assertDatabaseMissing('kas_masuks', ['id' => $kasMasuk->id]); } }