Latihan 1 dari materi Learning Tests & Boundaries di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Learning test: kamu menulis test untuk mempelajari behavior library pihak ketiga. Di sini stripe adalah stub — tiru dokumentasinya dengan assertion.
Stub yang tersedia:
stripe.format(cents) — format integer cents menjadi string USD "$X.YY". Contoh 1234 → "$12.34", 50 → "$0.50", 100000 → "$1000.00".stripe.parse(str) — kebalikan dari format. Mengembalikan integer cents. Contoh "$12.34" → 1234.Tugasmu: lengkapi fungsi learningTests() sehingga mengembalikan array berisi hasil assert(actual, expected, label) untuk 4 skenario di bawah. Fungsi assert sudah disediakan — panggil saja dengan nilai yang kamu yakini benar.
Skenario yang harus ditest (urut & label sama persis):
assert(stripe.format(1234), "$12.34", "format 1234")assert(stripe.format(50), "$0.50", "format 50 padding")assert(stripe.parse("$12.34"), 1234, "parse $12.34")assert(stripe.format(stripe.parse("$7.89")), "$7.89", "round-trip $7.89")Push tiap hasil assert ke results. Semua harus lulus (pass: true).
Cetak (urut):
results.lengthresults.every(r => r.pass)results[0].labelresults[1].actualresults[2].expectedresults[3].label