import upath from 'upath'; import { GlobalConfig } from '../../../config/global.ts'; import type { InternalGlobalConfigOptions, RepoGlobalConfig, UpdateType, } from '../../../config/types.ts'; import * as terraformLockfile from '../terraform/lockfile/index.ts'; import type { UpdateArtifactsConfig } from '../types.ts'; import { updateArtifacts } from './artifacts.ts'; vi.mock('../terraform/lockfile/index.ts'); const config = { constraints: {}, }; const adminConfig: RepoGlobalConfig & InternalGlobalConfigOptions = { // `join` fixes Windows CI localDir: upath.join('/tmp/github/some/repo'), cacheDir: upath.join('/tmp/renovate/cache'), containerbaseDir: upath.join('/tmp/renovate/cache/containerbase'), binarySource: 'global', }; describe('modules/manager/terragrunt/artifacts', () => { const updateTypes: UpdateType[] = [ 'digest', 'pin', 'rollback', 'patch', 'minor', 'major', 'replacement', 'pinDigest', 'lockfileUpdate', 'bump', ]; beforeEach(() => { GlobalConfig.set(adminConfig); }); it('calls terraform updateArtifacts if the update type is lockfileMaintenance', async () => { const localConfig: UpdateArtifactsConfig = { isLockFileMaintenance: true, ...config, }; const param = { packageFileName: '', updatedDeps: [], newPackageFileContent: '', config: localConfig, }; await updateArtifacts(param); expect(terraformLockfile.updateArtifacts).toHaveBeenCalledExactlyOnceWith( param, ); }); it.each(updateTypes)( 'does not call terraform updateArtifacts if the update type is %s', async (updateType) => { const localConfig: UpdateArtifactsConfig = { updateType, ...config, }; await updateArtifacts({ packageFileName: '', updatedDeps: [], newPackageFileContent: '', config: localConfig, }); expect(terraformLockfile.updateArtifacts).not.toHaveBeenCalled(); }, ); });