Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Matyushentsev <amatyushentsev@gmail.com>2016-06-12 06:03:39 +0300
committerAlexander Matyushentsev <amatyushentsev@gmail.com>2016-06-13 19:41:34 +0300
commitfcbb14f6b79ea4d97078ebae9df9a0fc4bba021e (patch)
tree1c7a0d6d697c489adb1ae930453939ba84893110 /spec/features/atom
parent5328930e3f7d013791417ba38805cfab9d029dbd (diff)
Move issue rendering tests into separate contexts
Diffstat (limited to 'spec/features/atom')
-rw-r--r--spec/features/atom/dashboard_issues_spec.rb58
1 files changed, 37 insertions, 21 deletions
diff --git a/spec/features/atom/dashboard_issues_spec.rb b/spec/features/atom/dashboard_issues_spec.rb
index 87b478adb8f..9a4eb8f9504 100644
--- a/spec/features/atom/dashboard_issues_spec.rb
+++ b/spec/features/atom/dashboard_issues_spec.rb
@@ -5,42 +5,58 @@ describe "Dashboard Issues Feed", feature: true do
let!(:user) { create(:user) }
let!(:project1) { create(:project) }
let!(:project2) { create(:project) }
- let!(:milestone1) { create(:milestone, project: project1, title: 'v1') }
- let!(:label1) { create(:label, project: project1, title: 'label1') }
- let!(:issue1) { create(:issue, author: user, assignee: user, project: project1, milestone: milestone1) }
- let!(:issue2) { create(:issue, author: user, assignee: user, project: project2, description: 'test desc') }
before do
project1.team << [user, :master]
project2.team << [user, :master]
- issue1.labels << label1
end
describe "atom feed" do
it "should render atom feed via private token" do
visit issues_dashboard_path(:atom, private_token: user.private_token)
- expect(response_headers['Content-Type']).
- to have_content('application/atom+xml')
+ expect(response_headers['Content-Type']).to have_content('application/atom+xml')
expect(body).to have_selector('title', text: "#{user.name} issues")
+ end
+
+ context "issue with basic fields" do
+ let!(:issue2) { create(:issue, author: user, assignee: user, project: project2, description: 'test desc') }
+
+ it "should render issue fields" do
+ visit issues_dashboard_path(:atom, private_token: user.private_token)
+
+ entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue2.title}')]")
+
+ expect(entry).to be_present
+ expect(entry).to have_selector('author email', text: issue2.author_email)
+ expect(entry).to have_selector('assignee email', text: issue2.author_email)
+ expect(entry).not_to have_selector('labels')
+ expect(entry).not_to have_selector('milestone')
+ expect(entry).to have_selector('description', text: issue2.description)
+ end
+ end
+
+ context "issue with label and milestone" do
+ let!(:milestone1) { create(:milestone, project: project1, title: 'v1') }
+ let!(:label1) { create(:label, project: project1, title: 'label1') }
+ let!(:issue1) { create(:issue, author: user, assignee: user, project: project1, milestone: milestone1) }
- entry_1 = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue1.title}')]")
- expect(entry_1).to be_present
+ before do
+ issue1.labels << label1
+ end
- entry_2 = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue2.title}')]")
- expect(entry_2).to be_present
+ it "should render issue label and milestone info" do
+ visit issues_dashboard_path(:atom, private_token: user.private_token)
- expect(entry_1).to have_selector('author email', text: issue1.author_email)
- expect(entry_1).to have_selector('assignee email', text: issue1.author_email)
- expect(entry_1).to have_selector('labels label', text: label1.title)
- expect(entry_1).to have_selector('milestone', text: milestone1.title)
- expect(entry_1).not_to have_selector('description')
+ entry = find(:xpath, "//feed/entry[contains(summary/text(),'#{issue1.title}')]")
- expect(entry_2).to have_selector('author email', text: issue2.author_email)
- expect(entry_2).to have_selector('assignee email', text: issue2.author_email)
- expect(entry_2).not_to have_selector('labels')
- expect(entry_2).not_to have_selector('milestone')
- expect(entry_2).to have_selector('description', text: issue1.description)
+ expect(entry).to be_present
+ expect(entry).to have_selector('author email', text: issue1.author_email)
+ expect(entry).to have_selector('assignee email', text: issue1.author_email)
+ expect(entry).to have_selector('labels label', text: label1.title)
+ expect(entry).to have_selector('milestone', text: milestone1.title)
+ expect(entry).not_to have_selector('description')
+ end
end
end
end