Comments (6)
Answering your questions
- Why we don't ever call our testable method #authenticate_with_token?
- It is probably my mistake, I'll be working on the second edition of the book and try to fix this kind of issues.
- As I understand, we only stubbing response object and check if stubbing was made perfecty? What is the sense?
- I'm stubbing method calls that may affect the final expectation, what do you think we should do?
- If I change this line
authentication.stub(:current_user).and_return(@user)
With this line they should not pass, are they passing?
from market_place_api.
4 If I write "#authenticate_with_token!" something like below, all tests should be of course passing. Are we really testing, that this method should respond to 401 and message "Not authenticated"?
module Authenticable
def current_user
@current_user ||= User.find_by(auth_token: request.headers['Authorization'])
end
def authenticate_with_token!
render json: { ok: "You are welcome" },
status: :ok unless user_signed_in?
end
def user_signed_in?
current_user.present?
end
end
5 Yes, they are.
P.S. I find it as a better solution link:
describe '.authenticate_with_token' do
before do
allow(authentication).to receive(:current_user).and_return(nil)
allow(authentication).to receive(:render) do |args|
args
end
end
it 'returns error' do
expect(authentication.authenticate_with_token![:json][:errors]).to eq 'Not authenticated'
end
it 'returns unauthorized status' do
expect(authentication.authenticate_with_token![:status]).to eq :unauthorized
end
end
from market_place_api.
@fatkodima thanks for the link, this solution makes sense.
from market_place_api.
Thanks @fatkodima for the information, it will definitely going to be updated on the second edition of the book
from market_place_api.
Sorry to bring an old thread but can you tell me why?
allow(authentication).to receive(:render) do |args| # возвращаем аргументы
args
end
is necessary? without it I get
undefined method "render"
from market_place_api.
It is just stubbing the render
call, so when the actual call is made, you allow the method to receive that call and give an ouput to it
from market_place_api.
Related Issues (20)
- Body is blank.? --I can not do DELETE/ POST / PUT / interface Sabisu_Rails HOT 3
- Listing: 6.5: Failure/Error: @user.destroy HOT 1
- Chapter 6 should_not be_published HOT 1
- Unable to access api endpoint (via cURL and in browser) HOT 1
- Found an error in the beginning of Chapter 8.1
- Latest updates of this project HOT 4
- Chapter 10 Pagination issue: Meta object in render json: products, meta: is not rendered in ActiveModelSerializer 0.10.2 HOT 1
- json render format; chapter 7 HOT 1
- Filter chain halted as :authenticate_with_token! rendered or redirected Completed 401 Unauthorized HOT 3
- Rspec test failing in Rails 5 HOT 6
- Rails 5.0.1: Sass::SyntaxError in SabisuRails::Explorer#index HOT 5
- Listing 5.12 HOT 3
- How do I do a log out(destroy the session) using cUrl? HOT 5
- 500 error when user not exist HOT 5
- sign_in in sessions controller does not affect tests HOT 4
- Chapter 6.1.3 Dependency Destroy Factory HOT 3
- I have been getting a 404 for the same request which is successful on another POSTMAN. HOT 1
- Chapter 6.2.6: ActionController::UrlGenerationError: No route matches {:action=>"destroy", :controller=>"api/v1/products" ... HOT 1
- Chapter 6 ActionController::UrlGenerationError:
- Chapter 5 Authentication Rails 5.2
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 market_place_api.