python312Packages.dissect-extfs: 3.11 -> 3.12
[NixPkgs.git] / nixos / tests / mongodb.nix
blobd82d5080e69c2ec4f85cc2b9396aef91c2ea8451
1 # This test start mongodb, runs a query using mongo shell
3 import ./make-test-python.nix ({ pkgs, ... }:
4   let
5     testQuery = pkgs.writeScript "nixtest.js" ''
6       db.greetings.insert({ "greeting": "hello" });
7       print(db.greetings.findOne().greeting);
8     '';
10     runMongoDBTest = pkg: ''
11       node.execute("(rm -rf data || true) && mkdir data")
12       node.execute(
13           "${pkg}/bin/mongod --fork --logpath logs --dbpath data"
14       )
15       node.wait_for_open_port(27017)
17       assert "hello" in node.succeed(
18           "${pkg}/bin/mongo ${testQuery}"
19       )
21       node.execute(
22           "${pkg}/bin/mongod --shutdown --dbpath data"
23       )
24       node.wait_for_closed_port(27017)
25     '';
27   in {
28     name = "mongodb";
29     meta = with pkgs.lib.maintainers; {
30       maintainers = [ bluescreen303 offline phile314 ];
31     };
33     nodes = {
34       node = {...}: {
35         environment.systemPackages = with pkgs; [
36           # remember to update mongodb.passthru.tests if you change this
37           mongodb-7_0
38         ];
39       };
40     };
42     testScript = ''
43       node.start()
44     ''
45       + runMongoDBTest pkgs.mongodb-7_0
46       + ''
47         node.shutdown()
48       '';
49   })