Files
renovate/lib/modules/manager/proto/index.spec.ts
Rhuan Barreto e5f067ccce feat(manager): add proto manager for .prototools files (#42908)
* feat(manager): add proto manager for .prototools files

Add a new manager for moonrepo's proto tool version manager.
Proto uses .prototools (TOML) files to pin tool versions at the
directory level. The manager extracts top-level version entries
and maps them to the appropriate Renovate datasources.

Supported built-in tools: bun, deno, go, moon, node, npm, pnpm,
yarn, python, ruby, rust, proto, gh, poetry, uv.

Non-version sections ([settings], [plugins], [tools], [env],
[shell], [backends]) are correctly ignored. Version aliases
(latest, stable, canary, nightly) are skipped with appropriate
skipReason. Unknown tools are reported as unsupported-datasource.

* fix(manager): address proto manager PR review feedback

- Remove deduplicateArray/sort from supportedDatasources, sort manually
- Sort protoTooling entries alphabetically
- Inline createDependency call into deps.push()
- Inline fixture content into test, remove fixture file
2026-04-28 07:04:44 +00:00

22 lines
829 B
TypeScript

import { matchRegexOrGlobList } from '../../../util/string-match.ts';
import { defaultConfig } from './index.ts';
describe('modules/manager/proto/index', () => {
describe('managerFilePatterns', () => {
it.each`
path | expected
${'.prototools'} | ${true}
${'subdir/.prototools'} | ${true}
${'deep/nested/path/.prototools'} | ${true}
${'prototools'} | ${false}
${'.prototools.bak'} | ${false}
${'.prototools.toml'} | ${false}
${'prototools.toml'} | ${false}
`('matchRegexOrGlobList("$path") === $expected', ({ path, expected }) => {
expect(
matchRegexOrGlobList(path, defaultConfig.managerFilePatterns),
).toBe(expected);
});
});
});