78 lines
2.0 KiB
PHP
78 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit;
|
|
|
|
|
|
use App\Models\KasMasuk;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Tests\TestCase;
|
|
|
|
class KasMasukTest extends TestCase
|
|
{
|
|
use RefreshDatabase; // Menggunakan database testing
|
|
|
|
/** @test */
|
|
public function it_can_list_all_kas_masuk()
|
|
{
|
|
KasMasuk::factory()->count(3)->create();
|
|
|
|
$response = $this->getJson('/api/kas-masuk');
|
|
|
|
$response->assertStatus(200)
|
|
->assertJsonCount(3);
|
|
}
|
|
|
|
/** @test */
|
|
public function it_can_create_a_kas_masuk_entry()
|
|
{
|
|
$data = [
|
|
'tanggal' => now()->toDateString(),
|
|
'deskripsi' => 'Pemasukan dari pelanggan',
|
|
'jumlah' => 1000000,
|
|
];
|
|
|
|
$response = $this->postJson('/api/kas-masuk', $data);
|
|
|
|
$response->assertStatus(201)
|
|
->assertJsonFragment(['deskripsi' => 'Pemasukan dari pelanggan']);
|
|
}
|
|
|
|
/** @test */
|
|
public function it_can_get_a_specific_kas_masuk_entry()
|
|
{
|
|
$kasMasuk = KasMasuk::factory()->create();
|
|
|
|
$response = $this->getJson("/api/kas-masuk/{$kasMasuk->id}");
|
|
|
|
$response->assertStatus(200)
|
|
->assertJsonFragment(['deskripsi' => $kasMasuk->deskripsi]);
|
|
}
|
|
|
|
/** @test */
|
|
public function it_can_update_a_kas_masuk_entry()
|
|
{
|
|
$kasMasuk = KasMasuk::factory()->create();
|
|
|
|
$updateData = [
|
|
'deskripsi' => 'Pemasukan dari investasi',
|
|
'jumlah' => 2000000
|
|
];
|
|
|
|
$response = $this->putJson("/api/kas-masuk/{$kasMasuk->id}", $updateData);
|
|
|
|
$response->assertStatus(200)
|
|
->assertJsonFragment(['deskripsi' => 'Pemasukan dari investasi']);
|
|
}
|
|
|
|
/** @test */
|
|
public function it_can_delete_a_kas_masuk_entry()
|
|
{
|
|
$kasMasuk = KasMasuk::factory()->create();
|
|
|
|
$response = $this->deleteJson("/api/kas-masuk/{$kasMasuk->id}");
|
|
|
|
$response->assertStatus(200);
|
|
$this->assertDatabaseMissing('kas_masuks', ['id' => $kasMasuk->id]);
|
|
}
|
|
}
|