diff --git a/devops-service/db/mongo/models/project.rb b/devops-service/db/mongo/models/project.rb index c4edc04..0bb61ac 100644 --- a/devops-service/db/mongo/models/project.rb +++ b/devops-service/db/mongo/models/project.rb @@ -22,6 +22,7 @@ module Devops #define_hook :after_add_deploy_env attr_accessor :id, :deploy_envs, :type, :archived, :description, :run_list + attr_accessor :components MULTI_TYPE = "multi" diff --git a/devops-service/db/mongo/models/stack_template/stack_template_ec2.rb b/devops-service/db/mongo/models/stack_template/stack_template_ec2.rb index 89f7a0d..7a2636e 100644 --- a/devops-service/db/mongo/models/stack_template/stack_template_ec2.rb +++ b/devops-service/db/mongo/models/stack_template/stack_template_ec2.rb @@ -16,10 +16,6 @@ module Devops super.merge(template_url: template_url) end - def delete_template_file_from_storage - raise 'Implement me' - end - class << self def create(attrs) diff --git a/devops-service/spec/models/project_spec.rb b/devops-service/spec/models/project_spec.rb index dd892b1..fdb8b50 100644 --- a/devops-service/spec/models/project_spec.rb +++ b/devops-service/spec/models/project_spec.rb @@ -23,6 +23,23 @@ RSpec.describe Devops::Model::Project, type: :model do project = build(:project, with_deploy_env_identifiers: ['foo', nil]) expect(project).not_to be_valid end + + describe 'components validation' do + it 'is valid with components with filenames' do + project.components = {'foo' => {'filename' => 'bar'}} + expect{project.validate_components}.not_to raise_error + end + + it "isn't valid if components isn't a hash" do + project.components = [] + expect{project.validate_components}.to raise_error InvalidRecord + end + + it "raises InvalidRecord if one of componentsц hasn't filename" do + project.components = {'foo' => {}} + expect{project.validate_components}.to raise_error InvalidRecord + end + end end describe '.fields' do diff --git a/devops-service/spec/models/user_spec.rb b/devops-service/spec/models/user_spec.rb index c060ff4..ad9bc69 100644 --- a/devops-service/spec/models/user_spec.rb +++ b/devops-service/spec/models/user_spec.rb @@ -79,13 +79,25 @@ RSpec.describe Devops::Model::User, type: :model do end end + describe '.build_from_bson' do + it 'builds User model from given hash and assigns id' do + model = described_class.build_from_bson('_id' => 'foo', 'username' => 'not shown', 'email' => 'baz') + expect(model.id).to eq 'foo' + expect(model.email).to eq 'baz' + end + end + describe '#check_privileges' do it "raises InvalidPrivileges if user hasn't specified privilege" do expect { user.check_privileges('key', 'w') }.to raise_error(InvalidPrivileges) end it 'does nothing is user has specified privilege' do - user.check_privileges('key', 'r') + expect{user.check_privileges('key', 'r')}.not_to raise_error + end + + it 'raises InvalidPrivileges if given privelege is wrong' do + expect{user.check_privileges('key', 't')}.to raise_error InvalidPrivileges end end