nixpkgs/nixos/tests/kimai.nix
Ratchanan Srirattanamet 1422ed8801 kimai: fix bundled assets missing
We were relying on `composerNoScripts = false` to make sure post-install
command `assets:install` is run. `assets:install` copies assets from
`vendor/` directory into `public/` directory, placing it in appropriate
places.

However, with commit 80bb9aec24 ("kimai: switch to buildComposerProject2
and tag"), we switched to `buildComposerProject2` which has moved
`composer install` step to `composerVendor` derivation. By design,
`composerVendor` ignores anything that happens outside `vendor/`, so
the assets was not copied into final derivation.

So stop relying on `composerNoScripts = false` and run `assets:install`
ourselves in `postInstall` step. A side effect of this is that there is
another post-install step being skipped (`cache:clear`). However we
simply handle caches outside of the derivation (it's handled in the
module), so that's not a problem.

Fixes: https://github.com/NixOS/nixpkgs/issues/442208
2025-10-05 02:19:10 +07:00

25 lines
651 B
Nix

{ lib, ... }:
{
name = "kimai";
meta.maintainers = with lib.maintainers; [ peat-psuwit ];
nodes.machine =
{ ... }:
{
services.kimai.sites."localhost" = {
database.createLocally = true;
};
};
testScript = ''
machine.wait_for_unit("phpfpm-kimai-localhost.service")
machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80)
machine.succeed("curl -v --location --fail http://localhost/")
# Make sure bundled assets are served.
# https://github.com/NixOS/nixpkgs/issues/442208
machine.succeed("curl -v --location --fail http://localhost/bundles/tabler/tabler.css")
'';
}