at 23.11-pre 2.4 kB view raw
1import ./make-test-python.nix ({ ... }: { 2 name = "tiddlywiki"; 3 nodes = { 4 default = { 5 services.tiddlywiki.enable = true; 6 }; 7 configured = { 8 boot.postBootCommands = '' 9 echo "username,password 10 somelogin,somesecret" > /var/lib/wikiusers.csv 11 ''; 12 services.tiddlywiki = { 13 enable = true; 14 listenOptions = { 15 port = 3000; 16 credentials="../wikiusers.csv"; 17 readers="(authenticated)"; 18 }; 19 }; 20 }; 21 }; 22 23 testScript = 24 '' 25 start_all() 26 27 with subtest("by default works without configuration"): 28 default.wait_for_unit("tiddlywiki.service") 29 30 with subtest("by default available on port 8080 without auth"): 31 default.wait_for_unit("tiddlywiki.service") 32 default.wait_for_open_port(8080) 33 # we output to /dev/null here to avoid a python UTF-8 decode error 34 # but the check will still fail if the service doesn't respond 35 default.succeed("curl --fail -o /dev/null 127.0.0.1:8080") 36 37 with subtest("by default creates empty wiki"): 38 default.succeed("test -f /var/lib/tiddlywiki/tiddlywiki.info") 39 40 with subtest("configured on port 3000 with basic auth"): 41 configured.wait_for_unit("tiddlywiki.service") 42 configured.wait_for_open_port(3000) 43 configured.fail("curl --fail -o /dev/null 127.0.0.1:3000") 44 configured.succeed( 45 "curl --fail -o /dev/null 127.0.0.1:3000 --user somelogin:somesecret" 46 ) 47 48 with subtest("restart preserves changes"): 49 # given running wiki 50 default.wait_for_unit("tiddlywiki.service") 51 # with some changes 52 default.succeed( 53 'curl --fail --request PUT --header \'X-Requested-With:TiddlyWiki\' \ 54 --data \'{ "title": "title", "text": "content" }\' \ 55 --url 127.0.0.1:8080/recipes/default/tiddlers/somepage ' 56 ) 57 default.succeed("sleep 2") 58 59 # when wiki is cycled 60 default.systemctl("restart tiddlywiki.service") 61 default.wait_for_unit("tiddlywiki.service") 62 default.wait_for_open_port(8080) 63 64 # the change is preserved 65 default.succeed( 66 "curl --fail -o /dev/null 127.0.0.1:8080/recipes/default/tiddlers/somepage" 67 ) 68 ''; 69})