diff options
author | Rémy Coutable <remy@rymai.me> | 2018-12-04 15:30:01 +0100 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-12-04 17:35:40 +0100 |
commit | 1209332a085bc10cc8379d4f9d2c26e782876be9 (patch) | |
tree | 6c49d85e8b8f329a14701e6ef5766851198f3dd9 /spec/views/layouts | |
parent | ce00a9c8411702353ef1577c79f0ad42ef7e3201 (diff) | |
download | gitlab-ce-1209332a085bc10cc8379d4f9d2c26e782876be9.tar.gz |
Replace admin sidebar feature spec with view spec
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec/views/layouts')
-rw-r--r-- | spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb b/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb new file mode 100644 index 00000000000..05c2f61a606 --- /dev/null +++ b/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb @@ -0,0 +1,90 @@ +require 'spec_helper' + +describe 'layouts/nav/sidebar/_admin' do + shared_examples 'page has active tab' do |title| + it "activates #{title} tab" do + render + + expect(rendered).to have_selector('.nav-sidebar .sidebar-top-level-items > li.active', count: 1) + expect(rendered).to have_css('.nav-sidebar .sidebar-top-level-items > li.active', text: title) + end + end + + shared_examples 'page has active sub tab' do |title| + it "activates #{title} sub tab" do + render + + expect(rendered).to have_css('.sidebar-sub-level-items > li.active', text: title) + end + end + + context 'on home page' do + before do + allow(controller).to receive(:controller_name).and_return('dashboard') + end + + it_behaves_like 'page has active tab', 'Overview' + end + + context 'on projects' do + before do + allow(controller).to receive(:controller_name).and_return('projects') + allow(controller).to receive(:controller_path).and_return('admin/projects') + end + + it_behaves_like 'page has active tab', 'Overview' + it_behaves_like 'page has active sub tab', 'Projects' + end + + context 'on groups' do + before do + allow(controller).to receive(:controller_name).and_return('groups') + end + + it_behaves_like 'page has active tab', 'Overview' + it_behaves_like 'page has active sub tab', 'Groups' + end + + context 'on users' do + before do + allow(controller).to receive(:controller_name).and_return('users') + end + + it_behaves_like 'page has active tab', 'Overview' + it_behaves_like 'page has active sub tab', 'Users' + end + + context 'on logs' do + before do + allow(controller).to receive(:controller_name).and_return('logs') + end + + it_behaves_like 'page has active tab', 'Monitoring' + it_behaves_like 'page has active sub tab', 'Logs' + end + + context 'on messages' do + before do + allow(controller).to receive(:controller_name).and_return('broadcast_messages') + end + + it_behaves_like 'page has active tab', 'Messages' + end + + context 'on hooks' do + before do + allow(controller).to receive(:controller_name).and_return('hooks') + end + + it_behaves_like 'page has active tab', 'Hooks' + end + + context 'on background jobs' do + before do + allow(controller).to receive(:controller_name).and_return('background_jobs') + end + + it_behaves_like 'page has active tab', 'Monitoring' + it_behaves_like 'page has active sub tab', 'Background Jobs' + end +end |