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