diff --git a/config/application.yml.example b/config/application.yml.example index e0bd14e2fb5e193a182e701aa767691cb2f213a4..4c5588576389fd8ae8c5580a9e999316f79077fd 100644 --- a/config/application.yml.example +++ b/config/application.yml.example @@ -180,7 +180,6 @@ production: <<: *defaults mount_resque_web: false - # # Do not touch unless you know what you're doing # @@ -192,7 +191,6 @@ test: enable_splunk_logging: false open_invitations: true - integration_1: <<: *defaults pod_url: "http://localhost:45789" diff --git a/multi-server-spec-Procfile b/multi-server-spec-Procfile new file mode 100644 index 0000000000000000000000000000000000000000..b75b3c7a5dbed1601e5a6629df76280788167029 --- /dev/null +++ b/multi-server-spec-Procfile @@ -0,0 +1,2 @@ +integration_1: bundle exec thin start -e integration_1 -p 45789 +integration_2: bundle exec thin start -e integration_2 -p 34658 diff --git a/spec/multi_server/comment_spec.rb b/spec/multi_server/comment_spec.rb index 0b351b51f1f3e5fe0fc94a7d9fad4be1cb166492..56ca77e2401bf7de49d828d56a2322a49ae2476a 100644 --- a/spec/multi_server/comment_spec.rb +++ b/spec/multi_server/comment_spec.rb @@ -5,21 +5,14 @@ require 'spec_helper' unless Server.all.empty? describe "commenting" do before(:all) do - WebMock::Config.instance.allow_localhost = true - enable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #Server.all.each{|s| s.run} + Server.start end after(:all) do - disable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #sleep(1) - #Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?} - WebMock::Config.instance.allow_localhost = false + Server.stop end before do - Server.all.each{|s| s.truncate_database; } + Server.truncate_databases @post = nil Server[0].in_scope do poster = Factory.create(:user_with_aspect, :username => "poster") diff --git a/spec/multi_server/post_spec.rb b/spec/multi_server/post_spec.rb index 25111268429f33611812274ecca4f2113ce24b6a..70116a4d0cfaa894095fe65b2b2aa477f27b243b 100644 --- a/spec/multi_server/post_spec.rb +++ b/spec/multi_server/post_spec.rb @@ -3,21 +3,14 @@ require 'spec_helper' unless Server.all.empty? describe "commenting" do before(:all) do - WebMock::Config.instance.allow_localhost = true - enable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #Server.all.each{|s| s.run} + Server.start end after(:all) do - disable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #sleep(1) - #Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?} - WebMock::Config.instance.allow_localhost = false + Server.stop end before do - Server.all.each{|s| s.truncate_database; } + Server.truncate_databases @post = nil Server[0].in_scope do Factory.create(:user_with_aspect, :username => "poster") diff --git a/spec/multi_server/reshare_spec.rb b/spec/multi_server/reshare_spec.rb index 81e873e02d0bac86656267827c008c636f3970d8..14f7f3f761a727768322305f152849744486f038 100644 --- a/spec/multi_server/reshare_spec.rb +++ b/spec/multi_server/reshare_spec.rb @@ -5,21 +5,14 @@ require 'spec_helper' unless Server.all.empty? describe "reposting" do before(:all) do - WebMock::Config.instance.allow_localhost = true - enable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #Server.all.each{|s| s.run} + Server.start end after(:all) do - disable_typhoeus - #Server.all.each{|s| s.kill if s.running?} - #sleep(1) - #Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?} - WebMock::Config.instance.allow_localhost = false + Server.stop end before do - Server.all.each{|s| s.truncate_database; } + Server.truncate_databases @original_post = nil Server[0].in_scope do original_poster = Factory.create(:user_with_aspect, :username => "original_poster") diff --git a/spec/multi_server/server_spec.rb b/spec/multi_server/server_spec.rb index 35f046af3c07fee8316c8107315c50e5de35f29b..ea8dc9cfa35d27a6c01466f68780ded0de550ddc 100644 --- a/spec/multi_server/server_spec.rb +++ b/spec/multi_server/server_spec.rb @@ -4,20 +4,15 @@ require 'spec_helper' unless Server.all.empty? describe Server do before(:all) do - WebMock::Config.instance.allow_localhost = true - #Server.all.each{|s| s.kill if s.running?} - #Server.all.each{|s| s.run} + Server.start end after(:all) do - #Server.all.each{|s| s.kill if s.running?} - #sleep(1) - #Server.all.each{|s| puts "Server at port #{s.port} still running." if s.running?} - WebMock::Config.instance.allow_localhost = false + Server.stop end before do - Server.all.each{|s| s.truncate_database } + Server.truncate_databases end describe '.all' do it 'returns a server object for each server' do diff --git a/spec/support/server.rb b/spec/support/server.rb index 0432247526131e0a81e8ee24f322632cfd6209d9..d9cbaecb166152d8cf20a8e56055b43e878ab1d7 100644 --- a/spec/support/server.rb +++ b/spec/support/server.rb @@ -1,5 +1,18 @@ #This class is for running servers in the background during integration testing. This will not run on Windows. class Server + def self.start + WebMock::Config.instance.allow_localhost = true + enable_typhoeus + end + + def self.stop + disable_typhoeus + WebMock::Config.instance.allow_localhost = false + end + + def self.truncate_databases + all.each{|s| s.truncate_database } + end def self.[] index self.all[index] @@ -21,6 +34,7 @@ class Server end def ensure_database_setup + @@databases_setup = lambda { `cd #{Rails.root} && RAILS_ENV=#{@env} bundle exec rake db:create` tables_exist = self.db do ActiveRecord::Base.connection.tables.include?("users") @@ -30,6 +44,7 @@ class Server else `cd #{Rails.root} && RAILS_ENV=#{@env} bundle exec rake db:schema:load` end + true}.call end def run