diff options
| author | mo khan <mo.khan@gmail.com> | 2020-09-10 15:40:15 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-09-10 15:40:15 -0600 |
| commit | 60e0be6501010961a8e6ac3248d2b0c976e75cda (patch) | |
| tree | dd272f7ae019f9aed0142f200fd4aa178327c2ba /spec/support/proxy_helper.rb | |
| parent | 0304f8eb79a179332945e1c952d22df4e20ea839 (diff) | |
refactor: start proxy server before tests
Diffstat (limited to 'spec/support/proxy_helper.rb')
| -rw-r--r-- | spec/support/proxy_helper.rb | 23 |
1 files changed, 22 insertions, 1 deletions
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 |
