traccar: init integration test
This commit is contained in:
@@ -1531,6 +1531,7 @@ in
|
||||
tor = runTest ./tor.nix;
|
||||
tpm-ek = handleTest ./tpm-ek { };
|
||||
tpm2 = runTest ./tpm2.nix;
|
||||
traccar = runTest ./traccar.nix;
|
||||
# tracee requires bpf
|
||||
tracee = handleTestOn [ "x86_64-linux" ] ./tracee.nix { };
|
||||
traefik = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./traefik.nix;
|
||||
|
||||
51
nixos/tests/traccar.nix
Normal file
51
nixos/tests/traccar.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
name = "traccar";
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ frederictobiasc ];
|
||||
};
|
||||
nodes.machine = {
|
||||
services.traccar = {
|
||||
enable = true;
|
||||
settings.mail.smtp.host = "$SMTP_HOST";
|
||||
environmentFile = pkgs.writeText "traccar.env" ''
|
||||
SMTP_HOST=smtp.example.com
|
||||
'';
|
||||
};
|
||||
};
|
||||
testScript = ''
|
||||
machine.wait_for_unit("traccar.service")
|
||||
|
||||
# Check that environment variables were substituted
|
||||
t.assertIn("smtp.example.com", machine.succeed("cat /var/lib/traccar/config.xml"), "environment substitution failed")
|
||||
|
||||
machine.wait_for_open_port(8082)
|
||||
|
||||
# Check that we get the traccar login page
|
||||
t.assertIn("Traccar", machine.wait_until_succeeds("curl -sf http://localhost:8082/"), "Traccar frontend seems unreachable")
|
||||
|
||||
# Register the first admin user
|
||||
register_data = """
|
||||
{
|
||||
"email": "admin@example.com",
|
||||
"name": "admin",
|
||||
"password": "admin123"
|
||||
}
|
||||
"""
|
||||
|
||||
t.assertIn(
|
||||
"\"administrator\":true",
|
||||
machine.succeed(
|
||||
"curl -s -X POST "
|
||||
"-H 'Content-Type: application/json' "
|
||||
f"-d '{register_data}' "
|
||||
"http://localhost:8082/api/users"
|
||||
),
|
||||
"Unexpected registration response"
|
||||
)
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user