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