nixos/wakapi; fix logical errors; add NixOS test (#350435)
This commit is contained in:
commit
eae71219ea
@ -182,21 +182,21 @@ in
|
|||||||
message = "Either `services.wakapi.passwordSalt` or `services.wakapi.passwordSaltFile` must be set.";
|
message = "Either `services.wakapi.passwordSalt` or `services.wakapi.passwordSaltFile` must be set.";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = cfg.passwordSalt != null -> cfg.passwordSaltFile != null;
|
assertion = !(cfg.passwordSalt != null && cfg.passwordSaltFile != null);
|
||||||
message = "Both `services.wakapi.passwordSalt` `services.wakapi.passwordSaltFile` should not be set at the same time.";
|
message = "Both `services.wakapi.passwordSalt` `services.wakapi.passwordSaltFile` should not be set at the same time.";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = cfg.smtpPassword != null -> cfg.smtpPasswordFile != null;
|
assertion = !(cfg.smtpPassword != null && cfg.smtpPasswordFile != null);
|
||||||
message = "Both `services.wakapi.smtpPassword` `services.wakapi.smtpPasswordFile` should not be set at the same time.";
|
message = "Both `services.wakapi.smtpPassword` `services.wakapi.smtpPasswordFile` should not be set at the same time.";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
assertion = cfg.db.createLocally -> cfg.db.dialect != null;
|
assertion = cfg.database.createLocally -> cfg.settings.db.dialect != null;
|
||||||
message = "`services.wakapi.database.createLocally` is true, but a database dialect is not set!";
|
message = "`services.wakapi.database.createLocally` is true, but a database dialect is not set!";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
warnings = [
|
warnings = [
|
||||||
(lib.optionalString (cfg.db.createLocall -> cfg.db.dialect != "postgres") ''
|
(lib.optionalString (cfg.database.createLocally -> cfg.settings.db.dialect != "postgres") ''
|
||||||
You have enabled automatic database configuration, but the database dialect is not set to "posgres".
|
You have enabled automatic database configuration, but the database dialect is not set to "posgres".
|
||||||
|
|
||||||
The Wakapi module only supports for PostgreSQL. Please set `services.wakapi.database.createLocally`
|
The Wakapi module only supports for PostgreSQL. Please set `services.wakapi.database.createLocally`
|
||||||
|
@ -1108,6 +1108,7 @@ in {
|
|||||||
vscode-remote-ssh = handleTestOn ["x86_64-linux"] ./vscode-remote-ssh.nix {};
|
vscode-remote-ssh = handleTestOn ["x86_64-linux"] ./vscode-remote-ssh.nix {};
|
||||||
vscodium = discoverTests (import ./vscodium.nix);
|
vscodium = discoverTests (import ./vscodium.nix);
|
||||||
vsftpd = handleTest ./vsftpd.nix {};
|
vsftpd = handleTest ./vsftpd.nix {};
|
||||||
|
wakapi = handleTest ./wakapi.nix {};
|
||||||
warzone2100 = handleTest ./warzone2100.nix {};
|
warzone2100 = handleTest ./warzone2100.nix {};
|
||||||
wasabibackend = handleTest ./wasabibackend.nix {};
|
wasabibackend = handleTest ./wasabibackend.nix {};
|
||||||
wastebin = handleTest ./wastebin.nix {};
|
wastebin = handleTest ./wastebin.nix {};
|
||||||
|
40
nixos/tests/wakapi.nix
Normal file
40
nixos/tests/wakapi.nix
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import ./make-test-python.nix (
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
name = "Wakapi";
|
||||||
|
|
||||||
|
nodes.machine = {
|
||||||
|
services.wakapi = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server.port = 3000; # upstream default, set explicitly in case upstream changes it
|
||||||
|
|
||||||
|
db = {
|
||||||
|
dialect = "postgres"; # `createLocally` only supports postgres
|
||||||
|
host = "/run/postgresql";
|
||||||
|
port = 5432; # service will fail if port is not set
|
||||||
|
name = "wakapi";
|
||||||
|
user = "wakapi";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
database.createLocally = true;
|
||||||
|
|
||||||
|
# Created with `cat /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1`
|
||||||
|
# Prefer passwordSaltFile in production.
|
||||||
|
passwordSalt = "NpqCY7eY7fMoIWYmPx5mAgr6YoSlXSuI";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Test that the service is running and that it is reachable.
|
||||||
|
# This is not very comprehensive for a test, but it should
|
||||||
|
# catch very basic mistakes in the module.
|
||||||
|
testScript = ''
|
||||||
|
machine.wait_for_unit("wakapi.service")
|
||||||
|
machine.wait_for_open_port(3000)
|
||||||
|
machine.succeed("curl --fail http://localhost:3000")
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta.maintainers = [ lib.maintainers.NotAShelf ];
|
||||||
|
}
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user