Files
Michael Kriese 1ea8602aaa test(manager): reach 100% branch coverage by closing the else-if chains (#46222)
* test(manager): cover twelve else-if branches

The trailing `else if` of a chain leaves v8 counting an implicit else
that no coverage-ignore hint can suppress. Fourteen of those were marked
as structurally unreachable, but only two of them actually are -- each of
these twelve has an input that takes it:

- `bazel`: an archive url whose file name is only a suffix, which strips
  to an empty value, so neither value nor digest is set
- `cargo`: a `[package]` section with no `version` at all
- `composer`: an inline `package` repository, which the discriminated
  union does carry, contrary to the comment that claimed otherwise
- `deps-edn`: an `:mvn/repos` entry whose spec is a plain string
- `gomod`: an update where only the `go` directive changed, leaving no
  additional dependencies to count
- `helmfile`: a release with an empty chart name, which is neither a
  local path nor an oci ref and yields an empty repo name
- `nuget`: a lock file that is gone after the restore
- `swift`: a comma where `from` expects a colon, and where `from:`
  expects a version -- both are labels the state machine searches for and
  then ignores
- `terraform`: a module source too short to be a registry module
- `tflint-plugin`: a quoted attribute that is neither version nor source
- `travis`: a matrix `node_js` that is a number

The stale comments go with them. Three more in `swift` were already
wrong before this change: the branches they described were covered.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>

* refactor(manager): collapse two exhaustive else-if chains

`glasskube` and `gradle` were the only two of the fourteen trailing
`else if` branches that really are unreachable, and both are provable
from a type rather than from a reading of the surrounding code:

- `glasskube` parses resources with a schema that admits exactly
  `Package`, `ClusterPackage` and `PackageRepository`, and filters
  anything else out
- `gradle`'s `ContentDescriptorSpec.mode` is `'include' | 'exclude'`

Turning the final `else if` into a plain `else` drops the phantom branch
v8 was counting. With these, the manager tree reaches 100% branch
coverage. The glasskube check is inverted so that the single-literal
discriminant narrows for the compiler.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>

* test(manager/travis): inline the numeric node_js fixture

The three-line fixture went into `__fixtures__` only because every other
fixture in this spec is loaded through `Fixtures.get`. A reader of the
test should be able to see the input without opening a second file, so
write it inline with `codeBlock`.

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>

---------

Co-authored-by: Claude Opus 5 <michael.kriese+claude-code@mend.io>
2026-09-16 06:43:03 +00:00
..
2022-03-04 09:04:02 +01:00
2022-03-04 09:04:02 +01:00

This manager is intended to keep Travis config files (.travis.yml) up-to-date, this file controls the CI build environment. Currently Renovate can only update the node_js section of this file.

Renovate "understands" Travis's Build Matrix concept as well, so it will try to update all found Node.js versions to the latest LTS, e.g.

node_js:
-  - 8.10.0
-  - 10.10.0
+  - 16.13.0
+  - 16.13.0

Due to this, major updates for Travis are disabled by default. If you enable major updates and use a version matrix, then you will likely need to manually fix any major update PRs raised by Renovate. Here's how to enable major updates in your Renovate config:

{
  "travis": {
    "major": {
      "enabled": true
    }
  }
}