Commit 8bec6b0b authored by Marin Jankovski's avatar Marin Jankovski

Make existing tests test something, return correct errors.

parent 2a8aa742
......@@ -164,12 +164,21 @@ class ProjectsController < ApplicationController
def upload_image
uploader = FileUploader.new('uploads', upload_path, accepted_images)
alt = params['markdown_img'].original_filename
uploader.store!(params['markdown_img'])
link = { 'alt' => File.basename(alt, '.*'),
'url' => File.join(root_url, uploader.url) }
image = params['markdown_img']
if image && accepted_images.map{ |format| image.content_type.include? format }.any?
alt = image.original_filename
uploader.store!(image)
link = { 'alt' => File.basename(alt, '.*'),
'url' => File.join(root_url, uploader.url) }
end
respond_to do |format|
format.json { render json: { link: link } }
if link
format.json { render json: { link: link } }
else
format.json { render json: "Invalid file.", status: :unprocessable_entity }
end
end
end
......
......@@ -25,7 +25,7 @@ class FileUploader < CarrierWave::Uploader::Base
end
def store!(file)
file.original_filename = self.class.generate_filename(file)
@filename = self.class.generate_filename(file)
super
end
......
......@@ -11,34 +11,35 @@ describe ProjectsController do
describe "POST #upload_image" do
before do
sign_in(user)
project.team << [user, :developer]
end
context "without params['markdown_img']" do
it "returns an error" do
post :upload_image, id: project.to_param
expect(response.status).to eq(404)
post :upload_image, id: project.to_param, format: :json
expect(response.status).to eq(422)
end
end
context "with invalid file" do
before do
post :upload_image, id: project.to_param, markdown_img: @img
post :upload_image, id: project.to_param, markdown_img: txt, format: :json
end
it "returns an error" do
expect(response.status).to eq(404)
expect(response.status).to eq(422)
end
end
context "with valid file" do
before do
post :upload_image, id: project.to_param, markdown_img: @img
post :upload_image, id: project.to_param, markdown_img: jpg, format: :json
end
it "returns a content with original filename and new link." do
link = { alt: 'rails_sample', link: '' }.to_json
expect(response.body).to have_content link
expect(response.body).to match "\"alt\":\"rails_sample\""
expect(response.body).to match "\"url\":\"http://test.host/uploads/#{project.path_with_namespace}"
end
end
end
end
\ No newline at end of file
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment