Specs for deploy_keys

This commit is contained in:
miks 2011-12-30 00:33:26 +02:00
parent b85ae02856
commit 65601ade2b
4 changed files with 83 additions and 5 deletions

View file

@ -56,6 +56,11 @@ Factory.add(:key, Key) do |obj|
obj.key = File.read(File.join(Rails.root, "db", "pkey.example"))
end
Factory.add(:deploy_key, DeployKey) do |obj|
obj.title = "Example key"
obj.key = File.read(File.join(Rails.root, "db", "pkey.example"))
end
Factory.add(:web_hook, WebHook) do |obj|
obj.url = Faker::Internet.url
end

View file

@ -10,11 +10,7 @@ describe DeployKey do
it { should validate_presence_of(:key) }
end
describe "Methods" do
it { should respond_to :projects }
end
it { Factory.create(:key,
it { Factory.create(:deploy_key,
:project => Factory(:project)).should be_valid }
end
# == Schema Information

View file

@ -0,0 +1,68 @@
require 'spec_helper'
describe "DeployKeys" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write, :admin)
end
describe "GET /keys" do
before do
@key = Factory :deploy_key, :project => project
visit project_deploy_keys_path(project)
end
subject { page }
it { should have_content(@key.title) }
describe "Destroy" do
before { visit project_deploy_key_path(project, @key) }
it "should remove entry" do
expect {
click_link "Remove"
}.to change { project.deploy_keys.count }.by(-1)
end
end
end
describe "New key", :js => true do
before do
visit project_deploy_keys_path(project)
click_link "Add new"
end
it "should open new key popup" do
page.should have_content("Add new public key")
end
describe "fill in" do
before do
fill_in "deploy_key_title", :with => "laptop"
fill_in "deploy_key_key", :with => "publickey234="
end
it { expect { click_button "Save" }.to change {Key.count}.by(1) }
it "should add new key to table" do
click_button "Save"
page.should_not have_content("Add new public key")
page.should have_content "laptop"
end
end
end
describe "Show page" do
before do
@key = Factory :deploy_key, :project => project
visit project_deploy_key_path(project, @key)
end
it { page.should have_content @key.title }
it { page.should have_content @key.key[0..10] }
end
end

View file

@ -105,6 +105,15 @@ describe "Projects" do
it { edit_project_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/deploy_keys" do
it { project_deploy_keys_path(@project).should be_allowed_for @u1 }
it { project_deploy_keys_path(@project).should be_denied_for @u3 }
it { project_deploy_keys_path(@project).should be_denied_for :admin }
it { project_deploy_keys_path(@project).should be_denied_for @u2 }
it { project_deploy_keys_path(@project).should be_denied_for :user }
it { project_deploy_keys_path(@project).should be_denied_for :visitor }
end
describe "GET /project_code/issues" do
it { project_issues_path(@project).should be_allowed_for @u1 }
it { project_issues_path(@project).should be_allowed_for @u3 }