Commit 65601ade2b5c7f255cba752baee65ead148af58c

Authored by miks
1 parent b85ae028

Specs for deploy_keys

spec/factories.rb
... ... @@ -56,6 +56,11 @@ Factory.add(:key, Key) do |obj|
56 56 obj.key = File.read(File.join(Rails.root, "db", "pkey.example"))
57 57 end
58 58  
  59 +Factory.add(:deploy_key, DeployKey) do |obj|
  60 + obj.title = "Example key"
  61 + obj.key = File.read(File.join(Rails.root, "db", "pkey.example"))
  62 +end
  63 +
59 64 Factory.add(:web_hook, WebHook) do |obj|
60 65 obj.url = Faker::Internet.url
61 66 end
... ...
spec/models/deploy_key_spec.rb
... ... @@ -10,11 +10,7 @@ describe DeployKey do
10 10 it { should validate_presence_of(:key) }
11 11 end
12 12  
13   - describe "Methods" do
14   - it { should respond_to :projects }
15   - end
16   -
17   - it { Factory.create(:key,
  13 + it { Factory.create(:deploy_key,
18 14 :project => Factory(:project)).should be_valid }
19 15 end
20 16 # == Schema Information
... ...
spec/requests/projects_deploy_keys_spec.rb 0 → 100644
... ... @@ -0,0 +1,68 @@
  1 +require 'spec_helper'
  2 +
  3 +describe "DeployKeys" do
  4 + let(:project) { Factory :project }
  5 +
  6 + before do
  7 + login_as :user
  8 + project.add_access(@user, :read, :write, :admin)
  9 + end
  10 +
  11 + describe "GET /keys" do
  12 + before do
  13 + @key = Factory :deploy_key, :project => project
  14 + visit project_deploy_keys_path(project)
  15 + end
  16 +
  17 + subject { page }
  18 +
  19 + it { should have_content(@key.title) }
  20 +
  21 + describe "Destroy" do
  22 + before { visit project_deploy_key_path(project, @key) }
  23 +
  24 + it "should remove entry" do
  25 + expect {
  26 + click_link "Remove"
  27 + }.to change { project.deploy_keys.count }.by(-1)
  28 + end
  29 + end
  30 + end
  31 +
  32 + describe "New key", :js => true do
  33 + before do
  34 + visit project_deploy_keys_path(project)
  35 + click_link "Add new"
  36 + end
  37 +
  38 + it "should open new key popup" do
  39 + page.should have_content("Add new public key")
  40 + end
  41 +
  42 + describe "fill in" do
  43 + before do
  44 + fill_in "deploy_key_title", :with => "laptop"
  45 + fill_in "deploy_key_key", :with => "publickey234="
  46 + end
  47 +
  48 + it { expect { click_button "Save" }.to change {Key.count}.by(1) }
  49 +
  50 + it "should add new key to table" do
  51 + click_button "Save"
  52 +
  53 + page.should_not have_content("Add new public key")
  54 + page.should have_content "laptop"
  55 + end
  56 + end
  57 + end
  58 +
  59 + describe "Show page" do
  60 + before do
  61 + @key = Factory :deploy_key, :project => project
  62 + visit project_deploy_key_path(project, @key)
  63 + end
  64 +
  65 + it { page.should have_content @key.title }
  66 + it { page.should have_content @key.key[0..10] }
  67 + end
  68 +end
... ...
spec/requests/projects_security_spec.rb
... ... @@ -105,6 +105,15 @@ describe "Projects" do
105 105 it { edit_project_path(@project).should be_denied_for :visitor }
106 106 end
107 107  
  108 + describe "GET /project_code/deploy_keys" do
  109 + it { project_deploy_keys_path(@project).should be_allowed_for @u1 }
  110 + it { project_deploy_keys_path(@project).should be_denied_for @u3 }
  111 + it { project_deploy_keys_path(@project).should be_denied_for :admin }
  112 + it { project_deploy_keys_path(@project).should be_denied_for @u2 }
  113 + it { project_deploy_keys_path(@project).should be_denied_for :user }
  114 + it { project_deploy_keys_path(@project).should be_denied_for :visitor }
  115 + end
  116 +
108 117 describe "GET /project_code/issues" do
109 118 it { project_issues_path(@project).should be_allowed_for @u1 }
110 119 it { project_issues_path(@project).should be_allowed_for @u3 }
... ...