diff options
Diffstat (limited to 'nixpkgs/nixos/tests/mongodb.nix')
-rw-r--r-- | nixpkgs/nixos/tests/mongodb.nix | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/mongodb.nix b/nixpkgs/nixos/tests/mongodb.nix new file mode 100644 index 000000000000..68be6926865e --- /dev/null +++ b/nixpkgs/nixos/tests/mongodb.nix @@ -0,0 +1,50 @@ +# This test start mongodb, runs a query using mongo shell + +import ./make-test-python.nix ({ pkgs, ... }: + let + testQuery = pkgs.writeScript "nixtest.js" '' + db.greetings.insert({ "greeting": "hello" }); + print(db.greetings.findOne().greeting); + ''; + + runMongoDBTest = pkg: '' + node.execute("(rm -rf data || true) && mkdir data") + node.execute( + "${pkg}/bin/mongod --fork --logpath logs --dbpath data" + ) + node.wait_for_open_port(27017) + + assert "hello" in node.succeed( + "${pkg}/bin/mongo ${testQuery}" + ) + + node.execute( + "${pkg}/bin/mongod --shutdown --dbpath data" + ) + node.wait_for_closed_port(27017) + ''; + + in { + name = "mongodb"; + meta = with pkgs.lib.maintainers; { + maintainers = [ bluescreen303 offline phile314 ]; + }; + + nodes = { + node = {...}: { + environment.systemPackages = with pkgs; [ + mongodb-4_4 + mongodb-5_0 + ]; + }; + }; + + testScript = '' + node.start() + '' + + runMongoDBTest pkgs.mongodb-4_4 + + runMongoDBTest pkgs.mongodb-5_0 + + '' + node.shutdown() + ''; + }) |