From 733cd34079da769493f345df906d19e941f1aa68 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Tue, 14 Feb 2023 11:19:56 -0300 Subject: [PATCH] Add import_export_work_items_csv feature flag --- app/services/work_items/export_csv_service.rb | 8 ++++++++ .../development/import_export_work_items_csv.yml | 8 ++++++++ spec/services/work_items/export_csv_service_spec.rb | 10 ++++++++++ 3 files changed, 26 insertions(+) create mode 100644 config/feature_flags/development/import_export_work_items_csv.yml diff --git a/app/services/work_items/export_csv_service.rb b/app/services/work_items/export_csv_service.rb index e0a1b90b597a02..9bef75e2c40091 100644 --- a/app/services/work_items/export_csv_service.rb +++ b/app/services/work_items/export_csv_service.rb @@ -2,6 +2,14 @@ module WorkItems class ExportCsvService < ExportCsv::BaseService + NotAvailableError = StandardError.new('This feature is currently behind a feature flag and it is not available.') + + def csv_data + raise NotAvailableError unless Feature.enabled?(:import_export_work_items_csv, resource_parent) + + super + end + def email(mail_to_user) # TODO - will be implemented as part of https://gitlab.com/gitlab-org/gitlab/-/issues/379082 end diff --git a/config/feature_flags/development/import_export_work_items_csv.yml b/config/feature_flags/development/import_export_work_items_csv.yml new file mode 100644 index 00000000000000..344af8659ca52e --- /dev/null +++ b/config/feature_flags/development/import_export_work_items_csv.yml @@ -0,0 +1,8 @@ +--- +name: import_export_work_items_csv +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111935 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/390330 +milestone: '15.9' +type: development +group: group::certify +default_enabled: false diff --git a/spec/services/work_items/export_csv_service_spec.rb b/spec/services/work_items/export_csv_service_spec.rb index fdf195fa9fd1bf..0718d3b686a556 100644 --- a/spec/services/work_items/export_csv_service_spec.rb +++ b/spec/services/work_items/export_csv_service_spec.rb @@ -15,6 +15,16 @@ def csv CSV.parse(subject.csv_data, headers: true) end + context 'when import_export_work_items_csv flag is not enabled' do + before do + stub_feature_flags(import_export_work_items_csv: false) + end + + it 'renders an error' do + expect { subject.csv_data }.to raise_error(described_class::NotAvailableError) + end + end + it 'renders csv to string' do expect(subject.csv_data).to be_a String end -- GitLab