Skip to content

Perbaikan teknis terkait unit testing Tests\Feature\SuplemenExportTest#1455

Open
pandigresik wants to merge 1 commit intodevfrom
dev-1449
Open

Perbaikan teknis terkait unit testing Tests\Feature\SuplemenExportTest#1455
pandigresik wants to merge 1 commit intodevfrom
dev-1449

Conversation

@pandigresik
Copy link
Contributor

Deskripsi

File yang Diubah

1. app/Models/Penduduk.php

Perubahan Kunci:

  • Dihapus: public $incrementing = false; (baris 41)
  • Dampak: Model kembali menggunakan nilai default Laravel (true) untuk auto-increment

Alasan Perubahan:

  • Mengembalikan model ke kondisi default yang sesuai dengan struktur database
  • Tabel das_penduduk menggunakan $table->increments('id') yang memerlukan auto-increment
  • Menghindari konflik dengan operasi CRUD dan relasi database

2. tests/Feature/SuplemenExportTest.php

Perubahan Signifikan:

  • Dihapus: Hard-coded ID pada pembuatan data Penduduk di test cases
  • Diganti: Menggunakan factory-generated ID otomatis

Detail Perubahan:

// Sebelumnya (branch dev):
$pendudukId = 999999;
Penduduk::create(['id' => $pendudukId, ...]);

// Sekarang (branch dev-1449):
$penduduk = Penduduk::factory()->create([...]);

Alasan Perubahan:

  • Menyesuaikan dengan pengembalian $incrementing = true
  • Menghindari konflik ID yang bisa menyebabkan test failure
  • Menggunakan best practice Laravel untuk testing dengan factory

Dampak dan Implikasi

Positif:

  1. Konsistensi Database: Model sekarang konsisten dengan struktur tabel
  2. Stabilitas Test: Unit test akan lebih reliable dengan ID otomatis
  3. Best Practice: Mengikuti konvensi Laravel untuk auto-increment primary keys

Risiko Termitigasi:

  1. Error Insert: Terhindar dari error saat membuat record baru
  2. Relasi Database: Foreign key relationships akan berfungsi normal
  3. Import Data: Proses import menggunakan updateOrInsert akan berjalan lancar

Kesimpulan

Perubahan ini merupakan perbaikan teknis yang tepat untuk mengatasi masalah yang muncul akibat ketidakcocokan antara konfigurasi model dan struktur database. Pengembalian ke nilai default $incrementing = true adalah keputusan yang benar untuk menjaga stabilitas sistem.

Masalah Terkait (Related Issue)

Langkah untuk mereproduksi (Steps to Reproduce)

Daftar Periksa (Checklist)

Tangkapan Layar (Screenshot)

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant