From 6d938b76ec4e73cb97cf7a65daa21a6d708ed84a Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Fri, 4 Jan 2019 11:28:02 -0800 Subject: fix global state pollution issues across examples since classes are global state, having a single TestCLI class that threads through all the examples creates state pollution that can cause ordering problems. solve this by rewiring TestCLI to a new class every single time. Signed-off-by: Lamont Granquist --- spec/mixlib/cli_spec.rb | 2 +- spec/spec_helper.rb | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/spec/mixlib/cli_spec.rb b/spec/mixlib/cli_spec.rb index ed890b5..8c77703 100644 --- a/spec/mixlib/cli_spec.rb +++ b/spec/mixlib/cli_spec.rb @@ -1,6 +1,6 @@ # # Author:: Adam Jacob () -# Copyright:: Copyright (c) 2008-2016 Chef Software, Inc. +# Copyright:: Copyright (c) 2008-2018, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6f3d7e2..ffbde8a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,10 +3,6 @@ $:.push File.join(File.dirname(__FILE__), "..", "lib") require "mixlib/cli" -class TestCLI - include Mixlib::CLI -end - RSpec.configure do |config| # Use documentation format config.formatter = "doc" @@ -23,4 +19,12 @@ RSpec.configure do |config| config.filter_run focus: true config.run_all_when_everything_filtered = true config.warnings = true + + config.before(:each) do + # create a fresh TestCLI class on every example, so that examples never + # pollute global variables and create ordering issues + Object.send(:remove_const, "TestCLI") if Object.const_defined?("TestCLI") + TestCLI = Class.new + TestCLI.send(:include, Mixlib::CLI) + end end -- cgit v1.2.1 From 07413be043aaacd977b25811a8bc0e5645941fad Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Fri, 4 Jan 2019 11:31:09 -0800 Subject: fix copyright Signed-off-by: Lamont Granquist --- spec/mixlib/cli_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/mixlib/cli_spec.rb b/spec/mixlib/cli_spec.rb index 8c77703..aa08744 100644 --- a/spec/mixlib/cli_spec.rb +++ b/spec/mixlib/cli_spec.rb @@ -1,6 +1,6 @@ # # Author:: Adam Jacob () -# Copyright:: Copyright (c) 2008-2018, Chef Software Inc. +# Copyright:: Copyright (c) 2008-2019, Chef Software Inc. # License:: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); -- cgit v1.2.1