mirror of
https://github.com/vlang/v.git
synced 2025-09-16 07:52:32 +03:00
add test
This commit is contained in:
parent
1f89469fe0
commit
930c84db27
1 changed files with 53 additions and 0 deletions
53
vlib/veb/tests/veb_aliased_app_and_context_test.v
Normal file
53
vlib/veb/tests/veb_aliased_app_and_context_test.v
Normal file
|
@ -0,0 +1,53 @@
|
|||
import os
|
||||
import veb
|
||||
import time
|
||||
import net.http
|
||||
|
||||
const app_port = 29123
|
||||
const exit_after = 10 * time.second
|
||||
|
||||
pub struct Context {
|
||||
veb.Context
|
||||
}
|
||||
|
||||
pub struct App {
|
||||
veb.Middleware[Context]
|
||||
veb.Controller
|
||||
veb.StaticHandler
|
||||
started chan bool
|
||||
}
|
||||
|
||||
pub fn (mut app App) before_accept_loop() {
|
||||
app.started <- true
|
||||
}
|
||||
|
||||
type AliasApp = App
|
||||
type AliasContext = Context
|
||||
|
||||
fn testsuite_begin() {
|
||||
os.chdir(os.dir(@FILE))!
|
||||
spawn fn () {
|
||||
time.sleep(exit_after)
|
||||
assert true == false, 'timeout reached!'
|
||||
exit(1)
|
||||
}()
|
||||
}
|
||||
|
||||
fn test_aliased_app_compiles_and_starts() {
|
||||
mut app := &AliasApp{}
|
||||
spawn veb.run_at[AliasApp, AliasContext](mut app,
|
||||
port: app_port
|
||||
timeout_in_seconds: 2
|
||||
family: .ip
|
||||
)
|
||||
eprintln('waiting for app to start ...')
|
||||
_ := <-app.started
|
||||
eprintln('>>> app was started')
|
||||
}
|
||||
|
||||
fn test_static_root() {
|
||||
x := http.get('http://127.0.0.1:${app_port}/')!
|
||||
eprintln('>>>> http request was sent and received')
|
||||
assert x.status() == .not_found
|
||||
assert x.body == '404 Not Found'
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue