diff options
Diffstat (limited to 'spec/support/helpers/workhorse_lfs_helpers.rb')
-rw-r--r-- | spec/support/helpers/workhorse_lfs_helpers.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/support/helpers/workhorse_lfs_helpers.rb b/spec/support/helpers/workhorse_lfs_helpers.rb new file mode 100644 index 00000000000..c9644826317 --- /dev/null +++ b/spec/support/helpers/workhorse_lfs_helpers.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module WorkhorseLfsHelpers + extend self + + def put_finalize( + lfs_tmp = nil, with_tempfile: false, verified: true, remote_object: nil, + args: {}, to_project: nil, size: nil, sha256: nil) + + lfs_tmp ||= "#{sample_oid}012345678" + to_project ||= project + uploaded_file = + if with_tempfile + upload_path = LfsObjectUploader.workhorse_local_upload_path + file_path = upload_path + '/' + lfs_tmp + + FileUtils.mkdir_p(upload_path) + FileUtils.touch(file_path) + File.truncate(file_path, sample_size) + + UploadedFile.new(file_path, filename: File.basename(file_path), sha256: sample_oid) + elsif remote_object + fog_to_uploaded_file(remote_object, sha256: sample_oid) + else + UploadedFile.new( + nil, + size: size || sample_size, + sha256: sha256 || sample_oid, + remote_id: 'remote id' + ) + end + + finalize_headers = headers + finalize_headers.merge!(workhorse_internal_api_request_header) if verified + + workhorse_finalize( + objects_url(to_project, sample_oid, sample_size), + method: :put, + file_key: :file, + params: args.merge(file: uploaded_file), + headers: finalize_headers, + send_rewritten_field: include_workhorse_jwt_header + ) + end +end |