From 50a3bc819a1cf085b0cf588d60df837786990025 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Wed, 30 Nov 2022 00:36:53 +1300 Subject: [PATCH] Fix tests by providing a fake req --- src/application-globals.rkt | 8 ++++++-- src/page-category.rkt | 4 +++- src/page-file.rkt | 6 ++++-- src/page-search.rkt | 5 +++-- src/test-utils.rkt | 8 ++++++++ 5 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 src/test-utils.rkt diff --git a/src/application-globals.rkt b/src/application-globals.rkt index 0fe26dc..e6feaaf 100644 --- a/src/application-globals.rkt +++ b/src/application-globals.rkt @@ -1,6 +1,7 @@ #lang racket/base (require racket/file racket/list + racket/runtime-path racket/string json (prefix-in easy: net/http-easy) @@ -29,17 +30,19 @@ (module+ test (require rackunit - html-writing)) + html-writing + "test-utils.rkt")) (define always-headers (list (header #"Referrer-Policy" #"same-origin") ; header to not send referers to fandom (header #"Link" (string->bytes/latin-1 link-header)))) (define timeouts (easy:make-timeout-config #:lease 5 #:connect 5)) +(define-runtime-path path-static "../static") (define theme-icons (for/hasheq ([theme '(default light dark)]) (values theme - (html->xexp (file->string (format "static/icon-theme-~a.svg" theme) #:mode 'binary))))) + (html->xexp (file->string (build-path path-static (format "icon-theme-~a.svg" theme)) #:mode 'binary))))) (define (application-footer source-url #:license [license-in #f]) (define license (or license-in license-default)) @@ -190,6 +193,7 @@ (parameterize ([(config-parameter 'strict_proxy) "true"]) (generate-wiki-page '(template) + #:req test-req #:source-url "" #:title "test" #:wikiname "test"))) diff --git a/src/page-category.rkt b/src/page-category.rkt index 5933f3e..62b7f38 100644 --- a/src/page-category.rkt +++ b/src/page-category.rkt @@ -24,7 +24,8 @@ page-category) (module+ test - (require rackunit) + (require rackunit + "test-utils.rkt") (define category-json-data '#hasheq((batchcomplete . #t) (continue . #hasheq((cmcontinue . "page|4150504c45|41473") (continue . "-||"))) (query . #hasheq((categorymembers . (#hasheq((ns . 0) (pageid . 25049) (title . "Item (entity)")) #hasheq((ns . 0) (pageid . 128911) (title . "3D")) #hasheq((ns . 0) (pageid . 124018) (title . "A Very Fine Item")) #hasheq((ns . 0) (pageid . 142208) (title . "Amethyst Shard")) #hasheq((ns . 0) (pageid . 121612) (title . "Ankle Monitor"))))))))) @@ -119,6 +120,7 @@ (module+ test (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Ankle_Monitor") (generate-results-page + #:req test-req #:source-url "" #:wikiname "test" #:title "Category:Items" diff --git a/src/page-file.rkt b/src/page-file.rkt index d9dfd91..d999ba4 100644 --- a/src/page-file.rkt +++ b/src/page-file.rkt @@ -23,7 +23,8 @@ (provide page-file) (module+ test - (require rackunit) + (require rackunit + "test-utils.rkt") (define test-media-detail '#hasheq((fileTitle . "Example file") (videoEmbedCode . "") @@ -162,7 +163,8 @@ (check-not-false ((query-selector (attribute-selector 'src "/proxy?dest=https%3A%2F%2Fstatic.wikia.nocookie.net%2Fexamplefile") - (generate-results-page #:source-url "" + (generate-results-page #:req test-req + #:source-url "" #:wikiname "test" #:title "File:Example file" #:media-detail test-media-detail diff --git a/src/page-search.rkt b/src/page-search.rkt index 214a3a2..10ff66c 100644 --- a/src/page-search.rkt +++ b/src/page-search.rkt @@ -21,7 +21,8 @@ page-search) (module+ test - (require rackunit) + (require rackunit + "test-utils.rkt") (define search-json-data '#hasheq((batchcomplete . #t) (query . #hasheq((search . (#hasheq((ns . 0) (pageid . 219) (size . 1482) (snippet . "") (timestamp . "2022-08-21T08:54:23Z") (title . "Gacha Capsule") (wordcount . 214)) #hasheq((ns . 0) (pageid . 201) (size . 1198) (snippet . "") (timestamp . "2022-07-11T17:52:47Z") (title . "Badges") (wordcount . 181))))))))) @@ -87,4 +88,4 @@ (write-html body out)))))) (module+ test (check-not-false ((query-selector (attribute-selector 'href "/test/wiki/Gacha_Capsule") - (generate-results-page "" "test" "Gacha" search-json-data))))) + (generate-results-page test-req "" "test" "Gacha" search-json-data))))) diff --git a/src/test-utils.rkt b/src/test-utils.rkt new file mode 100644 index 0000000..1c9860d --- /dev/null +++ b/src/test-utils.rkt @@ -0,0 +1,8 @@ +#lang racket/base +(require web-server/http/request-structs + net/url-structs + (only-in racket/promise delay)) +(provide + test-req) + +(define test-req (request #"GET" (url "https" #f "breezewiki.com" #f #t (list (path/param "" '())) '() #f) '() (delay '()) #f "127.0.0.1" 0 "127.0.0.1"))