-
Notifications
You must be signed in to change notification settings - Fork 269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SDK-1577] [SDK-1578] Add login functionality #5
Conversation
import { renderHook } from '@testing-library/react-hooks'; | ||
import { | ||
Auth0Client, | ||
// @ts-ignore |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to use manual mocks to mock the Auth0Client class https://jestjs.io/docs/en/es6-class-mocks#manual-mock
This is so that I can export the methods as individual mocked methods, so I can do:
expect(getTokenSilently).toHaveBeenCalled()
Rather than use automatic mocks and do this everywhere:
expect((Auth0Client as any as jest.Mock).mock.instances[0].getTokenSilently).toHaveBeenCalled()
Since TS doesn't understand mocking in Jest, we do have to ts-ignore
the additional imports
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not something to change in this PR, but I think we need to think about why we're mocking the SPA SDK and whether that's the right thing, instead of mocking the resulting HTTP calls (or handling them with some kind of test proxy).
For the same reason we don't test or mock private methods, the fact we're using the SDK internally should just be that - an internal detail. HTTP calls out to the auth service are where the 'seams' are and it's the seams that should ideally be mocked. If we go down the path of mocking dependencies like these, we can lose sight of what happens when those dependencies change if we're always mocking out the ideal scenario.
# Conflicts: # README.md
…ontext and useAuth0
Description
Add login functionality to the auth0 hook
Testing
Checklist
master