Files
renovate/lib/modules/manager/pre-commit/index.spec.ts
Michael Kriese 312c380926 test(manager): cover the pre-commit warning switch and drop unreachable fallbacks (#46221)
* fix(util/http): make the legacy `headers` getter configurable

Every other property defined on `HttpError.prototype` in this file is
`configurable`, but `headers` was not. That makes the module fail with
`TypeError: Cannot redefine property: headers` whenever a test resets the
module registry and re-imports anything that pulls in `got.ts`.

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

* test(manager/pre-commit): cover the suppress-warning env var

`defaultConfig.prBodyNotes` drops the unsupported-manager warning when
`RENOVATE_X_SUPPRESS_PRE_COMMIT_WARNING` is set. Since the value is
computed at module load, the new spec resets the module registry and
re-imports the manager with the variable stubbed.

The `istanbul ignore next` on that arm is dropped because the branch is
now exercised.

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

* refactor(manager): remove unreachable fallbacks

Drop three defensive fallbacks that can never be taken:

- `docker-compose`: `config.services ?? config` always yields an object,
  so the `|| {}` guard behind it is dead
- `git-submodules`: `git.raw()` resolves to a string, so the `?? ''`
  never applies
- `maven`: the only site that builds a `MavenProp` always passes a
  `packageFile` string, so narrow the type and drop the `?? undefined`

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:02 +00:00

22 lines
749 B
TypeScript

describe('modules/manager/pre-commit/index', () => {
async function loadDefaultConfig(): Promise<
(typeof import('./index.ts'))['defaultConfig']
> {
vi.resetModules();
const module = await import('./index.ts');
return module.defaultConfig;
}
it('warns about the unsupported manager by default', async () => {
const { prBodyNotes } = await loadDefaultConfig();
expect(prBodyNotes).toHaveLength(1);
expect(prBodyNotes[0]).toContain('not supported by the `pre-commit`');
});
it('suppresses the warning when the env var is set', async () => {
vi.stubEnv('RENOVATE_X_SUPPRESS_PRE_COMMIT_WARNING', 'true');
const { prBodyNotes } = await loadDefaultConfig();
expect(prBodyNotes).toBeEmpty();
});
});