Comments (4)
For the validation you have to mock out :picture too and it should return something not Nil.
before(:each) do
<Model>.any_instance.stub(:avatar).and_return('png')
end
from attachinary.
There is no need to test that the file is actually uploaded (since the attachinary library is already well tested). You just need to make sure that the rest of your form is working properly. If the file upload is mandatory, then you should stub out the file upload process on the server (e.g. User.stub(:avatar=)
). However, if you're using selenium (or other js driver) to test this up, then you would need some more advanced setup (e.g. something like this http://robots.thoughtbot.com/post/34761570235/using-capybara-to-test-javascript-that-makes-http).
If you really need to upload images to cloudinary as part of your test process, you can as well delete them all at the end of test suite. Just put this inside RSpec.configure
block within your spec_helper
file:
config.after(:suite) do
print "\n\n Cleaning up uploaded files"
begin
Cloudinary::Api.delete_resources_by_tag('test_env')
print " (done)"
rescue Cloudinary::Api::RateLimited => e
print " (#{e.message})"
end
print "\n\n"
end
from attachinary.
I like your suggestion about subbing and not uploading the image again and again!
I've read now some posts about stubbing. And tried to "stub" the avatar. But wont work.
What should the stub return? A simple "true"? or an "fabricated" object?
I've tried stubbing in the before(:each) with
User.stub(:image=).and_return(true).
and both of them
User.any_instance.stub(:image=)
User.any_instance.stub(:image=).and_return(true)
Normally I become
Failure/Error: user = User.create! valid_attributes
Mongoid::Errors::Validations:
Problem:
Validation of User failed.
Summary:
The following errors were found: Image can't be blank, Image can't be blank, Image can't be blank
Resolution:
Try persisting the document with valid data or remove the validations.
My Model contains an validate_presence_of on the attachinary :avatar.
Mongoid::Errors::Validations:
Problem:
Validation of User failed.
Summary:
The following errors were found: Image can't be blank, Image can't be blank, Image can't be blank
Resolution:
Try persisting the document with valid data or remove the validations.
also tried to deliver a hash with parameter:
User.any_instance.stub(:image).and_return({_id: "12345676543ds234542",
public_id: "jgj3mib2mwxnvduujdt2",
version: "1352472513",
width: 1311,
height: 1836,
format: "jpg",
resource_type: "image",
updated_at: 1352472546694,
created_at: 1352472546694})
end
The error I normally get with the stub above:
11) UsersController POST create with invalid params assigns a newly created but unsaved user as @user
Failure/Error: post :create, {:user => {}}
NoMethodError:
undefined method `callback_executable?' for #<Hash:0x007fcf9cce1f30>
Sorry for reponening that question. But it is taking me down the rabbit hole...
Thank you assembler
from attachinary.
with excluding the validation it works. But is this the right approach to test controllers?
before(:each) do
Slider.any_instance.stub(:valid?).and_return(true)
end
from attachinary.
Related Issues (20)
- Dependency on old version of cloudinary gem HOT 4
- The attachment files options may be serialized in the wrong way
- Problem implementing has_attachments HOT 1
- destroy_file callback not invoked HOT 4
- File instances break on serialization w/ active model serializers
- Validate presence error message
- undefined method `has_attachment' HOT 3
- Rails 5.1 HOT 9
- Using with administrate gem HOT 1
- limit min and max file size upload HOT 2
- rake attachinary:install:migrations -> Index table names are too long HOT 2
- ArgumentError Exception: too few arguments
- Destroy attachinary
- Chunked video upload HOT 1
- Attachinary::File::ActiveRecord_Associations_CollectionProxy:0x007fa5fbada388
- Issue with `process_input` function with Rails 5 Parameters
- Add custom filed to attachinary
- Handling video files better
- CORS endpoint echoes unsafe JSON / Potential XSS
- attachinary_file_field as required
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from attachinary.