summaryrefslogtreecommitdiff
path: root/spec/support
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-09-10 15:40:15 -0600
committermo khan <mo.khan@gmail.com>2020-09-10 15:40:15 -0600
commit60e0be6501010961a8e6ac3248d2b0c976e75cda (patch)
treedd272f7ae019f9aed0142f200fd4aa178327c2ba /spec/support
parent0304f8eb79a179332945e1c952d22df4e20ea839 (diff)
refactor: start proxy server before tests
Diffstat (limited to 'spec/support')
-rw-r--r--spec/support/integration_test_helper.rb6
-rw-r--r--spec/support/proxy_helper.rb23
2 files changed, 22 insertions, 7 deletions
diff --git a/spec/support/integration_test_helper.rb b/spec/support/integration_test_helper.rb
index ec92fb8..7033799 100644
--- a/spec/support/integration_test_helper.rb
+++ b/spec/support/integration_test_helper.rb
@@ -4,10 +4,4 @@ module IntegrationTestHelper
def runner(*args)
@runner ||= ProjectHelper.new(*args)
end
-
- def add_host(name, ip)
- return if system("grep #{name} /etc/hosts")
-
- system("echo '#{ip} #{name}' >> /etc/hosts")
- end
end
diff --git a/spec/support/proxy_helper.rb b/spec/support/proxy_helper.rb
index 63b3910..8238167 100644
--- a/spec/support/proxy_helper.rb
+++ b/spec/support/proxy_helper.rb
@@ -1,15 +1,26 @@
# frozen_string_literal: true
module ProxyHelper
+ DOMAINS = [
+ 'composer.test',
+ 'goproxy.test',
+ 'maven.test',
+ 'npm.test',
+ 'nuget.test',
+ 'pypi.test',
+ 'rubygems.test'
+ ].freeze
+
def x509_certificate(host)
License::Management.root.join("tmp/#{host}.crt")
end
def generate_self_signed_certificate_for(host)
Dir.chdir License::Management.root.join('tmp') do
+ subject_alternative_names = DOMAINS.map { |x| "DNS:#{x}" }.join(',')
system([
"rm -f #{host}.*",
- "/usr/bin/openssl req -x509 -newkey rsa:4096 -keyout #{host}.key -out #{host}.crt -days 999 -nodes -subj '/C=/ST=/L=/O=/OU=/CN=*.test' -addext 'subjectAltName=DNS:nuget.test,DNS:rubygems.test,DNS:goproxy.test,DNS:maven.test,DNS:pypi.test,DNS:npm.test,DNS:composer.test'",
+ "/usr/bin/openssl req -x509 -newkey rsa:4096 -keyout #{host}.key -out #{host}.crt -days 999 -nodes -subj '/C=/ST=/L=/O=/OU=/CN=*.test' -addext 'subjectAltName=#{subject_alternative_names}'",
"cat #{host}.* > #{host}.pem"
].join("&&"))
end
@@ -18,11 +29,18 @@ module ProxyHelper
def start_proxy_server
@proxy_server_pid ||=
begin
+ DOMAINS.each { |domain| add_host(domain, '127.0.0.1') }
generate_self_signed_certificate_for('wildcard.test')
spawn("/usr/sbin/haproxy -f #{fixture_file('haproxy.cfg')}")
end
end
+ def add_host(name, ip)
+ return if system("grep #{name} /etc/hosts")
+
+ system("echo '#{ip} #{name}' >> /etc/hosts")
+ end
+
def stop_proxy_server
return if !defined?(@proxy_server_pid) || @proxy_server_pid.nil?
@@ -34,6 +52,9 @@ end
RSpec.configure do |config|
config.include(ProxyHelper, type: :integration)
+ config.before(:example, type: :integration) do
+ start_proxy_server
+ end
config.after(:example, type: :integration) do
stop_proxy_server