| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | ENV['RACK_ENV'] ||= 'test' | 
					
						
							|  |  |  | require 'byebug' | 
					
						
							|  |  |  | require 'factory_girl' | 
					
						
							|  |  |  | require 'active_support/core_ext/hash/indifferent_access' | 
					
						
							|  |  |  | require 'active_support/inflector' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | def suppress_output! | 
					
						
							|  |  |  |   original_stdout = $stdout | 
					
						
							|  |  |  |   $stdout = File.open(File::NULL, "w") | 
					
						
							|  |  |  |   RSpec.configure do |config| | 
					
						
							|  |  |  |     config.after(:all) do | 
					
						
							|  |  |  |       $stdout = original_stdout | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | def check_coverage | 
					
						
							|  |  |  |   require 'simplecov' | 
					
						
							| 
									
										
										
										
											2016-01-21 21:21:27 +03:00
										 |  |  |   if ENV['JENKINS'] | 
					
						
							|  |  |  |     require 'simplecov-rcov' | 
					
						
							|  |  |  |     SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  |   SimpleCov.start do | 
					
						
							|  |  |  |     add_filter { |src| src.filename =~ /spec\// } | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							| 
									
										
										
										
											2015-11-20 18:31:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | def require_devops_and_support_files | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  |   root = File.join(File.dirname(__FILE__), "..") | 
					
						
							|  |  |  |   $LOAD_PATH.push root unless $LOAD_PATH.include?(root) | 
					
						
							|  |  |  |   Dir[("#{root}/spec/support/**/*.rb")].each { |f| require f } | 
					
						
							|  |  |  |   Dir[("#{root}/spec/shared_contexts/**/*.rb")].each { |f| require f } | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |   require "#{root}/core/devops-service" | 
					
						
							|  |  |  |   DevopsConfig.read | 
					
						
							|  |  |  |   Devops::Db.init(ENV['RACK_ENV']) | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | def setup_factory_girl | 
					
						
							|  |  |  |   FactoryGirl.define do | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |     initialize_with { new(attributes.stringify_keys) } | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  |   end | 
					
						
							|  |  |  |   FactoryGirl.find_definitions | 
					
						
							|  |  |  |   RSpec.configure { |config| config.include FactoryGirl::Syntax::Methods } | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | # extra configuration | 
					
						
							|  |  |  | suppress_output! | 
					
						
							|  |  |  | check_coverage if ENV['COVERAGE'] | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  | require_devops_and_support_files | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | setup_factory_girl | 
					
						
							| 
									
										
										
										
											2015-11-20 18:31:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-14 16:27:07 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # RSpec configuration | 
					
						
							|  |  |  | RSpec.configure do |config| | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  |   # rspec-expectations config goes here. You can use an alternate | 
					
						
							|  |  |  |   # assertion/expectation library such as wrong or the stdlib/minitest | 
					
						
							|  |  |  |   # assertions if you prefer. | 
					
						
							|  |  |  |   config.expect_with :rspec do |expectations| | 
					
						
							|  |  |  |     expectations.include_chain_clauses_in_custom_matcher_descriptions = true | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # rspec-mocks config goes here. You can use an alternate test double | 
					
						
							|  |  |  |   # library (such as bogus or mocha) by changing the `mock_with` option here. | 
					
						
							|  |  |  |   config.mock_with :rspec do |mocks| | 
					
						
							|  |  |  |     # Prevents you from mocking or stubbing a method that does not exist on | 
					
						
							|  |  |  |     # a real object. This is generally recommended, and will default to | 
					
						
							|  |  |  |     # `true` in RSpec 4. | 
					
						
							|  |  |  |     mocks.verify_partial_doubles = true | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Allows RSpec to persist some state between runs in order to support | 
					
						
							|  |  |  |   # the `--only-failures` and `--next-failure` CLI options. We recommend | 
					
						
							|  |  |  |   # you configure your source control system to ignore this file. | 
					
						
							|  |  |  |   config.example_status_persistence_file_path = "spec/examples.txt" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Limits the available syntax to the non-monkey patched syntax that is | 
					
						
							|  |  |  |   # recommended. For more details, see: | 
					
						
							|  |  |  |   #   - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax | 
					
						
							|  |  |  |   #   - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/ | 
					
						
							|  |  |  |   #   - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching | 
					
						
							|  |  |  |   config.disable_monkey_patching! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Many RSpec users commonly either run the entire suite or an individual | 
					
						
							|  |  |  |   # file, and it's useful to allow more verbose output when running an | 
					
						
							|  |  |  |   # individual spec file. | 
					
						
							|  |  |  |   if config.files_to_run.one? | 
					
						
							|  |  |  |     # Use the documentation formatter for detailed output, | 
					
						
							|  |  |  |     # unless a formatter has already been configured | 
					
						
							|  |  |  |     # (e.g. via a command-line flag). | 
					
						
							|  |  |  |     config.default_formatter = 'doc' | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Print the 10 slowest examples and example groups at the | 
					
						
							|  |  |  |   # end of the spec run, to help surface which specs are running | 
					
						
							|  |  |  |   # particularly slow. | 
					
						
							|  |  |  |   # config.profile_examples = 10 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Run specs in random order to surface order dependencies. If you find an | 
					
						
							|  |  |  |   # order dependency and want to debug it, you can fix the order by providing | 
					
						
							|  |  |  |   # the seed, which is printed after each run. | 
					
						
							|  |  |  |   #     --seed 1234 | 
					
						
							| 
									
										
										
										
											2018-04-04 22:44:39 +03:00
										 |  |  |   config.order = :defined | 
					
						
							| 
									
										
										
										
											2015-11-03 11:46:54 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # Seed global randomization in this process using the `--seed` CLI option. | 
					
						
							|  |  |  |   # Setting this allows you to use `--seed` to deterministically reproduce | 
					
						
							|  |  |  |   # test failures related to randomization by passing the same `--seed` value | 
					
						
							|  |  |  |   # as the one that triggered the failure. | 
					
						
							|  |  |  |   Kernel.srand config.seed | 
					
						
							|  |  |  | end |