From d9ba574662f961422dc132d6d48789d5117e1526 Mon Sep 17 00:00:00 2001 From: Michal Kalinowski Date: Sun, 13 Aug 2023 20:06:43 +0200 Subject: [PATCH] fix: always use `LocalOnlyGitRepo` source with `dry_run` command --- CHANGELOG.md | 1 + lib/danger/danger_core/environment_manager.rb | 2 ++ .../danger_core/environment_manager_spec.rb | 17 +++++++++++++++++ spec/support/ci_helper.rb | 8 ++++++++ 4 files changed, 28 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62648528..e2fb8460 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ## master +* Always use `LocalOnlyGitRepo` source with `dry_run` command - [@imaginaris](https://github.com/imaginaris) [#1452](https://github.com/danger/danger/pull/1452) ## 9.4.3 diff --git a/lib/danger/danger_core/environment_manager.rb b/lib/danger/danger_core/environment_manager.rb index efe5c0cd..36f38625 100644 --- a/lib/danger/danger_core/environment_manager.rb +++ b/lib/danger/danger_core/environment_manager.rb @@ -7,6 +7,8 @@ class EnvironmentManager # Finds a Danger::CI class based on the ENV def self.local_ci_source(env) + return Danger::LocalOnlyGitRepo if LocalOnlyGitRepo.validates_as_ci? env + CI.available_ci_sources.find { |ci| ci.validates_as_ci? env } end diff --git a/spec/lib/danger/danger_core/environment_manager_spec.rb b/spec/lib/danger/danger_core/environment_manager_spec.rb index c68b7142..9228b8cd 100644 --- a/spec/lib/danger/danger_core/environment_manager_spec.rb +++ b/spec/lib/danger/danger_core/environment_manager_spec.rb @@ -115,6 +115,23 @@ expect(Danger::EnvironmentManager.local_ci_source(system_env)).to eq nil end end + + context "when Local Only Git Repo is valid" do + it "loads Local Only Git Repo" do + with_localonlygitrepo_setup do |system_env| + expect(described_class.local_ci_source(system_env)).to eq Danger::LocalOnlyGitRepo + end + end + + it "loads Local Only Git Repo ignoring other valid sources" do + with_bitrise_setup_and_is_a_pull_request do |system_env_bitrise| + with_localonlygitrepo_setup do |system_env_local_only| + system_env = system_env_bitrise.merge(system_env_local_only) + expect(described_class.local_ci_source(system_env)).to eq Danger::LocalOnlyGitRepo + end + end + end + end end describe ".pr?" do diff --git a/spec/support/ci_helper.rb b/spec/support/ci_helper.rb index 6c20cb53..2b5d1edb 100644 --- a/spec/support/ci_helper.rb +++ b/spec/support/ci_helper.rb @@ -145,6 +145,14 @@ def with_localgitrepo_setup yield(system_env) end + def with_localonlygitrepo_setup + system_env = { + "DANGER_USE_LOCAL_ONLY_GIT" => "true" + } + + yield(system_env) + end + def with_screwdriver_setup_and_is_a_pull_request system_env = { "SCREWDRIVER" => "true",