Study
Yesod

Testing Dasar (Yesod Test)

Penjelasan

yesod-test adalah library testing yang memungkinkan kita mensimulasikan request HTTP penuh ke aplikasi Yesod tanpa menjalankan server sungguhan, memakai kombinasi Hspec sebagai runner test dan helper seperti get, statusIs, dan htmlAnyContain. Test biasanya diletakkan di folder test/ dan dijalankan dengan stack test. yesod-test juga mendukung simulasi form submission lewat fungsi seperti request dengan addToken (untuk menyertakan CSRF token otomatis) dan byLabel untuk mengisi field form berdasarkan label-nya, sehingga kita bisa menguji alur lengkap dari menampilkan form sampai submit dan verifikasi hasilnya tersimpan di database.

Contoh Konsep

spec :: Spec
spec = withApp $ do
  describe "Halaman Produk" $ do
    it "menampilkan daftar produk dengan status 200" $ do
      get ProdukR
      statusIs 200
      htmlAnyContain "h1" "Daftar Produk"

    it "berhasil membuat produk baru" $ do
      get ProdukNewR
      request $ do
        setMethod "POST"
        setUrl ProdukNewR
        addToken
        byLabel "Nama" "Sepatu"
        byLabel "Harga" "250000"
      statusIs 303

Praktikum

Tulis test yang memastikan GET ArtikelR mengembalikan status 200 dan mengandung heading 'Daftar Artikel'.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Selalu panggil addToken sebelum request POST/PUT/DELETE di test, karena proteksi CSRF bawaan Yesod akan menolak request tanpa token valid meskipun di lingkungan test.