52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'db/mongo/models/deploy_env/deploy_env_ec2'
 | |
| require_relative 'shared_deploy_env_specs'
 | |
| require_relative 'shared_cloud_deploy_env_specs'
 | |
| 
 | |
| RSpec.describe Devops::Model::DeployEnvEc2, type: :model do
 | |
|   let(:env) { build(:deploy_env_ec2) }
 | |
| 
 | |
|   describe 'it inherits from cloud deploy_env', stubbed_env_validators: true do
 | |
|     it_behaves_like 'deploy env'
 | |
|     it_behaves_like 'cloud deploy env'
 | |
|   end
 | |
| 
 | |
|   describe '#initialize' do
 | |
|     it 'keep only first subnet in given array' do
 | |
|       env = described_class.new('subnets' => %w(foo bar))
 | |
|       expect(env.subnets).to match_array(%w(foo))
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe '.create' do
 | |
|     it 'returns instance of DeployEnvEc2' do
 | |
|       expect(described_class.create({})).to be_an_instance_of(described_class)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe '#subnets_filter' do
 | |
|     before do
 | |
|       allow_any_instance_of(described_class).to receive_message_chain('provider_instance.networks') {
 | |
|         [{'name' => 'foo', 'vpcId' => 'bar'}]
 | |
|       }
 | |
|     end
 | |
| 
 | |
|     it 'returns nil if #subnets are empty' do
 | |
|       expect(build(:deploy_env_ec2, subnets: []).subnets_filter).to be_nil
 | |
|     end
 | |
| 
 | |
|     context "when provider has env's network" do
 | |
|       it 'returns hash with vpcId of that network' do
 | |
|         env = build(:deploy_env_ec2, subnets: ['foo'])
 | |
|         expect(env.subnets_filter).to eq({'vpc-id' => 'bar'})
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "when provider hasn't env's network" do
 | |
|       it 'returns nil' do
 | |
|         env = build(:deploy_env_ec2, subnets: ['wrong'])
 | |
|         expect(env.subnets_filter).to be nil
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
| end | 
