| Test |
Duration |
Result |
| a branch cannot disable its bwrap sandbox or substitute a foreign rootfs through a build definition |
0.002s |
passed |
| a branch cannot raise the concurrency limit or reach the sandbox policy through a build definition |
0.002s |
passed |
| a branch may redefine the builds section for its own builds |
0.001s |
passed |
| a branch whose config is committed under the pre-rename name is still read as the branch layer |
0.002s |
passed |
| a branch writing its trigger flat fails only its own builds |
0.001s |
passed |
| a build the branch invents inherits the host's sandbox policy |
0.001s |
passed |
| a config that needs a newer Werkator is refused, naming the file and both versions |
0.003s |
passed |
| a config within its declared range loads, and exceeding only the ceiling still loads |
0.021s |
passed |
| a leftover builds.maxConcurrent is ignored instead of failing the config |
0.002s |
passed |
| a trigger key written outside the trigger block is refused, naming the definition |
0.002s |
passed |
| an exclusion pattern takes a branch out of a build that would otherwise select it |
0.002s |
passed |
| an exclusion wins over a matching pattern, whatever their order |
0.001s |
passed |
| an explicit builds.default entry overrides the implicit default build |
0.001s |
passed |
| an incompatible branch config is refused as the branch's problem, not the server's |
0.011s |
passed |
| applyInstanceFragment installs a valid fragment verbatim, and re-applying replaces it |
0.006s |
passed |
| applyInstanceFragment refuses a missing or empty fragment |
0.001s |
passed |
| applyInstanceFragment refuses an unknown key loudly instead of installing a silent no-op |
0.012s |
passed |
| branch-specific buildCommand overrides branches.default |
0.001s |
passed |
| branch-specific config inherits from branches.default |
0.002s |
passed |
| branches is honored while no build is defined and ignored as soon as one is |
0.005s |
passed |
| builds.default is the base of every other build, but never its trigger |
0.001s |
passed |
| empty publicBaseUrl defaults to https://<nginx.serverName>/ when set |
0.003s |
passed |
| enabling both docker and bwrap on a build is rejected, not picked silently |
0.002s |
passed |
| explicit publicBaseUrl wins over the nginx.serverName default |
0.001s |
passed |
| falls back to the pre-rename .gittally.yml at the repository root |
0.001s |
passed |
| falls back to the pre-rename machine config under .git/gittally |
0.001s |
passed |
| finds the machine config left under its old name in an already-moved directory |
0.001s |
passed |
| loadForWorktree falls back to .git over project when the worktree sets nothing |
0.001s |
passed |
| loadForWorktree lets the worktree override build config (worktree > .git > project) |
0.001s |
passed |
| loadForWorktree pins secrets and the docker sandbox policy to .git, but allows docker.image |
0.001s |
passed |
| loadForWorktree without a worktree config equals load |
0.001s |
passed |
| loadRaw only returns explicitly set values |
0.001s |
passed |
| loadRaw returns empty map when no config files exist |
0.002s |
passed |
| loadWithBranchLayer applies a branch config read from git, pinning the same keys |
0.001s |
passed |
| loadWithBranchLayer without a branch config equals load |
0.002s |
passed |
| publicBaseUrl stays empty without an nginx.serverName |
0s |
passed |
| reads executor.maxConcurrent and defaults it to 1 |
0.001s |
passed |
| reads gitea config from .werkator.yml |
0.017s |
passed |
| repo install config overrides project config for same keys |
0.001s |
passed |
| returns defaults when no config files exist |
0.002s |
passed |
| the applied instance fragment layers above the project config and below the machine config |
0.001s |
passed |
| the builds section holds named build definitions |
0.003s |
passed |
| the current name wins where both exist, so a half-done rename is not merged |
0.001s |
passed |
| the home config carries the registry, and its defaults sit below every repository layer |
0.027s |
passed |
| the home config is version-checked like every other file |
0.192s |
passed |
| the machine config is checked as its own file |
0.004s |
passed |
| toYaml serializes WerkatorConfig with all sections |
0.010s |
passed |
| with a home config the instance keys come from it alone, and a repository's copies are ignored |
0.015s |
passed |
| without a home config the instance is null and the repository layers are read as before |
0.001s |
passed |