at 23.11-pre 1.2 kB view raw
1# This test start mongodb, runs a query using mongo shell 2 3import ./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 ''; 9 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) 16 17 assert "hello" in node.succeed( 18 "${pkg}/bin/mongo ${testQuery}" 19 ) 20 21 node.execute( 22 "${pkg}/bin/mongod --shutdown --dbpath data" 23 ) 24 node.wait_for_closed_port(27017) 25 ''; 26 27 in { 28 name = "mongodb"; 29 meta = with pkgs.lib.maintainers; { 30 maintainers = [ bluescreen303 offline cstrahan rvl phile314 ]; 31 }; 32 33 nodes = { 34 node = {...}: { 35 environment.systemPackages = with pkgs; [ 36 mongodb-4_2 37 mongodb-4_4 38 mongodb-5_0 39 ]; 40 }; 41 }; 42 43 testScript = '' 44 node.start() 45 '' 46 + runMongoDBTest pkgs.mongodb-4_2 47 + runMongoDBTest pkgs.mongodb-4_4 48 + runMongoDBTest pkgs.mongodb-5_0 49 + '' 50 node.shutdown() 51 ''; 52 })