48 lines
1.9 KiB
Nix
48 lines
1.9 KiB
Nix
|
import ./make-test-python.nix ({ lib, ... }: {
|
||
|
name = "silverbullet";
|
||
|
meta.maintainers = with lib.maintainers; [ aorith ];
|
||
|
|
||
|
nodes.simple = { ... }: {
|
||
|
services.silverbullet.enable = true;
|
||
|
};
|
||
|
|
||
|
nodes.configured = { pkgs, ... }: {
|
||
|
users.users.test.isNormalUser = true;
|
||
|
users.groups.test = { };
|
||
|
|
||
|
services.silverbullet = {
|
||
|
enable = true;
|
||
|
package = pkgs.silverbullet;
|
||
|
listenPort = 3001;
|
||
|
listenAddress = "localhost";
|
||
|
spaceDir = "/home/test/silverbullet";
|
||
|
user = "test";
|
||
|
group = "test";
|
||
|
envFile = pkgs.writeText "silverbullet.env" ''
|
||
|
SB_USER=user:password
|
||
|
SB_AUTH_TOKEN=test
|
||
|
'';
|
||
|
extraArgs = [ "--reindex" "--db /home/test/silverbullet/custom.db" ];
|
||
|
};
|
||
|
};
|
||
|
|
||
|
testScript = { nodes, ... }: ''
|
||
|
PORT = ${builtins.toString nodes.simple.services.silverbullet.listenPort}
|
||
|
ADDRESS = "${nodes.simple.services.silverbullet.listenAddress}"
|
||
|
SPACEDIR = "${nodes.simple.services.silverbullet.spaceDir}"
|
||
|
simple.wait_for_unit("silverbullet.service")
|
||
|
simple.wait_for_open_port(PORT)
|
||
|
simple.succeed(f"curl --max-time 5 -s -v -o /dev/null --fail http://{ADDRESS}:{PORT}/")
|
||
|
simple.succeed(f"test -d '{SPACEDIR}'")
|
||
|
|
||
|
PORT = ${builtins.toString nodes.configured.services.silverbullet.listenPort}
|
||
|
ADDRESS = "${nodes.configured.services.silverbullet.listenAddress}"
|
||
|
SPACEDIR = "${nodes.configured.services.silverbullet.spaceDir}"
|
||
|
configured.wait_for_unit("silverbullet.service")
|
||
|
configured.wait_for_open_port(PORT)
|
||
|
assert int(configured.succeed(f"curl --max-time 5 -s -o /dev/null -w '%{{http_code}}' -XPUT -d 'test' --fail http://{ADDRESS}:{PORT}/test.md -H'Authorization: Bearer test'")) == 200
|
||
|
assert int(configured.fail(f"curl --max-time 5 -s -o /dev/null -w '%{{http_code}}' -XPUT -d 'test' --fail http://{ADDRESS}:{PORT}/test.md -H'Authorization: Bearer wrong'")) == 401
|
||
|
configured.succeed(f"test -d '{SPACEDIR}'")
|
||
|
'';
|
||
|
})
|