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:
authorSemyon Pupkov <mail@semyonpupkov.com>2018-03-08 02:10:58 +0300
committerSemyon Pupkov <mail@semyonpupkov.com>2018-03-08 02:10:58 +0300
commitfa7b9f50ffaad924260f6cd120ca3c4ed13ca5bd (patch)
treeb8e01f0160b5d184022b25d25c994476034353fc /spec/features/projects/actve_tabs_spec.rb
parent2e87923dcb1cf7984690f5b5fdfc61bddfba923e (diff)
Move project active tab spinach tests to RSpec
https://gitlab.com/gitlab-org/gitlab-ce/issues/23036
Diffstat (limited to 'spec/features/projects/actve_tabs_spec.rb')
-rw-r--r--spec/features/projects/actve_tabs_spec.rb137
1 files changed, 137 insertions, 0 deletions
diff --git a/spec/features/projects/actve_tabs_spec.rb b/spec/features/projects/actve_tabs_spec.rb
new file mode 100644
index 00000000000..0bda68b83e7
--- /dev/null
+++ b/spec/features/projects/actve_tabs_spec.rb
@@ -0,0 +1,137 @@
+require 'spec_helper'
+
+describe 'Project active tab' do
+ let(:user) { create :user }
+ let(:project) { create(:project, :repository) }
+
+ before do
+ project.add_master(user)
+ sign_in(user)
+ end
+
+ def click_tab(title)
+ page.within '.sidebar-top-level-items > .active' do
+ click_link(title)
+ end
+ end
+
+ shared_examples 'page has active tab' do |title|
+ it "activates #{title} tab" do
+ expect(page).to have_selector('.sidebar-top-level-items > li.active', count: 1)
+ expect(find('.sidebar-top-level-items > li.active')).to have_content(title)
+ end
+ end
+
+ shared_examples 'page has active sub tab' do |title|
+ it "activates #{title} sub tab" do
+ expect(page).to have_selector('.sidebar-sub-level-items > li.active:not(.fly-out-top-item)', count: 1)
+ expect(find('.sidebar-sub-level-items > li.active:not(.fly-out-top-item)'))
+ .to have_content(title)
+ end
+ end
+
+ context 'on project Home' do
+ before do
+ visit project_path(project)
+ end
+
+ it_behaves_like 'page has active tab', 'Overview'
+ it_behaves_like 'page has active sub tab', 'Details'
+
+ context 'on project Home/Activity' do
+ before do
+ click_tab('Activity')
+ end
+
+ it_behaves_like 'page has active tab', 'Overview'
+ it_behaves_like 'page has active sub tab', 'Activity'
+ end
+ end
+
+ context 'on project Repository' do
+ before do
+ root_ref = project.repository.root_ref
+ visit project_tree_path(project, root_ref)
+ end
+
+ it_behaves_like 'page has active tab', 'Repository'
+
+ %w(Files Commits Graph Compare Charts Branches Tags).each do |sub_menu|
+ context "on project Repository/#{sub_menu}" do
+ before do
+ click_tab(sub_menu)
+ end
+
+ it_behaves_like 'page has active tab', 'Repository'
+ it_behaves_like 'page has active sub tab', sub_menu
+ end
+ end
+ end
+
+ context 'on project Issues' do
+ before do
+ visit project_issues_path(project)
+ end
+
+ it_behaves_like 'page has active tab', 'Issues'
+
+ %w(Milestones Labels).each do |sub_menu|
+ context "on project Issues/#{sub_menu}" do
+ before do
+ click_tab(sub_menu)
+ end
+
+ it_behaves_like 'page has active tab', 'Issues'
+ it_behaves_like 'page has active sub tab', sub_menu
+ end
+ end
+ end
+
+ context 'on project Merge Requests' do
+ before do
+ visit project_merge_requests_path(project)
+ end
+
+ it_behaves_like 'page has active tab', 'Merge Requests'
+ end
+
+ context 'on project Wiki' do
+ before do
+ visit project_wiki_path(project, :home)
+ end
+
+ it_behaves_like 'page has active tab', 'Wiki'
+ end
+
+ context 'on project Members' do
+ before do
+ visit project_project_members_path(project)
+ end
+
+ it_behaves_like 'page has active tab', 'Members'
+ end
+
+ context 'on project Settings' do
+ before do
+ visit edit_project_path(project)
+ end
+
+ context 'on project Settings/Integrations' do
+ before do
+ click_tab('Integrations')
+ end
+
+ it_behaves_like 'page has active tab', 'Settings'
+ it_behaves_like 'page has active sub tab', 'Integrations'
+ end
+
+ context 'on project Settings/Repository' do
+ before do
+ click_tab('Repository')
+ end
+
+ it_behaves_like 'page has active tab', 'Settings'
+ it_behaves_like 'page has active sub tab', 'Repository'
+ end
+ end
+end