summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2017-12-05 12:26:20 -0800
committerMichael Kozono <mkozono@gmail.com>2017-12-05 14:57:58 -0800
commit869d08b581495161352a661ac29b20b3925deaf0 (patch)
tree3410214980a6defaaf9c278d96a580895685c17d /spec/lib
parent77be7efcf58e0c6cf7a16c249161c0c791c545e1 (diff)
downloadgitlab-ce-869d08b581495161352a661ac29b20b3925deaf0.tar.gz
Process normal paths in batch containing bad paths
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb b/spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb
index 35ea8059510..e1a5a17a60c 100644
--- a/spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb
+++ b/spec/lib/gitlab/background_migration/populate_untracked_uploads_spec.rb
@@ -119,6 +119,26 @@ describe Gitlab::BackgroundMigration::PopulateUntrackedUploads, :migration, :sid
expect(table_exists?(:untracked_files_for_uploads)).to be_falsey
end
+
+ it 'does not block a whole batch because of one bad path' do
+ untracked_files_for_uploads.create!(path: "#{Gitlab::BackgroundMigration::PrepareUntrackedUploads::RELATIVE_UPLOAD_DIR}/#{project2.full_path}/._7d37bf4c747916390e596744117d5d1a")
+ expect(untracked_files_for_uploads.count).to eq(9)
+ expect(uploads.count).to eq(4)
+
+ subject.perform(1, untracked_files_for_uploads.last.id)
+
+ expect(untracked_files_for_uploads.count).to eq(1)
+ expect(uploads.count).to eq(8)
+ end
+
+ it 'an unparseable path is shown in error output' do
+ bad_path = "#{Gitlab::BackgroundMigration::PrepareUntrackedUploads::RELATIVE_UPLOAD_DIR}/#{project2.full_path}/._7d37bf4c747916390e596744117d5d1a"
+ untracked_files_for_uploads.create!(path: bad_path)
+
+ expect(Rails.logger).to receive(:error).with(/Error parsing path "#{bad_path}":/)
+
+ subject.perform(1, untracked_files_for_uploads.last.id)
+ end
end
context 'with no untracked files' do