Skip to content

Commit ed62b9a

Browse files
authored
Add a VM test to make sure the nixos module actually works (#16)
1 parent e986e2b commit ed62b9a

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

flake.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838

3939
checks.tailscale-manager = self.packages.${system}.tailscale-manager;
4040

41+
checks.vm-test = pkgs.callPackage ./nix/vm-test.nix { inherit self; };
42+
4143
devShells.default = pkgs.mkShell {
4244
buildInputs = with pkgs; [
4345
haskellPackages.haskell-language-server # you must build it with your ghc to work

nix/vm-test.nix

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{ self, lib, pkgs, system, ... }:
2+
3+
let fakeTailscale = pkgs.writeScriptBin "tailscale" ''
4+
#!/bin/sh
5+
echo "Fake tailscale invoked with args: $*" 1>&2
6+
'';
7+
in
8+
pkgs.nixosTest {
9+
name = "tailscale-manager";
10+
nodes.machine1 = { config, pkgs, ... }: {
11+
imports = [ self.nixosModules.${system}.tailscale-manager ];
12+
services.tailscale.package = fakeTailscale;
13+
services.tailscale-manager = {
14+
enable = true;
15+
routes = ["192.168.254.0/24"];
16+
};
17+
system.stateVersion = "24.11";
18+
};
19+
testScript = ''
20+
machine1.wait_for_unit("tailscale-manager.service")
21+
machine1.wait_for_console_text("Fake tailscale invoked with args:.*--advertise-routes=192.168.254.0/24")
22+
'';
23+
}

0 commit comments

Comments
 (0)