LLouis PilfoldUpdate examples
56dde008创建于 2025年7月24日历史提交
import gleam/http
import gleam/list
import serving_static_assets/app
import serving_static_assets/app/router
import serving_static_assets/app/web.{type Context, Context}
import wisp/simulate

fn with_context(testcase: fn(Context) -> t) -> t {
  // Create the context to use in tests
  let context = Context(static_directory: app.static_directory())

  // Run the test with the context
  testcase(context)
}

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

  assert response.status == 200

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

pub fn get_stylesheet_test() {
  use ctx <- with_context
  let request = simulate.browser_request(http.Get, "/static/styles.css")
  let response = router.handle_request(request, ctx)

  assert response.status == 200

  assert list.key_find(response.headers, "content-type")
    == Ok("text/css; charset=utf-8")
}

pub fn get_javascript_test() {
  use ctx <- with_context
  let request = simulate.browser_request(http.Get, "/static/main.js")
  let response = router.handle_request(request, ctx)

  assert response.status == 200

  assert list.key_find(response.headers, "content-type")
    == Ok("text/javascript; charset=utf-8")
}