1# This test start mongodb, runs a query using mongo shell
2
3import ./make-test.nix ({ pkgs, ...} : let
4 testQuery = pkgs.writeScript "nixtest.js" ''
5 db.greetings.insert({ "greeting": "hello" });
6 print(db.greetings.findOne().greeting);
7 '';
8in {
9 name = "mongodb";
10 meta = with pkgs.stdenv.lib.maintainers; {
11 maintainers = [ bluescreen303 offline wkennington cstrahan rvl ];
12 };
13
14 nodes = {
15 one =
16 { config, pkgs, ... }:
17 {
18 services = {
19 mongodb.enable = true;
20 mongodb.extraConfig = ''
21 # Allow starting engine with only a small virtual disk
22 storage.journal.enabled: false
23 storage.mmapv1.smallFiles: true
24 '';
25 };
26 };
27 };
28
29 testScript = ''
30 startAll;
31 $one->waitForUnit("mongodb.service");
32 $one->succeed("mongo nixtest ${testQuery}") =~ /hello/ or die;
33 '';
34})