1import ../../make-test-python.nix ({pkgs, ...}:
2{
3 name = "pixelfed-standard";
4 meta.maintainers = with pkgs.lib.maintainers; [ raitobezarius ];
5
6 nodes = {
7 server = { pkgs, ... }: {
8 services.pixelfed = {
9 enable = true;
10 domain = "pixelfed.local";
11 # Configure NGINX.
12 nginx = {};
13 secretFile = (pkgs.writeText "secrets.env" ''
14 # Snakeoil secret, can be any random 32-chars secret via CSPRNG.
15 APP_KEY=adKK9EcY8Hcj3PLU7rzG9rJ6KKTOtYfA
16 '');
17 settings."FORCE_HTTPS_URLS" = false;
18 };
19 };
20 };
21
22 testScript = ''
23 # Wait for Pixelfed PHP pool
24 server.wait_for_unit("phpfpm-pixelfed.service")
25 # Wait for NGINX
26 server.wait_for_unit("nginx.service")
27 # Wait for HTTP port
28 server.wait_for_open_port(80)
29 # Access the homepage.
30 server.succeed("curl -H 'Host: pixelfed.local' http://localhost")
31 # Create an account
32 server.succeed("pixelfed-manage user:create --name=test --username=test --email=test@test.com --password=test")
33 # Create a OAuth token.
34 # TODO: figure out how to use it to send a image/toot
35 # server.succeed("pixelfed-manage passport:client --personal")
36 # server.succeed("curl -H 'Host: pixefed.local' -H 'Accept: application/json' -H 'Authorization: Bearer secret' -F'status'='test' http://localhost/api/v1/statuses")
37 '';
38})