at 24.11-pre 1.1 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 phile314 ]; 31 }; 32 33 nodes = { 34 node = {...}: { 35 environment.systemPackages = with pkgs; [ 36 mongodb-5_0 37 ]; 38 }; 39 }; 40 41 testScript = '' 42 node.start() 43 '' 44 + runMongoDBTest pkgs.mongodb-5_0 45 + '' 46 node.shutdown() 47 ''; 48 })