diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb index ac719f74f6a238ededb481639d5601b0de9f84cc..25d879ff449b771362dfece0aca75cba31fafc4a 100644 --- a/app/uploaders/file_uploader.rb +++ b/app/uploaders/file_uploader.rb @@ -7,9 +7,9 @@ class FileUploader < CarrierWave::Uploader::Base attr_accessor :project, :secret - def initialize(project, secret = self.class.generate_secret) + def initialize(project, secret = nil) @project = project - @secret = secret + @secret = secret || self.class.generate_secret end def base_dir diff --git a/spec/factories/file_uploader.rb b/spec/factories/file_uploader.rb new file mode 100644 index 0000000000000000000000000000000000000000..69a4e6d28fbfeb26d1cd667e0593a00a7ed1fcc7 --- /dev/null +++ b/spec/factories/file_uploader.rb @@ -0,0 +1,19 @@ +FactoryGirl.define do + factory :file_uploader, class: FileUploader do + project + secret nil + + transient do + path { File.join(Rails.root, 'spec/fixtures/rails_sample.jpg') } + file { Rack::Test::UploadedFile.new(path) } + end + + after(:build) do |uploader, evaluator| + uploader.store!(evaluator.file) + end + + initialize_with do + new(project, secret) + end + end +end diff --git a/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb b/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb index 7027954ef27fbdf3dd3b1c5059798e26aa17f12b..770c08148c9f4b858147ef905b127637e34a4b8e 100644 --- a/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb +++ b/spec/lib/gitlab/gfm/uploads_rewriter_spec.rb @@ -7,10 +7,7 @@ describe Gitlab::Gfm::UploadsRewriter do let(:rewriter) { described_class.new(text, old_project, user) } context 'text contains links to uploads' do - let(:path) { Rails.root + 'spec/fixtures/rails_sample.jpg' } - let(:file) { fixture_file_upload(path, 'image/jpg') } - let(:uploader) { FileUploader.new(old_project) } - let!(:store) { uploader.store!(file) } # TODO, see #xxx (carrierwave issue) + let(:uploader) { build(:file_uploader, project: old_project) } let(:markdown) { uploader.to_h[:markdown] } let(:text) { "Text and #{markdown}"}