Skip to content
Snippets Groups Projects
Commit a87c268f authored by Nihad Abbasov's avatar Nihad Abbasov
Browse files

remove duplicate code from atom request specs

parent 46b9aafc
No related branches found
No related tags found
1 merge request!1446specs DRY up
require 'spec_helper'
 
describe "User Issues Dashboard" do
describe "Dashboard Issues Feed" 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
@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
describe "atom feed" 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.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("entry summary", text: @issue1.title)
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("title", text: "#{user.name} issues")
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("author email", text: issue2.author_email)
page.body.should have_selector("entry summary", text: issue2.title)
end
end
end
Loading
Loading
require 'spec_helper'
 
describe "User Dashboard" do
before { login_as :user }
describe "Dashboard Feed" do
describe "GET /" do
before do
@project = Factory :project, owner: @user
@project.add_access(@user, :read)
visit dashboard_path
end
let!(:user) { Factory :user }
 
it "should render projects atom feed via private token" do
logout
visit dashboard_path(:atom, private_token: @user.private_token)
page.body.should have_selector("feed title")
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")
end
end
 
it "should not render projects page via private token" do
logout
visit dashboard_path(private_token: @user.private_token)
current_path.should == new_user_session_path
context "projects page via private token" do
it "should redirect to login page" do
visit dashboard_path(private_token: user.private_token)
current_path.should == new_user_session_path
end
end
end
end
require 'spec_helper'
 
describe "Issues" do
let(:project) { Factory :project }
before do
login_as :user
project.add_access(@user, :read, :write)
end
describe "Issues Feed" do
describe "GET /issues" do
before do
@issue = Factory :issue,
author: @user,
assignee: @user,
project: project
visit project_issues_path(project)
end
it "should render atom feed" do
visit project_issues_path(project, :atom)
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("author email", text: @issue.author_email)
page.body.should have_selector("entry summary", text: @issue.title)
let!(:user) { Factory :user }
let!(:project) { Factory :project, owner: user }
let!(:issue) { Factory :issue, author: user, project: project }
before { project.add_access(user, :read, :write) }
context "when authenticated" do
it "should render atom feed" do
login_with user
visit project_issues_path(project, :atom)
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("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: issue.title)
end
end
 
it "should render atom feed via private token" do
logout
visit project_issues_path(project, :atom, private_token: @user.private_token)
context "when authenticated via private token" do
it "should render atom feed" do
visit project_issues_path(project, :atom, private_token: user.private_token)
 
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("author email", text: @issue.author_email)
page.body.should have_selector("entry summary", text: @issue.title)
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("author email", text: issue.author_email)
page.body.should have_selector("entry summary", text: issue.title)
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment