a more proper nixos module for the tangled knotserver

module: add a simple test

+34 -1
+9 -1
flake.nix
··· 17 17 }; 18 18 }; 19 19 20 - outputs = { tangledCore, ... }: { 20 + outputs = { self, tangledCore, nixpkgs }: let 21 + lib = nixpkgs.lib; 22 + testedSystems = ["x86_64-linux" "aarch64-linux"]; 23 + forAllSystems = fn: lib.genAttrs testedSystems (system: fn nixpkgs.legacyPackages.${system}); 24 + in { 21 25 nixosModules.default = import ./module.nix tangledCore; 26 + 27 + checks = forAllSystems (pkgs: { 28 + default = pkgs.callPackage ./test.nix { module = self.nixosModules.default; }; 29 + }); 22 30 }; 23 31 }
+25
test.nix
··· 1 + { testers, module }: 2 + 3 + testers.runNixOSTest { 4 + name = "knotserver-basic"; 5 + 6 + defaults = { 7 + imports = [ module ]; 8 + }; 9 + 10 + nodes.machine = { 11 + services.tangled-knotserver = { 12 + enable = true; 13 + 14 + server.listenAddr = "127.0.0.1:5555"; 15 + server.hostname = "knot.example.org"; 16 + extraConfig.KNOT_SERVER_SECRET = "verysecuresecret"; 17 + }; 18 + }; 19 + 20 + testScript = '' 21 + machine.wait_for_unit("knotserver.service") 22 + machine.wait_for_open_port(5555) 23 + machine.succeed('curl -f http://127.0.0.1:5555 | grep "This is a knot server"') 24 + ''; 25 + }