|
4 | 4 | require 'base64' |
5 | 5 | require 'tempfile' |
6 | 6 |
|
7 | | -RSpec.shared_examples 'atlas connectivity test' do |env_var| |
8 | | - skip "Environment variable #{env_var} is not set" unless ENV[env_var] |
9 | | - |
| 7 | +RSpec.shared_examples 'atlas connectivity test' do |
10 | 8 | after do |
11 | 9 | client.close |
| 10 | + rescue StandardError |
| 11 | + # no-op |
12 | 12 | end |
13 | 13 |
|
14 | 14 | it 'runs hello successfully' do |
|
18 | 18 | end |
19 | 19 |
|
20 | 20 | describe 'Atlas connectivity' do |
| 21 | + before do |
| 22 | + skip 'These tests must be run against a live Atlas cluster' unless ENV['ATLAS_TESTING'] |
| 23 | + end |
| 24 | + |
21 | 25 | context 'with regular authentication' do |
22 | 26 | regular_auth_env_vars = %w[ |
23 | 27 | ATLAS_REPLICA_SET_URI |
|
27 | 31 | ATLAS_TLS12_URI |
28 | 32 | ] |
29 | 33 |
|
30 | | - regular_auth_env_vars.each do |var| |
31 | | - describe "Connecting to #{var}" do |
32 | | - let(:uri) { ENV[var] } |
| 34 | + regular_auth_env_vars.each do |uri_var| |
| 35 | + describe "Connecting to #{uri_var}" do |
| 36 | + before do |
| 37 | + raise "Environment variable #{uri_var} is not set" unless ENV[uri_var] |
| 38 | + end |
| 39 | + |
| 40 | + let(:uri) { ENV[uri_var] } |
| 41 | + |
33 | 42 | let(:client) { Mongo::Client.new(uri) } |
34 | 43 |
|
35 | | - include_examples 'atlas connectivity test', var |
| 44 | + include_examples 'atlas connectivity test' |
36 | 45 | end |
37 | 46 | end |
38 | 47 | end |
|
45 | 54 |
|
46 | 55 | x509_auth_env_vars.each do |uri_var, cert_var| |
47 | 56 | describe "Connecting to #{uri_var} with certificate" do |
| 57 | + before do |
| 58 | + raise "Environment variable #{uri_var} is not set" unless ENV[uri_var] |
| 59 | + end |
| 60 | + |
48 | 61 | let(:client_cert) do |
49 | 62 | decoded = Base64.strict_decode64(ENV[cert_var]) |
50 | 63 | cert_file = Tempfile.new([ 'x509-cert', '.pem' ]) |
51 | 64 | cert_file.write(decoded) |
52 | | - File.chmod(0600, cert_file.path) |
| 65 | + File.chmod(0o600, cert_file.path) |
53 | 66 | cert_file.close |
54 | 67 | cert_file |
55 | 68 | end |
|
63 | 76 | end |
64 | 77 |
|
65 | 78 | after do |
66 | | - client_cert.unlink if client_cert |
| 79 | + client_cert&.unlink |
67 | 80 | end |
68 | 81 |
|
69 | | - include_examples 'atlas connectivity test', uri_var |
| 82 | + include_examples 'atlas connectivity test' |
70 | 83 | end |
71 | 84 | end |
72 | 85 | end |
|
0 commit comments