Latihan 1 dari materi Validasi Input di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi fungsi validateUser(data) yang memeriksa data pendaftaran user dan mengembalikan { valid, errors }. Kode awal sudah punya array errors, aturan name, return { valid: errors.length === 0, errors };, dan tiga tes di bawahnya. Biarkan semuanya.
Aturannya, dengan pesan error yang persis seperti ini:
name wajib ada dan string, kalau gak: name wajib diisi (sudah ada di kode awal).
email wajib ada dan mengandung @, kalau gak: email harus valid. Cek dengan data.email.includes("@").
age boleh gak ada, tapi kalau ada harus number dan lebih dari 0, kalau gak: age harus angka positif. Cek dengan data.age !== undefined && (typeof data.age !== "number" || data.age <= 0).
Tiap aturan yang dilanggar menambah pesannya dengan errors.push(...).
Output yang diharapkan:
Test 1 (valid): {"valid":true,"errors":[]}
Test 2 (invalid): {"valid":false,"errors":["name wajib diisi","email harus valid"]}
Test 3 (age negatif): {"valid":false,"errors":["age harus angka positif"]}
Yang dinilai: output memuat "valid":true, email harus valid, dan age harus angka positif; email diperiksa isinya (includes, indexOf, test, match, atau split); valid ditentukan dari errors.length === 0; pesan dikumpulkan dengan push (atau concat/spread); dan ada cek dengan data lain: user lengkap dengan umur 1 valid, email tanpa @ menghasilkan tepat 1 error, dan name kosong tetap gak valid.