at master 2.3 kB view raw
1{ ... }: 2{ 3 name = "tiddlywiki"; 4 nodes = { 5 default = { 6 services.tiddlywiki.enable = true; 7 }; 8 configured = { 9 boot.postBootCommands = '' 10 echo "username,password 11 somelogin,somesecret" > /var/lib/wikiusers.csv 12 ''; 13 services.tiddlywiki = { 14 enable = true; 15 listenOptions = { 16 port = 3000; 17 credentials = "../wikiusers.csv"; 18 readers = "(authenticated)"; 19 }; 20 }; 21 }; 22 }; 23 24 testScript = '' 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}