diff options
author | Julien Malka <julien@malka.sh> | 2023-10-15 10:40:11 +0200 |
---|---|---|
committer | Yureka <yuka@yuka.dev> | 2023-10-16 10:15:30 +0200 |
commit | 8cff7c9e6951462aef44e6a1f6050dc45dfd53f2 (patch) | |
tree | c0d1a517dfad84cf9c388e0c3c49ea206216881a /nixos/tests/ferretdb.nix | |
parent | c54ab7d6438d459b57442f6d823ae0ea1f16908b (diff) |
tests/ferretdb: init
Diffstat (limited to 'nixos/tests/ferretdb.nix')
-rw-r--r-- | nixos/tests/ferretdb.nix | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/nixos/tests/ferretdb.nix b/nixos/tests/ferretdb.nix new file mode 100644 index 0000000000000..9ad7397ade80c --- /dev/null +++ b/nixos/tests/ferretdb.nix @@ -0,0 +1,64 @@ +{ system ? builtins.currentSystem +, pkgs ? import ../.. { inherit system; } +, ... +}: +let + lib = pkgs.lib; + testScript = '' + machine.start() + machine.wait_for_unit("ferretdb.service") + machine.wait_for_open_port(27017) + machine.succeed("mongosh --eval 'use myNewDatabase;' --eval 'db.myCollection.insertOne( { x: 1 } );'") + ''; +in +with import ../lib/testing-python.nix { inherit system; }; +{ + + postgresql = makeTest + { + inherit testScript; + name = "ferretdb-postgresql"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, ... }: + { + services.ferretdb = { + enable = true; + settings.FERRETDB_HANDLER = "pg"; + settings.FERRETDB_POSTGRESQL_URL = "postgres://ferretdb@localhost/ferretdb?host=/run/postgresql"; + }; + + systemd.services.ferretdb.serviceConfig = { + Requires = "postgresql.service"; + After = "postgresql.service"; + }; + + services.postgresql = { + enable = true; + ensureDatabases = [ "ferretdb" ]; + ensureUsers = [{ + name = "ferretdb"; + ensurePermissions."DATABASE ferretdb" = "ALL PRIVILEGES"; + }]; + }; + + environment.systemPackages = with pkgs; [ mongosh ]; + }; + }; + + sqlite = makeTest + { + inherit testScript; + name = "ferretdb-sqlite"; + meta.maintainers = with lib.maintainers; [ julienmalka ]; + + nodes.machine = + { pkgs, ... }: + { + services.ferretdb.enable = true; + + environment.systemPackages = with pkgs; [ mongosh ]; + }; + }; +} |