Commit 6233fb6b authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge pull request #1446 from NARKOZ/refactoring

specs DRY up
parents 4782163c b6f249dc
...@@ -9,12 +9,14 @@ describe Gitlab::API do ...@@ -9,12 +9,14 @@ describe Gitlab::API do
before { project.add_access(user, :read) } before { project.add_access(user, :read) }
describe "GET /issues" do describe "GET /issues" do
context "when unauthenticated" do
it "should return authentication error" do it "should return authentication error" do
get api("/issues") get api("/issues")
response.status.should == 401 response.status.should == 401
end end
end
describe "authenticated GET /issues" do context "when authenticated" do
it "should return an array of issues" do it "should return an array of issues" do
get api("/issues", user) get api("/issues", user)
response.status.should == 200 response.status.should == 200
......
...@@ -13,12 +13,14 @@ describe Gitlab::API do ...@@ -13,12 +13,14 @@ describe Gitlab::API do
before { project.add_access(user, :read) } before { project.add_access(user, :read) }
describe "GET /projects" do describe "GET /projects" do
context "when unauthenticated" do
it "should return authentication error" do it "should return authentication error" do
get api("/projects") get api("/projects")
response.status.should == 401 response.status.should == 401
end end
end
describe "authenticated GET /projects" do context "when authenticated" do
it "should return an array of projects" do it "should return an array of projects" do
get api("/projects", user) get api("/projects", user)
response.status.should == 200 response.status.should == 200
......
...@@ -6,12 +6,14 @@ describe Gitlab::API do ...@@ -6,12 +6,14 @@ describe Gitlab::API do
let(:user) { Factory :user } let(:user) { Factory :user }
describe "GET /users" do describe "GET /users" do
context "when unauthenticated" do
it "should return authentication error" do it "should return authentication error" do
get api("/users") get api("/users")
response.status.should == 401 response.status.should == 401
end end
end
describe "authenticated GET /users" do context "when authenticated" do
it "should return an array of users" do it "should return an array of users" do
get api("/users", user) get api("/users", user)
response.status.should == 200 response.status.should == 200
......
require 'spec_helper' require 'spec_helper'
describe "User Issues Dashboard" do describe "Dashboard Issues Feed" do
describe "GET /issues" do describe "GET /issues" do
before do let!(:user) { Factory :user }
let!(:project1) { Factory :project }
let!(:project2) { Factory :project }
let!(:issue1) { Factory :issue, author: user, assignee: user, project: project1 }
let!(:issue2) { Factory :issue, author: user, assignee: user, project: project2 }
login_as :user describe "atom feed" do
@project1 = Factory :project
@project2 = Factory :project
@project1.add_access(@user, :read, :write)
@project2.add_access(@user, :read, :write)
@issue1 = Factory :issue,
author: @user,
assignee: @user,
project: @project1
@issue2 = Factory :issue,
author: @user,
assignee: @user,
project: @project2
visit dashboard_issues_path
end
describe "atom feed", js: false do
it "should render atom feed via private token" do it "should render atom feed via private token" do
logout visit dashboard_issues_path(:atom, private_token: user.private_token)
visit dashboard_issues_path(:atom, private_token: @user.private_token)
page.response_headers['Content-Type'].should have_content("application/atom+xml") page.response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{@user.name} issues") page.body.should have_selector("title", text: "#{user.name} issues")
page.body.should have_selector("author email", text: @issue1.author_email) page.body.should have_selector("author email", text: issue1.author_email)
page.body.should have_selector("entry summary", text: @issue1.title) page.body.should have_selector("entry summary", text: issue1.title)
page.body.should have_selector("author email", text: @issue2.author_email) page.body.should have_selector("author email", text: issue2.author_email)
page.body.should have_selector("entry summary", text: @issue2.title) page.body.should have_selector("entry summary", text: issue2.title)
end end
end end
end end
......
require 'spec_helper' require 'spec_helper'
describe "User Dashboard" do describe "Dashboard Feed" do
before { login_as :user }
describe "GET /" do describe "GET /" do
before do let!(:user) { Factory :user }
@project = Factory :project, owner: @user
@project.add_access(@user, :read)
visit dashboard_path
end
it "should render projects atom feed via private token" do
logout
visit dashboard_path(:atom, private_token: @user.private_token) context "projects atom feed via private token" do
it "should render projects atom feed" do
visit dashboard_path(:atom, private_token: user.private_token)
page.body.should have_selector("feed title") page.body.should have_selector("feed title")
end end
end
it "should not render projects page via private token" do context "projects page via private token" do
logout it "should redirect to login page" do
visit dashboard_path(private_token: user.private_token)
visit dashboard_path(private_token: @user.private_token)
current_path.should == new_user_session_path current_path.should == new_user_session_path
end end
end end
end
end end
require 'spec_helper' require 'spec_helper'
describe "Issues" do describe "Issues Feed" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write)
end
describe "GET /issues" do describe "GET /issues" do
before do let!(:user) { Factory :user }
@issue = Factory :issue, let!(:project) { Factory :project, owner: user }
author: @user, let!(:issue) { Factory :issue, author: user, project: project }
assignee: @user,
project: project
visit project_issues_path(project) before { project.add_access(user, :read, :write) }
end
context "when authenticated" do
it "should render atom feed" do it "should render atom feed" do
login_with user
visit project_issues_path(project, :atom) visit project_issues_path(project, :atom)
page.response_headers['Content-Type'].should have_content("application/atom+xml") page.response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{project.name} issues") page.body.should have_selector("title", text: "#{project.name} issues")
page.body.should have_selector("author email", text: @issue.author_email) page.body.should have_selector("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: @issue.title) page.body.should have_selector("entry summary", text: issue.title)
end
end end
it "should render atom feed via private token" do context "when authenticated via private token" do
logout it "should render atom feed" do
visit project_issues_path(project, :atom, private_token: @user.private_token) visit project_issues_path(project, :atom, private_token: user.private_token)
page.response_headers['Content-Type'].should have_content("application/atom+xml") page.response_headers['Content-Type'].should have_content("application/atom+xml")
page.body.should have_selector("title", text: "#{project.name} issues") page.body.should have_selector("title", text: "#{project.name} issues")
page.body.should have_selector("author email", text: @issue.author_email) page.body.should have_selector("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: @issue.title) page.body.should have_selector("entry summary", text: issue.title)
end
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment