diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/router.scm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/router.scm b/tests/router.scm new file mode 100644 index 0000000..5bdbd51 --- /dev/null +++ b/tests/router.scm @@ -0,0 +1,33 @@ +(use-modules (srfi srfi-11) + (srfi srfi-64) + (weeb router)) + +;; Private imports for testing purposes. +(define uri-template->regexp-string + (@@ (weeb router) uri-template->regexp-string)) + +(test-runner-current (test-runner-simple)) + +(test-begin "weeb-router") + +(test-group "simple static route" + (let-values (((re vars) (uri-template->regexp-string "/health"))) + (test-equal "/health" re) + (test-equal '() vars))) + +(test-group "single variable route" + (let-values (((re vars) (uri-template->regexp-string "/user/:id:"))) + (test-equal "/user/([^/]+)" re) + (test-equal '(id) vars))) + +(test-group "multiple variables with trailing slash" + (let-values (((re vars) (uri-template->regexp-string "/org/:org_id:/user/:user_id:/"))) + (test-equal "/org/([^/]+)/user/([^/]+)" re) + (test-equal '(org_id user_id) vars))) + +(test-group "middle variables" + (let-values (((re vars) (uri-template->regexp-string "/api/:version:/data"))) + (test-equal "/api/([^/]+)/data" re) + (test-equal '(version) vars))) + +(test-end) |