1{ system ? builtins.currentSystem
2, pkgs ? import ../.. { inherit system; }
3, ...
4}:
5let
6 lib = pkgs.lib;
7 testScript = ''
8 machine.start()
9 machine.wait_for_unit("ferretdb.service")
10 machine.wait_for_open_port(27017)
11 machine.succeed("mongosh --eval 'use myNewDatabase;' --eval 'db.myCollection.insertOne( { x: 1 } );'")
12 '';
13in
14with import ../lib/testing-python.nix { inherit system; };
15{
16
17 postgresql = makeTest
18 {
19 inherit testScript;
20 name = "ferretdb-postgresql";
21 meta.maintainers = with lib.maintainers; [ julienmalka ];
22
23 nodes.machine =
24 { pkgs, ... }:
25 {
26 services.ferretdb = {
27 enable = true;
28 settings.FERRETDB_HANDLER = "pg";
29 settings.FERRETDB_POSTGRESQL_URL = "postgres://ferretdb@localhost/ferretdb?host=/run/postgresql";
30 };
31
32 systemd.services.ferretdb.serviceConfig = {
33 Requires = "postgresql.service";
34 After = "postgresql.service";
35 };
36
37 services.postgresql = {
38 enable = true;
39 ensureDatabases = [ "ferretdb" ];
40 ensureUsers = [{
41 name = "ferretdb";
42 ensureDBOwnership = true;
43 }];
44 };
45
46 environment.systemPackages = with pkgs; [ mongosh ];
47 };
48 };
49
50 sqlite = makeTest
51 {
52 inherit testScript;
53 name = "ferretdb-sqlite";
54 meta.maintainers = with lib.maintainers; [ julienmalka ];
55
56 nodes.machine =
57 { pkgs, ... }:
58 {
59 services.ferretdb.enable = true;
60
61 environment.systemPackages = with pkgs; [ mongosh ];
62 };
63 };
64}