ConfigLoaderTest

49

tests

0

failures

0

ignored

0.374s

duration

100%

successful

Tests

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

Standard output

Creating nstance of class de.hoennig.werkator.config.ConfigLoaderTest
2026-09-03T16:01:40.959Z  WARN 144 --- [-2098390105#239] d.hoennig.werkator.config.ConfigLoader   : no build defines onPush or atTimes; the watcher will never start a build on its own
2026-09-03T16:01:40.996Z  WARN 144 --- [-2098390105#242] d.hoennig.werkator.config.ConfigLoader   : ignoring server, watcher.pollInterval in /tmp/werkator-test11255168866416011348/.werkator.yml: these are instance settings and come from /tmp/werkator-home16272050943725360664/.werkator.yml now
2026-09-03T16:01:40.997Z  WARN 144 --- [-2098390105#242] d.hoennig.werkator.config.ConfigLoader   : ignoring executor in /tmp/werkator-test11255168866416011348/.git/werkator/.werkator.yml: these are instance settings and come from /tmp/werkator-home16272050943725360664/.werkator.yml now
2026-09-03T16:01:41.246Z  WARN 144 --- [-2098390105#252] d.hoennig.werkator.config.ConfigLoader   : .werkator.yml was released for Werkator below 1.0 (werkator.version.below), this is 1.4.0
2026-09-03T16:01:41.277Z  WARN 144 --- [-2098390105#255] d.hoennig.werkator.config.ConfigLoader   : ignoring builds.maxConcurrent; the concurrency limit is executor.maxConcurrent since v0.9.15
2026-09-03T16:01:41.301Z  WARN 144 --- [-2098390105#266] d.hoennig.werkator.config.ConfigLoader   : ignoring the branches section: this configuration defines builds, and a build definition carries its own settings; move what is still needed into builds — branches is going away