43 lines
1 KiB
Odin
43 lines
1 KiB
Odin
package fjord
|
|
|
|
import "core:log"
|
|
import "core:net"
|
|
|
|
import "core:testing"
|
|
|
|
import http "http"
|
|
|
|
Error :: enum {}
|
|
|
|
handler :: proc(request: ^http.Request) -> (http.Response, Error) {
|
|
body := "<div>Hello</div>"
|
|
response := http.make_response(.Ok, transmute([]byte)body, .Html)
|
|
|
|
return response, nil
|
|
}
|
|
|
|
get_path_var_handler :: proc(request: ^http.Request) -> (http.Response, Error) {
|
|
body := "<div>Hello</div>"
|
|
response := http.make_response(.Ok, transmute([]byte)body, .Html)
|
|
|
|
return response, nil
|
|
}
|
|
|
|
@(test)
|
|
test_basic_ok :: proc(t: ^testing.T) {
|
|
context.logger = log.create_console_logger(.Info)
|
|
defer log.destroy_console_logger(context.logger)
|
|
|
|
endpoint := net.Endpoint {
|
|
address = net.IP4_Address{127, 0, 0, 1},
|
|
port = 8080,
|
|
}
|
|
|
|
server: Server(Error)
|
|
server_init(&server, endpoint, context.allocator)
|
|
defer server_destroy(&server)
|
|
|
|
server_add_handler(&server, .GET, {}, handler)
|
|
server_add_handler(&server, .GET, {"hello", "{name-thing}"}, handler)
|
|
listen_and_serve(&server)
|
|
}
|