diff options
author | Gabriel Mazetto <brodock@gmail.com> | 2018-08-18 06:34:05 +0200 |
---|---|---|
committer | Gabriel Mazetto <brodock@gmail.com> | 2018-08-22 05:41:15 +0200 |
commit | a440c2be018e79ee671543c2c96cc1f741336fde (patch) | |
tree | a3a0597a75d53eb3b57276ae93c8e40c2209d71b /spec/services | |
parent | fe77eb4df112409ef1f951afebef1d45927cd8e4 (diff) | |
download | gitlab-ce-a440c2be018e79ee671543c2c96cc1f741336fde.tar.gz |
Add FeatureFlag to disable hashed storage migration when renaming
We usually want a feature flag to be disabled by default and
hide the feature until it's enabled.
This is an unconventional use: when the flag is enabled, it will
"DISABLE" the behavior.
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/projects/update_service_spec.rb | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb index 9572b4110d5..2409be80cec 100644 --- a/spec/services/projects/update_service_spec.rb +++ b/spec/services/projects/update_service_spec.rb @@ -249,7 +249,17 @@ describe Projects::UpdateService do expect(project.errors.messages[:base]).to include('There is already a repository with that name on disk') end - context 'when hashed storage enabled' do + it 'renames the project without upgrading it' do + result = update_project(project, admin, path: 'new-path') + + expect(result).not_to include(status: :error) + expect(project).to be_valid + expect(project.errors).to be_empty + expect(project.disk_path).to include('new-path') + expect(project.reload.hashed_storage?(:repository)).to be_falsey + end + + context 'when hashed storage is enabled' do before do stub_application_setting(hashed_storage_enabled: true) end @@ -262,6 +272,22 @@ describe Projects::UpdateService do expect(project.errors).to be_empty expect(project.reload.hashed_storage?(:repository)).to be_truthy end + + context 'when disable_hashed_storage_upgrade feature flag is enabled' do + before do + expect(Feature).to receive(:enabled?).with(:disable_hashed_storage_upgrade) { true } + end + + it 'renames the project without upgrading it' do + result = update_project(project, admin, path: 'new-path') + + expect(result).not_to include(status: :error) + expect(project).to be_valid + expect(project.errors).to be_empty + expect(project.disk_path).to include('new-path') + expect(project.reload.hashed_storage?(:repository)).to be_falsey + end + end end end |