From 29b701ab9792df0c725777e848e045ca09d02c7d Mon Sep 17 00:00:00 2001 From: Michael Kriese <michael.kriese@visualon.de> Date: Tue, 28 Apr 2020 08:30:42 +0200 Subject: [PATCH] fix(internal): respect dry-run (#6071) --- .../repository/finalise/validate.spec.ts | 16 ++++++++++++ lib/workers/repository/finalise/validate.ts | 25 +++++++++++++------ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/lib/workers/repository/finalise/validate.spec.ts b/lib/workers/repository/finalise/validate.spec.ts index 88c1016606..60ee04463c 100644 --- a/lib/workers/repository/finalise/validate.spec.ts +++ b/lib/workers/repository/finalise/validate.spec.ts @@ -93,5 +93,21 @@ describe('workers/repository/validate', () => { expect(platform.ensureComment).toHaveBeenCalledTimes(0); expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(1); }); + + it('validates successfully (dry-run)', async () => { + platform.getPrList.mockResolvedValueOnce([ + { + state: PR_STATE_OPEN, + branchName: 'some/branch', + title: 'Update Renovate', + }, + ]); + platform.getPrFiles.mockResolvedValueOnce(['renovate.json']); + platform.getFile.mockResolvedValue('{}'); + await validate.validatePrs({ dryRun: true }); + expect(platform.setBranchStatus).toHaveBeenCalledTimes(0); + expect(platform.ensureComment).toHaveBeenCalledTimes(0); + expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(0); + }); }); }); diff --git a/lib/workers/repository/finalise/validate.ts b/lib/workers/repository/finalise/validate.ts index d32074f3d4..2f4899276a 100644 --- a/lib/workers/repository/finalise/validate.ts +++ b/lib/workers/repository/finalise/validate.ts @@ -73,6 +73,7 @@ export async function validatePrs(config: RenovateConfig): Promise<void> { ? /* istanbul ignore next */ parsed.renovate || parsed['renovate-config'] : parsed; + // istanbul ignore else if (toValidate) { logger.debug({ config: toValidate }, 'Validating config'); const { errors } = await migrateAndValidate(config, toValidate); @@ -105,18 +106,28 @@ export async function validatePrs(config: RenovateConfig): Promise<void> { } else { description = `Renovate config is valid`; status = BranchStatus.green; - await platform.ensureCommentRemoval(pr.number, topic); + if (config.dryRun) { + logger.info( + `DRY-RUN: Would ensure validation comment removal in PR #${pr.number}` + ); + } else { + await platform.ensureCommentRemoval(pr.number, topic); + } } // istanbul ignore else if (pr.sourceRepo === config.repository) { logger.debug({ status, description }, 'Setting PR validation status'); const context = `renovate/validate`; - await platform.setBranchStatus({ - branchName: pr.branchName, - context, - description, - state: status, - }); + if (config.dryRun) { + logger.info(`DRY-RUN: Would set branch status in PR #${pr.number}`); + } else { + await platform.setBranchStatus({ + branchName: pr.branchName, + context, + description, + state: status, + }); + } } else { logger.debug('Skipping branch status for forked PR'); } -- GitLab