import anggota
This commit is contained in:
@@ -16,10 +16,10 @@ class ImportTest extends TestCase
|
||||
public function test_member_import_handles_duplicates_and_missing_name(): void
|
||||
{
|
||||
$rows = [
|
||||
['no_pekerja' => 'P001', 'no_kp' => '900101-01-1111', 'nama' => 'Ali'],
|
||||
['no_pekerja' => 'P001', 'no_kp' => '900101-01-2222', 'nama' => 'Ali Duplicate Pekerja'], // dup dalam fail
|
||||
['no_pekerja' => 'P002', 'no_kp' => '', 'nama' => ''], // gagal: nama kosong
|
||||
['no_pekerja' => 'P003', 'no_kp' => '900101-01-3333', 'nama' => 'Siti'],
|
||||
['no_anggota' => 'A001', 'no_kp' => '900101-01-1111', 'nama' => 'Ali'],
|
||||
['no_anggota' => 'A001', 'no_kp' => '900101-01-2222', 'nama' => 'Ali Duplicate Anggota'], // dup dalam fail
|
||||
['no_anggota' => 'A002', 'no_kp' => '', 'nama' => ''], // gagal: nama kosong
|
||||
['no_anggota' => 'A003', 'no_kp' => '900101-01-3333', 'nama' => 'Siti'],
|
||||
];
|
||||
|
||||
$log = (new MemberImportService())->import($rows, 'test.csv');
|
||||
@@ -30,10 +30,31 @@ class ImportTest extends TestCase
|
||||
$this->assertEquals(2, Member::count());
|
||||
}
|
||||
|
||||
public function test_member_import_default_status_aktif(): void
|
||||
public function test_member_import_only_stores_three_fields(): void
|
||||
{
|
||||
(new MemberImportService())->import([['nama' => 'Tiada Status']], 'test.csv');
|
||||
$this->assertTrue(Member::first()->status_aktif);
|
||||
(new MemberImportService())->import([
|
||||
['nama' => 'Ali', 'no_anggota' => 'A001', 'no_kp' => '900101-01-1111', 'no_pekerja' => 'P001', 'jabatan' => 'IT'],
|
||||
], 'test.csv');
|
||||
|
||||
$this->assertDatabaseHas('members', [
|
||||
'nama' => 'Ali',
|
||||
'no_anggota' => 'A001',
|
||||
'no_kp' => '900101-01-1111',
|
||||
'no_pekerja' => null,
|
||||
'jabatan' => null,
|
||||
]);
|
||||
}
|
||||
|
||||
public function test_member_import_wipes_old_members(): void
|
||||
{
|
||||
Member::create(['nama' => 'Anggota Lama', 'no_anggota' => 'OLD1']);
|
||||
Member::create(['nama' => 'Anggota Lama 2', 'no_anggota' => 'OLD2']);
|
||||
|
||||
(new MemberImportService())->import([['nama' => 'Anggota Baru', 'no_anggota' => 'NEW1']], 'baru.csv');
|
||||
|
||||
$this->assertEquals(1, Member::count());
|
||||
$this->assertDatabaseHas('members', ['nama' => 'Anggota Baru']);
|
||||
$this->assertDatabaseMissing('members', ['nama' => 'Anggota Lama']);
|
||||
}
|
||||
|
||||
public function test_prize_import_expands_quantity(): void
|
||||
|
||||
Reference in New Issue
Block a user