From 2d8be3fa477b0e65a85db495fa6e4b685832c076 Mon Sep 17 00:00:00 2001 From: Tim Sharpe Date: Thu, 23 Nov 2017 10:28:40 +1100 Subject: [PATCH] (maint) Update PDK::Test::Unit.parallel_with_no_tests? for PSH #216 changes --- lib/pdk/tests/unit.rb | 4 ++-- spec/unit/pdk/test/unit_spec.rb | 40 +++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/lib/pdk/tests/unit.rb b/lib/pdk/tests/unit.rb index b366b87c5..c4e30ec3e 100644 --- a/lib/pdk/tests/unit.rb +++ b/lib/pdk/tests/unit.rb @@ -31,8 +31,8 @@ def self.rake(task, spinner_text, environment = {}) def self.parallel_with_no_tests?(ran_in_parallel, json_result, result) ran_in_parallel && json_result.empty? && - !result[:exit_code].zero? && - result[:stderr].strip =~ %r{Pass files or folders to run$} + ((!result[:exit_code].zero? && result[:stderr].strip =~ %r{Pass files or folders to run$}) || + result[:stderr].strip =~ %r{No files for parallel_spec to run against$}) end def self.print_failure(result, exception) diff --git a/spec/unit/pdk/test/unit_spec.rb b/spec/unit/pdk/test/unit_spec.rb index 224f5fc3c..5712b04a4 100644 --- a/spec/unit/pdk/test/unit_spec.rb +++ b/spec/unit/pdk/test/unit_spec.rb @@ -17,14 +17,40 @@ end describe '.parallel_with_no_tests?' do - context 'when not parallel' do - it 'is false' do - result = { - stderr: 'Pass files or folders to run', - exit_code: 1, - } + subject { described_class.parallel_with_no_tests?(ran_in_parallel, json_result, cmd_result) } + + let(:json_result) { [] } + let(:cmd_result) { { stderr: '', stdout: '', exit_code: 1 } } + + context 'when not run in parallel' do + let(:ran_in_parallel) { false } + + it { is_expected.to be_falsey } + end + + context 'when run in parallel' do + let(:ran_in_parallel) { true } + + context 'and no tests (puppetlabs_spec_helper <= 2.5.0)' do + let(:cmd_result) do + { stderr: 'Pass files or folders to run', stdout: '', exit_code: 1} + end + + it { is_expected.to be_truthy } + end + + context 'and no tests (puppetlabs_spec_helper >= 2.5.1' do + let(:cmd_result) do + { stderr: 'No files for parallel_spec to run against', stdout: '', exit_code: 0 } + end + + it { is_expected.to be_truthy } + end + + context 'and there are tests' do + let(:json_result) { ['something'] } - expect(described_class.parallel_with_no_tests?(false, ['json_result'], result)).to be(false) + it { is_expected.to be_falsey } end end end