1{
2 system ? builtins.currentSystem,
3 pkgs ? import ../.. { inherit system; },
4 ...
5}:
6let
7 lib = pkgs.lib;
8 testScript = ''
9 machine.start()
10 machine.wait_for_unit("ferretdb.service")
11 machine.wait_for_open_port(27017)
12 machine.succeed("mongosh --eval 'use myNewDatabase;' --eval 'db.myCollection.insertOne( { x: 1 } );'")
13 '';
14in
15with import ../lib/testing-python.nix { inherit system; };
16{
17
18 postgresql = makeTest {
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 };
30
31 systemd.services.ferretdb.serviceConfig = {
32 Requires = "postgresql.service";
33 After = "postgresql.service";
34 };
35
36 services.postgresql = {
37 enable = true;
38 ensureDatabases = [ "ferretdb" ];
39 ensureUsers = [
40 {
41 name = "ferretdb";
42 ensureDBOwnership = true;
43 }
44 ];
45 };
46
47 environment.systemPackages = with pkgs; [ mongosh ];
48 };
49 };
50
51 sqlite = makeTest {
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}