diff options
Diffstat (limited to 'spec/views')
14 files changed, 93 insertions, 174 deletions
diff --git a/spec/views/admin/sessions/new.html.haml_spec.rb b/spec/views/admin/sessions/new.html.haml_spec.rb index c1ed8d4f4ef..81275fa8750 100644 --- a/spec/views/admin/sessions/new.html.haml_spec.rb +++ b/spec/views/admin/sessions/new.html.haml_spec.rb @@ -36,14 +36,15 @@ RSpec.describe 'admin/sessions/new.html.haml' do context 'omniauth authentication enabled' do before do allow(view).to receive(:omniauth_enabled?).and_return(true) - allow(view).to receive(:button_based_providers_enabled?).and_return(true) + allow(view).to receive(:password_authentication_enabled_for_web?).and_return(true) end it 'shows omniauth form' do render expect(rendered).not_to have_content _('No authentication methods configured.') - expect(rendered).to have_content _('or') + expect(rendered).to have_css('.omniauth-divider') + expect(rendered).to have_content(_('or sign in with')) expect(rendered).to have_css('.omniauth-container') end end diff --git a/spec/views/ci/status/_badge.html.haml_spec.rb b/spec/views/ci/status/_badge.html.haml_spec.rb index ff8cfe2cca0..65497de1608 100644 --- a/spec/views/ci/status/_badge.html.haml_spec.rb +++ b/spec/views/ci/status/_badge.html.haml_spec.rb @@ -22,7 +22,7 @@ RSpec.describe 'ci/status/_badge' do render_status(build) - expect(rendered).to have_link 'passed', href: details_path + expect(rendered).to have_link 'Passed', href: details_path end end @@ -32,11 +32,11 @@ RSpec.describe 'ci/status/_badge' do end it 'contains build status text' do - expect(rendered).to have_content 'passed' + expect(rendered).to have_content 'Passed' end it 'does not contain links' do - expect(rendered).not_to have_link 'passed' + expect(rendered).not_to have_link 'Passed' end end end @@ -60,11 +60,11 @@ RSpec.describe 'ci/status/_badge' do end it 'contains valid commit status text' do - expect(rendered).to have_content 'running' + expect(rendered).to have_content 'Running' end it 'has link to external status page' do - expect(rendered).to have_link 'running', href: 'http://gitlab.com' + expect(rendered).to have_link 'Running', href: 'http://gitlab.com' end end @@ -76,11 +76,11 @@ RSpec.describe 'ci/status/_badge' do end it 'contains valid commit status text' do - expect(rendered).to have_content 'canceled' + expect(rendered).to have_content 'Canceled' end it 'has link to external status page' do - expect(rendered).not_to have_link 'canceled' + expect(rendered).not_to have_link 'Canceled' end end end diff --git a/spec/views/devise/sessions/new.html.haml_spec.rb b/spec/views/devise/sessions/new.html.haml_spec.rb index 70ca0bb2195..5f611ae1d8f 100644 --- a/spec/views/devise/sessions/new.html.haml_spec.rb +++ b/spec/views/devise/sessions/new.html.haml_spec.rb @@ -47,8 +47,6 @@ RSpec.describe 'devise/sessions/new' do disable_captcha disable_sign_up disable_other_signin_methods - - allow(view).to receive(:experiment_enabled?).and_return(false) end it 'is shown when enabled' do @@ -69,36 +67,6 @@ RSpec.describe 'devise/sessions/new' do expect(rendered).not_to have_field(_('Username')) end end - - describe 'Google Tag Manager' do - let!(:gtm_id) { 'GTM-WWKMTWS' } - - subject { rendered } - - before do - stub_devise - disable_captcha - stub_config(extra: { google_tag_manager_id: gtm_id, google_tag_manager_nonce_id: gtm_id }) - end - - describe 'when Google Tag Manager is enabled' do - before do - enable_gtm - render - end - - it { is_expected.to match /www.googletagmanager.com/ } - end - - describe 'when Google Tag Manager is disabled' do - before do - disable_gtm - render - end - - it { is_expected.not_to match /www.googletagmanager.com/ } - end - end end end @@ -133,12 +101,4 @@ RSpec.describe 'devise/sessions/new' do allow(view).to receive(:captcha_enabled?).and_return(false) allow(view).to receive(:captcha_on_login_required?).and_return(false) end - - def disable_gtm - allow(view).to receive(:google_tag_manager_enabled?).and_return(false) - end - - def enable_gtm - allow(view).to receive(:google_tag_manager_enabled?).and_return(true) - end end diff --git a/spec/views/groups/observability/observability.html.haml_spec.rb b/spec/views/groups/observability/observability.html.haml_spec.rb deleted file mode 100644 index 0561737cb39..00000000000 --- a/spec/views/groups/observability/observability.html.haml_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'groups/observability/observability.html.haml' do - let(:iframe_url) { "foo.test" } - - before do - allow(view).to receive(:observability_iframe_src).and_return(iframe_url) - end - - it 'renders as expected' do - render - page = Capybara.string(rendered) - div = page.find('#js-observability-app') - expect(div['data-observability-iframe-src']).to eq(iframe_url) - end -end diff --git a/spec/views/groups/show.html.haml_spec.rb b/spec/views/groups/show.html.haml_spec.rb index c4142f4a245..e0ee60e9f91 100644 --- a/spec/views/groups/show.html.haml_spec.rb +++ b/spec/views/groups/show.html.haml_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'groups/show', feature_category: :groups_and_projects do describe 'group README' do let_it_be(:group) { build_stubbed(:group) } - let_it_be(:readme_project) { build_stubbed(:project, :readme) } + let_it_be(:readme_project) { build_stubbed(:project, :public, :readme) } before do assign(:group, group) @@ -14,6 +14,7 @@ RSpec.describe 'groups/show', feature_category: :groups_and_projects do context 'with readme project' do before do allow(group).to receive(:group_readme).and_return(readme_project) + allow(group).to receive(:readme_project).and_return(readme_project) end it 'renders #js-group-readme' do @@ -21,11 +22,21 @@ RSpec.describe 'groups/show', feature_category: :groups_and_projects do expect(rendered).to have_selector('#js-group-readme') end + + context 'with private readme project' do + let_it_be(:readme_project) { build_stubbed(:project, :private, :readme) } + + it 'does not render #js-group-readme' do + render + + expect(rendered).not_to have_selector('#js-group-readme') + end + end end context 'without readme project' do before do - allow(group).to receive(:group_readme).and_return(nil) + allow(group).to receive(:readme_project).and_return(nil) end it 'does not render #js-group-readme' do diff --git a/spec/views/layouts/terms.html.haml_spec.rb b/spec/views/layouts/terms.html.haml_spec.rb index 7bf97debbf9..a22eb8eff57 100644 --- a/spec/views/layouts/terms.html.haml_spec.rb +++ b/spec/views/layouts/terms.html.haml_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe 'layouts/terms' do +RSpec.describe 'layouts/terms', feature_category: :user_profile do let_it_be(:user) { create(:user) } before do diff --git a/spec/views/notify/user_deactivated_email.html.haml_spec.rb b/spec/views/notify/user_deactivated_email.html.haml_spec.rb index 25d18e37cb9..cc005fc0502 100644 --- a/spec/views/notify/user_deactivated_email.html.haml_spec.rb +++ b/spec/views/notify/user_deactivated_email.html.haml_spec.rb @@ -28,18 +28,6 @@ RSpec.describe 'notify/user_deactivated_email.html.haml', feature_category: :use expect(rendered).to have_content(/So long and thanks for all the fish!$/) end end - - context 'when additional text feature flag is disabled' do - before do - stub_feature_flags(deactivation_email_additional_text: false) - end - - it 'does not display the additional text' do - render - - expect(rendered).to have_content(/Please contact your GitLab administrator if you think this is an error\.$/) - end - end end context 'when additional text setting is not set' do diff --git a/spec/views/notify/user_deactivated_email.text.erb_spec.rb b/spec/views/notify/user_deactivated_email.text.erb_spec.rb index 8cf56816b92..60379714ff2 100644 --- a/spec/views/notify/user_deactivated_email.text.erb_spec.rb +++ b/spec/views/notify/user_deactivated_email.text.erb_spec.rb @@ -30,18 +30,6 @@ RSpec.describe 'notify/user_deactivated_email.text.erb', feature_category: :user expect(rendered).to have_content(/So long and thanks for all the fish!$/) end end - - context 'when additional text feature flag is disabled' do - before do - stub_feature_flags(deactivation_email_additional_text: false) - end - - it 'does not display the additional text' do - render - - expect(rendered).to have_content(/Please contact your GitLab administrator if you think this is an error\.$/) - end - end end context 'when additional text setting is not set' do diff --git a/spec/views/projects/commits/_commit.html.haml_spec.rb b/spec/views/projects/commits/_commit.html.haml_spec.rb index 90df0d381ed..d45f1da86e8 100644 --- a/spec/views/projects/commits/_commit.html.haml_spec.rb +++ b/spec/views/projects/commits/_commit.html.haml_spec.rb @@ -74,7 +74,7 @@ RSpec.describe 'projects/commits/_commit.html.haml' do commit: commit } - expect(rendered).not_to have_css('.ci-status-link') + expect(rendered).not_to have_css("[data-testid='ci-status-badge-legacy']") end end @@ -91,7 +91,7 @@ RSpec.describe 'projects/commits/_commit.html.haml' do commit: commit } - expect(rendered).to have_css('.ci-status-link') + expect(rendered).to have_css("[data-testid='ci-status-badge-legacy']") end end @@ -103,7 +103,7 @@ RSpec.describe 'projects/commits/_commit.html.haml' do commit: commit } - expect(rendered).not_to have_css('.ci-status-link') + expect(rendered).not_to have_css("[data-testid='ci-status-badge-legacy']") end end end diff --git a/spec/views/projects/merge_requests/edit.html.haml_spec.rb b/spec/views/projects/merge_requests/edit.html.haml_spec.rb index bb8a4455775..5affe2dd9b4 100644 --- a/spec/views/projects/merge_requests/edit.html.haml_spec.rb +++ b/spec/views/projects/merge_requests/edit.html.haml_spec.rb @@ -46,65 +46,28 @@ RSpec.describe 'projects/merge_requests/edit.html.haml' do end end - context 'with the visible_label_selection_on_metadata feature flag enabled' do - before do - stub_feature_flags(visible_label_selection_on_metadata: true) - end - - context 'when a merge request without fork' do - it_behaves_like 'merge request shows editable fields' - - it "shows editable fields" do - unlink_project.execute - closed_merge_request.reload - - render + context 'when a merge request without fork' do + it_behaves_like 'merge request shows editable fields' - expect(rendered).not_to have_selector('#merge_request_target_branch', visible: false) - expect(rendered).to have_selector('.js-issuable-form-label-selector') - end - end - - context 'when a merge request with an existing source project is closed' do - it_behaves_like 'merge request shows editable fields' + it "shows editable fields" do + unlink_project.execute + closed_merge_request.reload - it "shows editable fields" do - render + render - expect(rendered).to have_selector('#merge_request_target_branch', visible: false) - expect(rendered).to have_selector('.js-issuable-form-label-selector') - end + expect(rendered).not_to have_selector('#merge_request_target_branch', visible: false) + expect(rendered).to have_selector('.js-issuable-form-label-selector') end end - context 'with the visible_label_selection_on_metadata feature flag disabled' do - before do - stub_feature_flags(visible_label_selection_on_metadata: false) - end - - context 'when a merge request without fork' do - it_behaves_like 'merge request shows editable fields' - - it "shows editable fields" do - unlink_project.execute - closed_merge_request.reload - - render - - expect(rendered).not_to have_selector('#merge_request_target_branch', visible: false) - expect(rendered).not_to have_selector('.js-issuable-form-label-selector') - end - end - - context 'when a merge request with an existing source project is closed' do - it_behaves_like 'merge request shows editable fields' + context 'when a merge request with an existing source project is closed' do + it_behaves_like 'merge request shows editable fields' - it "shows editable fields" do - render + it "shows editable fields" do + render - expect(rendered).to have_selector('#merge_request_target_branch', visible: false) - expect(rendered).not_to have_selector('.js-issuable-form-label-selector') - end + expect(rendered).to have_selector('#merge_request_target_branch', visible: false) + expect(rendered).to have_selector('.js-issuable-form-label-selector') end end end diff --git a/spec/views/projects/tags/index.html.haml_spec.rb b/spec/views/projects/tags/index.html.haml_spec.rb index dfa27afb72f..01e8d23fb9f 100644 --- a/spec/views/projects/tags/index.html.haml_spec.rb +++ b/spec/views/projects/tags/index.html.haml_spec.rb @@ -91,14 +91,14 @@ RSpec.describe 'projects/tags/index.html.haml' do render - expect(page.find('.tags .content-list li', text: tag)).to have_css 'a.ci-status-icon-success' - expect(page.all('.tags .content-list li')).to all(have_css('svg.s24')) + expect(page.find('.tags .content-list li', text: tag)).to have_css '.gl-badge .ci-status-icon-success' + expect(page.all('.tags .content-list li')).to all(have_css('svg.s16')) end it 'shows no build status or placeholder when no pipelines present' do render - expect(page.all('.tags .content-list li')).not_to have_css 'svg.s24' + expect(page.all('.tags .content-list li')).not_to have_css 'svg.s16' end it 'shows no build status or placeholder when pipelines are private' do @@ -107,7 +107,7 @@ RSpec.describe 'projects/tags/index.html.haml' do render - expect(page.all('.tags .content-list li')).not_to have_css 'svg.s24' + expect(page.all('.tags .content-list li')).not_to have_css 'svg.s16' end end diff --git a/spec/views/projects/tree/show.html.haml_spec.rb b/spec/views/projects/tree/show.html.haml_spec.rb index 5a1ae715f8f..942c352c6b6 100644 --- a/spec/views/projects/tree/show.html.haml_spec.rb +++ b/spec/views/projects/tree/show.html.haml_spec.rb @@ -5,7 +5,7 @@ require 'spec_helper' RSpec.describe 'projects/tree/show' do include Devise::Test::ControllerHelpers - let(:project) { create(:project, :repository) } + let_it_be(:project) { create(:project, :repository, create_branch: 'bar') } let(:repository) { project.repository } let(:ref) { 'master' } let(:commit) { repository.commit(ref) } @@ -38,4 +38,24 @@ RSpec.describe 'projects/tree/show' do expect(rendered).to have_css('#js-tree-ref-switcher') end end + + context 'when on root ref' do + let(:ref) { repository.root_ref } + + it 'hides compare button' do + render + + expect(rendered).not_to include('Compare') + end + end + + context 'when not on root ref' do + let(:ref) { 'bar' } + + it 'shows a compare button' do + render + + expect(rendered).to include('Compare') + end + end end diff --git a/spec/views/registrations/welcome/show.html.haml_spec.rb b/spec/views/registrations/welcome/show.html.haml_spec.rb deleted file mode 100644 index b652defbd1f..00000000000 --- a/spec/views/registrations/welcome/show.html.haml_spec.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'registrations/welcome/show', feature_category: :onboarding do - let_it_be(:user) { create(:user) } - - before do - allow(view).to receive(:onboarding_status).and_return(Onboarding::Status.new({}, {}, user)) - allow(view).to receive(:current_user).and_return(user) - allow(view).to receive(:welcome_update_params).and_return({}) - - render - end - - subject { rendered } - - it { is_expected.not_to have_selector('label[for="user_setup_for_company"]') } - it { is_expected.to have_button('Get started!') } -end diff --git a/spec/views/shared/groups/_dropdown.html.haml_spec.rb b/spec/views/shared/groups/_dropdown.html.haml_spec.rb index 71fa3a30711..2c6f3b4370e 100644 --- a/spec/views/shared/groups/_dropdown.html.haml_spec.rb +++ b/spec/views/shared/groups/_dropdown.html.haml_spec.rb @@ -5,11 +5,37 @@ require 'spec_helper' RSpec.describe 'shared/groups/_dropdown.html.haml' do describe 'render' do describe 'when a sort option is not selected' do - it 'renders a default sort option' do + before do render 'shared/groups/dropdown' + end + it 'renders a default sort option' do expect(rendered).to have_content 'Last created' end + + it 'renders correct sort by options' do + html_rendered = Nokogiri::HTML(rendered) + sort_options = Gitlab::Json.parse(html_rendered.css('div.dropdown')[0]['data-items']) + + expect(sort_options.size).to eq(6) + expect(sort_options[0]['value']).to eq('name_asc') + expect(sort_options[0]['text']).to eq(s_('SortOptions|Name')) + + expect(sort_options[1]['value']).to eq('name_desc') + expect(sort_options[1]['text']).to eq(s_('SortOptions|Name, descending')) + + expect(sort_options[2]['value']).to eq('created_desc') + expect(sort_options[2]['text']).to eq(s_('SortOptions|Last created')) + + expect(sort_options[3]['value']).to eq('created_asc') + expect(sort_options[3]['text']).to eq(s_('SortOptions|Oldest created')) + + expect(sort_options[4]['value']).to eq('latest_activity_desc') + expect(sort_options[4]['text']).to eq(_('Updated date')) + + expect(sort_options[5]['value']).to eq('latest_activity_asc') + expect(sort_options[5]['text']).to eq(s_('SortOptions|Oldest updated')) + end end describe 'when a sort option is selected' do |