diff options
Diffstat (limited to 'spec/helpers/projects/error_tracking_helper_spec.rb')
-rw-r--r-- | spec/helpers/projects/error_tracking_helper_spec.rb | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/spec/helpers/projects/error_tracking_helper_spec.rb b/spec/helpers/projects/error_tracking_helper_spec.rb index 882031a9c86..f49458be40d 100644 --- a/spec/helpers/projects/error_tracking_helper_spec.rb +++ b/spec/helpers/projects/error_tracking_helper_spec.rb @@ -5,8 +5,8 @@ require 'spec_helper' RSpec.describe Projects::ErrorTrackingHelper do include Gitlab::Routing.url_helpers - let_it_be(:project, reload: true) { create(:project) } - let_it_be(:current_user) { create(:user) } + let(:project) { build_stubbed(:project) } + let(:current_user) { build_stubbed(:user) } describe '#error_tracking_data' do let(:can_enable_error_tracking) { true } @@ -34,20 +34,21 @@ RSpec.describe Projects::ErrorTrackingHelper do 'error-tracking-enabled' => 'false', 'list-path' => list_path, 'project-path' => project_path, - 'illustration-path' => match_asset_path('/assets/illustrations/cluster_popover.svg') + 'illustration-path' => match_asset_path('/assets/illustrations/cluster_popover.svg'), + 'show-integrated-tracking-disabled-alert' => 'false' ) end end context 'with error_tracking_setting' do - let(:error_tracking_setting) do - create(:project_error_tracking_setting, project: project) + let(:project) { build_stubbed(:project, :with_error_tracking_setting) } + + before do + project.error_tracking_setting.enabled = enabled end context 'when enabled' do - before do - error_tracking_setting.update!(enabled: true) - end + let(:enabled) { true } it 'show error tracking enabled' do expect(helper.error_tracking_data(current_user, project)).to include( @@ -57,9 +58,7 @@ RSpec.describe Projects::ErrorTrackingHelper do end context 'when disabled' do - before do - error_tracking_setting.update!(enabled: false) - end + let(:enabled) { false } it 'show error tracking not enabled' do expect(helper.error_tracking_data(current_user, project)).to include( @@ -67,6 +66,38 @@ RSpec.describe Projects::ErrorTrackingHelper do ) end end + + context 'with integrated error tracking feature' do + using RSpec::Parameterized::TableSyntax + + where(:feature_flag, :enabled, :integrated, :show_alert) do + false | true | true | true + false | true | false | false + false | false | true | false + false | false | false | false + true | true | true | false + true | true | false | false + true | false | true | false + true | false | false | false + end + + with_them do + before do + stub_feature_flags(integrated_error_tracking: feature_flag) + + project.error_tracking_setting.attributes = { + enabled: enabled, + integrated: integrated + } + end + + specify do + expect(helper.error_tracking_data(current_user, project)).to include( + 'show-integrated-tracking-disabled-alert' => show_alert.to_s + ) + end + end + end end context 'when user is not maintainer' do |