diff --git a/spec/factories.rb b/spec/factories.rb index 8f323161990263733024df6aa86688f00507657a..f9e25382b61be5d784f6506a3ae38d0abfdff420 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -158,8 +158,7 @@ FactoryGirl.define do "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=" end - factory :deploy_key do - project + factory :deploy_key, class: 'DeployKey' do end factory :personal_key do @@ -222,4 +221,9 @@ FactoryGirl.define do url service end + + factory :deploy_keys_project do + deploy_key + project + end end diff --git a/spec/models/deploy_key_spec.rb b/spec/models/deploy_key_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..3658a6ff1d0460c8b2466f01dd082cb610a8658e --- /dev/null +++ b/spec/models/deploy_key_spec.rb @@ -0,0 +1,25 @@ +# == Schema Information +# +# Table name: keys +# +# id :integer not null, primary key +# user_id :integer +# created_at :datetime not null +# updated_at :datetime not null +# key :text +# title :string(255) +# identifier :string(255) +# project_id :integer +# + +require 'spec_helper' + +describe DeployKey do + let(:project) { create(:project) } + let(:deploy_key) { create(:deploy_key, projects: [project]) } + + describe "Associations" do + it { should have_many(:deploy_keys_projects) } + it { should have_many(:projects) } + end +end diff --git a/spec/models/deploy_keys_project_spec.rb b/spec/models/deploy_keys_project_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..bb62c48bbccfaadcc27742341635d442ca900f4b --- /dev/null +++ b/spec/models/deploy_keys_project_spec.rb @@ -0,0 +1,13 @@ +require 'spec_helper' + +describe DeployKeysProject do + describe "Associations" do + it { should belong_to(:deploy_key) } + it { should belong_to(:project) } + end + + describe "Validation" do + it { should validate_presence_of(:project_id) } + it { should validate_presence_of(:deploy_key_id) } + end +end diff --git a/spec/models/key_spec.rb b/spec/models/key_spec.rb index a9ab2f05a3411e3c8a4a54d748751926bf827bf8..9ccad18248c1ad3501f4970cbe8d4ed16ffedd78 100644 --- a/spec/models/key_spec.rb +++ b/spec/models/key_spec.rb @@ -17,7 +17,6 @@ require 'spec_helper' describe Key do describe "Associations" do it { should belong_to(:user) } - it { should belong_to(:project) } end describe "Mass assignment" do @@ -37,32 +36,15 @@ describe Key do end context "validation of uniqueness" do + let(:user) { create(:user) } - context "as a deploy key" do - let!(:deploy_key) { create(:deploy_key) } - - it "does not accept the same key twice for a project" do - key = build(:key, project: deploy_key.project) - key.should_not be_valid - end - - it "does not accept the same key for another project" do - key = build(:key, project_id: 0) - key.should_not be_valid - end + it "accepts the key once" do + build(:key, user: user).should be_valid end - context "as a personal key" do - let(:user) { create(:user) } - - it "accepts the key once" do - build(:key, user: user).should be_valid - end - - it "does not accepts the key twice" do - create(:key, user: user) - build(:key, user: user).should_not be_valid - end + it "does not accepts the key twice" do + create(:key, user: user) + build(:key, user: user).should_not be_valid end end