LLouis PilfoldUpdate examples
56dde008创建于 2025年7月24日历史提交
import gleam/http
import routing/app/router
import wisp/simulate

pub fn get_home_page_test() {
  let request = simulate.browser_request(http.Get, "/")
  let response = router.handle_request(request)

  assert response.status == 200

  assert response.headers == [#("content-type", "text/html; charset=utf-8")]

  assert simulate.read_body(response) == "Hello, Joe!"
}

pub fn post_home_page_test() {
  let request =
    simulate.browser_request(http.Post, "/")
    |> simulate.string_body("a body")
  let response = router.handle_request(request)
  assert response.status == 405
}

pub fn page_not_found_test() {
  let request = simulate.browser_request(http.Get, "/nothing-here")
  let response = router.handle_request(request)
  assert response.status == 404
}

pub fn get_comments_test() {
  let request = simulate.browser_request(http.Get, "/comments")
  let response = router.handle_request(request)
  assert response.status == 200
}

pub fn post_comments_test() {
  let request = simulate.browser_request(http.Post, "/comments")
  let response = router.handle_request(request)
  assert response.status == 201
}

pub fn delete_comments_test() {
  let request = simulate.browser_request(http.Delete, "/comments")
  let response = router.handle_request(request)
  assert response.status == 405
}

pub fn get_comment_test() {
  let request = simulate.browser_request(http.Get, "/comments/123")
  let response = router.handle_request(request)
  assert response.status == 200
  assert simulate.read_body(response) == "Comment with id 123"
}

pub fn delete_comment_test() {
  let request = simulate.browser_request(http.Delete, "/comments/123")
  let response = router.handle_request(request)
  assert response.status == 405
}