Select Git revision
index.spec.ts 12.65 KiB
import { join } from 'upath';
import { fs, getName, loadFixture, mocked } from '../../../../test/util';
import { setAdminConfig } from '../../../config/admin';
import { getPkgReleases } from '../../../datasource';
import type { UpdateArtifactsConfig } from '../../types';
import { TerraformProviderHash } from './hash';
import { updateArtifacts } from './index';
// auto-mock fs
jest.mock('../../../util/fs');
jest.mock('./hash');
jest.mock('../../../datasource');
const config = {
constraints: {},
};
const adminConfig = {
// `join` fixes Windows CI
localDir: join('/tmp/github/some/repo'),
cacheDir: join('/tmp/renovate/cache'),
};
const validLockfile = loadFixture('validLockfile.hcl');
const mockHash = mocked(TerraformProviderHash).createHashes;
const mockGetPkgReleases = getPkgReleases as jest.MockedFunction<
typeof getPkgReleases
>;
describe(getName(), () => {
beforeEach(() => {
jest.resetAllMocks();
jest.resetModules();
setAdminConfig(adminConfig);
});
afterEach(() => {
delete process.env.RENOVATE_X_TERRAFORM_LOCK_FILE;
});
it('returns null if no .terraform.lock.hcl found', async () => {
fs.readLocalFile.mockResolvedValueOnce(null);
process.env.RENOVATE_X_TERRAFORM_LOCK_FILE = 'test';
expect(
await updateArtifacts({
packageFileName: 'main.tf',
updatedDeps: [{ depName: 'aws' }],
newPackageFileContent: '',
config,
})
).toBeNull();
});
it('returns null if .terraform.lock.hcl is empty', async () => {
fs.readLocalFile.mockResolvedValueOnce('empty' as any);
process.env.RENOVATE_X_TERRAFORM_LOCK_FILE = 'test';
expect(
await updateArtifacts({
packageFileName: 'main.tf',
updatedDeps: [{ depName: 'aws' }],
newPackageFileContent: '',
config,
})
).toBeNull();
});