mob next [ci-skip] [ci skip] [skip ci]

lastFile:tests/tests/think-gtcm.nix
This commit is contained in:
2025-11-20 15:15:14 +07:00
parent 0462caeaa9
commit 1a78f721e6
5 changed files with 59 additions and 1 deletions

View File

@@ -45,6 +45,7 @@
./routers ./routers
./inventories ./inventories
./overlays ./overlays
./tests
./modules/clan/flake-module.nix ./modules/clan/flake-module.nix
./modules/nixos/flake-module.nix ./modules/nixos/flake-module.nix
]; ];

View File

@@ -220,7 +220,7 @@ in
virtualHosts."${cfg.domain}" = { virtualHosts."${cfg.domain}" = {
root = "${cfg.stateDir}/public"; root = "${cfg.stateDir}/public";
locations."~ \\.php$".extraConfig = '' locations."~ \\.php$".extraConfig = ''
fastcgi_pass unix:${config.services.phpfpm.pools.flarum.socket}; fastcgi_pass unix:${config.services.phpfpm.pools.think-greaterchiangmai.socket};
fastcgi_index site.php; fastcgi_index site.php;
''; '';
extraConfig = '' extraConfig = ''

17
tests/default.nix Normal file
View File

@@ -0,0 +1,17 @@
{ ... }:
{
perSystem =
{ pkgs, self', ... }:
{
checks =
let
checkArgs = {
inherit pkgs;
self = self';
};
in
{
think-gtcm = import ./tests/think-gtcm.nix checkArgs;
};
};
}

18
tests/lib.nix Normal file
View File

@@ -0,0 +1,18 @@
test:
# These arguments are provided by `flake.nix` on import, see checkArgs
{ pkgs, self }:
let
inherit (pkgs) lib;
# this imports the nixos library that contains our testing framework
nixos-lib = import (pkgs.path + "/nixos/lib") { };
in
(nixos-lib.runTest {
hostPkgs = pkgs;
# This speeds up the evaluation by skipping evaluating documentation (optional)
defaults.documentation.enable = lib.mkDefault false;
# This makes `self` available in the NixOS configuration of our virtual machines.
# This is useful for referencing modules or packages from your own flake
# as well as importing from other flakes.
node.specialArgs = { inherit self; };
imports = [ test ];
}).config.result

View File

@@ -0,0 +1,22 @@
(import ../lib.nix) {
name = "think-gtcm";
nodes = {
# `self` here is set by using specialArgs in `lib.nix`
node1 =
{ self, pkgs, ... }:
{
imports = [ ];
services.think-greaterchiangmai = {
enable = true;
};
};
};
# This is the test code that will check if our service is running correctly:
testScript = ''
start_all()
node1.wait_for_unit("think-greaterchiangmai")
node1.wait_for_open_port(80)
output = node1.succeed("curl localhost")
'';
}