diff --git a/Dockerfile b/Dockerfile index 2976516..76b894b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM openresty/openresty:1.27.1.2-0-bookworm-buildpack +FROM openresty/openresty:bookworm-buildpack WORKDIR /opt/app @@ -12,6 +12,7 @@ RUN apt-get update && apt-get install -y \ RUN luarocks install sitegen RUN luarocks install busted +RUN luarocks install luajit-curl RUN luarocks install inotify INOTIFY_INCDIR=/usr/include/x86_64-linux-gnu/ CMD ["sh", "-c", "openresty -p `pwd` -g 'daemon off;'"] diff --git a/Makefile b/Makefile index 0c8fdf3..af9e230 100644 --- a/Makefile +++ b/Makefile @@ -12,3 +12,12 @@ lint: test: ./test.sh + +test-server: + docker run --rm -t -v $(PWD):/opt/app -p 8080:8080 \ + --add-host=miti.sh=127.0.0.1 \ + --add-host=webdevcat.me=127.0.0.1 \ + $(image) + +busted: + docker run --rm -t -w /opt/app -v $(PWD):/opt/app $(image) busted diff --git a/README.md b/README.md index 8341fc9..4132087 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,10 @@ example: $ pygmentize -S default -f html +### run tests + + $ make test + ## gotchas ### What is error `cosmo failed: [string "..."]:62: cannot resume dead coroutine`? diff --git a/spec/routes_spec.moon b/spec/routes_spec.moon new file mode 100644 index 0000000..fd5d1d5 --- /dev/null +++ b/spec/routes_spec.moon @@ -0,0 +1,31 @@ +http = require "luajit-curl-helper.http" + +describe "routes", -> + it "loads miti.sh", -> + request = http.init "http://miti.sh:8080" + st = request\perform! + + error request\lastError! if not st + + status_code = request\statusCode! + status_message = request\statusMessage! + + assert.same status_code, 200 + assert.same status_message, "OK" + + it "redirects webdevcat.me to miti.sh", -> + request = http.init "http://webdevcat.me:8080" + st = request\perform! + + error request\lastError! if not st + + status_code = request\statusCode! + status_message = request\statusMessage! + header = request\header! + + assert.same status_code, 301 + assert.same status_message, "Moved Permanently" + assert.same header.Location, "http://miti.sh:8080/" + + -- body = request\body! + -- print "body", body diff --git a/test.sh b/test.sh index 35c62a2..bb171dc 100755 --- a/test.sh +++ b/test.sh @@ -15,19 +15,21 @@ echo "Test container started" # docker exec -t $container_id curl http://miti.sh:8080 # docker exec -t $container_id curl -v http://webdevcat.me:8080 -echo "redirects webdevcat.me to miti.sh" +docker exec -t $container_id busted -response=$(docker exec -t $container_id curl -so /dev/null \ - -w "%{http_code} %{redirect_url}" http://webdevcat.me:8080) +# echo "redirects webdevcat.me to miti.sh" -expected="301 http://miti.sh:8080/" +# response=$(docker exec -t $container_id curl -so /dev/null \ +# -w "%{http_code} %{redirect_url}" http://webdevcat.me:8080) -if [[ $response != $expected ]]; then - echo "TEST FAILED" - printf "expected: $expected\ngot: $response\n" -else - echo "TEST PASSED" -fi +# expected="301 http://miti.sh:8080/" + +# if [[ $response != $expected ]]; then +# echo "TEST FAILED" +# printf "expected: $expected\ngot: $response\n" +# else +# echo "TEST PASSED" +# fi echo "Stopping test container" docker exec $container_id openresty -p /opt/app -s stop