diff options
author | Micaƫl Bergeron <mbergeron@gitlab.com> | 2018-06-28 17:57:28 +0300 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-07-03 19:57:15 +0300 |
commit | cebdd267e672c75696cd534bb89d10fda8de129f (patch) | |
tree | ae1acb12eec102ac3c7cf0769dfaaa4df29c4a1b /spec/lib/gitlab/gfm | |
parent | e61f66b3d16cf097af8fbf3072018fd7d9ec8b67 (diff) |
add support for file copy on object storage
Diffstat (limited to 'spec/lib/gitlab/gfm')
-rw-r--r-- | spec/lib/gitlab/gfm/uploads_rewriter_spec.rb | 68 |
1 files changed, 43 insertions, 25 deletions
diff --git a/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb b/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb index 4d72e60a8b3..9a3e958515f 100644 --- a/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb +++ b/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb @@ -20,37 +20,55 @@ describe Gitlab::Gfm::UploadsRewriter do "Text and #{image_uploader.markdown_link} and #{zip_uploader.markdown_link}" end - describe '#rewrite' do - let!(:new_text) { rewriter.rewrite(new_project) } - - let(:old_files) { [image_uploader, zip_uploader].map(&:file) } - let(:new_files) do - described_class.new(new_text, new_project, user).files + shared_examples "files are accessible" do + describe '#rewrite' do + let!(:new_text) { rewriter.rewrite(new_project) } + + let(:old_files) { [image_uploader, zip_uploader] } + let(:new_files) do + described_class.new(new_text, new_project, user).files + end + + let(:old_paths) { old_files.map(&:path) } + let(:new_paths) { new_files.map(&:path) } + + it 'rewrites content' do + expect(new_text).not_to eq text + expect(new_text.length).to eq text.length + end + + it 'copies files' do + expect(new_files).to all(exist) + expect(old_paths).not_to match_array new_paths + expect(old_paths).to all(include(old_project.disk_path)) + expect(new_paths).to all(include(new_project.disk_path)) + end + + it 'does not remove old files' do + expect(old_files).to all(exist) + end + + it 'generates a new secret for each file' do + expect(new_paths).not_to include image_uploader.secret + expect(new_paths).not_to include zip_uploader.secret + end end + end - let(:old_paths) { old_files.map(&:path) } - let(:new_paths) { new_files.map(&:path) } - - it 'rewrites content' do - expect(new_text).not_to eq text - expect(new_text.length).to eq text.length - end + context "file are stored locally" do + include_examples "files are accessible" + end - it 'copies files' do - expect(new_files).to all(exist) - expect(old_paths).not_to match_array new_paths - expect(old_paths).to all(include(old_project.disk_path)) - expect(new_paths).to all(include(new_project.disk_path)) - end + context "files are store remotely" do + before do + stub_uploads_object_storage(FileUploader) - it 'does not remove old files' do - expect(old_files).to all(exist) + old_files.each do |file| + file.migrate!(ObjectStorage::Store::REMOTE) + end end - it 'generates a new secret for each file' do - expect(new_paths).not_to include image_uploader.secret - expect(new_paths).not_to include zip_uploader.secret - end + include_examples "files are accessible" end describe '#needs_rewrite?' do |