diff options
Diffstat (limited to 'spec/features/nav/new_nav_toggle_spec.rb')
-rw-r--r-- | spec/features/nav/new_nav_toggle_spec.rb | 82 |
1 files changed, 30 insertions, 52 deletions
diff --git a/spec/features/nav/new_nav_toggle_spec.rb b/spec/features/nav/new_nav_toggle_spec.rb index 2cdaf12bb15..6872058be8e 100644 --- a/spec/features/nav/new_nav_toggle_spec.rb +++ b/spec/features/nav/new_nav_toggle_spec.rb @@ -7,75 +7,53 @@ RSpec.describe 'new navigation toggle', :js, feature_category: :navigation do before do user.update!(use_new_navigation: user_preference) - stub_feature_flags(super_sidebar_nav: new_nav_ff) sign_in(user) visit explore_projects_path end - context 'with feature flag off' do - let(:new_nav_ff) { false } + context 'when user has new nav disabled' do + let(:user_preference) { false } - where(:user_preference) do - [true, false] - end + it 'allows to enable new nav', :aggregate_failures do + within '.js-nav-user-dropdown' do + find('a[data-toggle="dropdown"]').click + expect(page).to have_content('Navigation redesign') - with_them do - it 'shows old topbar user dropdown with no way to toggle to new nav' do - within '.js-header-content .js-nav-user-dropdown' do - find('a[data-toggle="dropdown"]').click - expect(page).not_to have_content('Navigation redesign') - end + toggle = page.find('.gl-toggle:not(.is-checked)') + toggle.click # reloads the page end - end - end - - context 'with feature flag on' do - let(:new_nav_ff) { true } - context 'when user has new nav disabled' do - let(:user_preference) { false } + wait_for_requests - it 'allows to enable new nav', :aggregate_failures do - within '.js-nav-user-dropdown' do - find('a[data-toggle="dropdown"]').click - expect(page).to have_content('Navigation redesign') - - toggle = page.find('.gl-toggle:not(.is-checked)') - toggle.click # reloads the page - end - - wait_for_requests - - expect(user.reload.use_new_navigation).to eq true - end + expect(user.reload.use_new_navigation).to eq true + end - it 'shows the old navigation' do - expect(page).to have_selector('.js-navbar') - expect(page).not_to have_selector('[data-testid="super-sidebar"]') - end + it 'shows the old navigation' do + expect(page).to have_selector('.js-navbar') + expect(page).not_to have_selector('[data-testid="super-sidebar"]') end + end - context 'when user has new nav enabled' do - let(:user_preference) { true } + context 'when user has new nav enabled' do + let(:user_preference) { true } - it 'allows to disable new nav', :aggregate_failures do - within '[data-testid="super-sidebar"] [data-testid="user-dropdown"]' do - click_button "#{user.name} user’s menu" - expect(page).to have_content('Navigation redesign') + it 'allows to disable new nav', :aggregate_failures do + within '[data-testid="super-sidebar"] [data-testid="user-dropdown"]' do + click_button "#{user.name} user’s menu" + expect(page).to have_content('Navigation redesign') - toggle = page.find('.gl-toggle.is-checked') - toggle.click # reloads the page - end + toggle = page.find('.gl-toggle.is-checked') + toggle.click # reloads the page + end - wait_for_requests + wait_for_requests - expect(user.reload.use_new_navigation).to eq false - end + expect(user.reload.use_new_navigation).to eq false + end - it 'shows the new navigation' do - expect(page).not_to have_selector('.js-navbar') - expect(page).to have_selector('[data-testid="super-sidebar"]') - end + it 'shows the new navigation' do + expect(page).not_to have_selector('.js-navbar') + expect(page).to have_selector('[data-testid="super-sidebar"]') end end end |