Существует вопрос, который отвечает на этот вопрос для Angular, и вопрос без ответов для Vuejs. Я пытаюсь найти способ смоделировать функцию window.gapi.load()
в моих тестах. Я новичок в тестировании React, и это то, что у меня есть:
it('should render the App component without crashing', function () {
const component = renderer.create(
shallow(
<Root>
<App/>
</Root>
)
)
let tree = component.toJSON()
expect(tree).toMatchSnapshot()
})
Я попробовал базовый c beforeEach, чтобы попытаться загрузить его или что-то еще, но это тоже не сработало. Вот код в компоненте:
const App = () => {
const { isSignedIn } = useSelector(state => state.auth)
const renderApp = () => {
if (isSignedIn) {
return <Home/>
} else {
return (
<div className='app'>
<h1 id='logo'>netTube</h1>
<GoogleAuth/>
</div>
)
}
}
return (
<>
{ renderApp() }
</>
)
}
И вызов в компоненте GoogleAuth:
// GoogleAuth.jsx
componentDidMount() {
window.gapi.load('client:auth2', () => {
window.gapi.client.init({
clientId: process.env.REACT_APP_GOOGLE_CLIENT_ID,
scope: 'email'
}).then(() => {
this.auth = window.gapi.auth2.getAuthInstance()
this.onAuthChange(this.auth.isSignedIn.get())
this.auth.isSignedIn.listen(this.onAuthChange)
})
})
}
Если есть что-то, что вы хотели бы, чтобы я добавил, пожалуйста, спросите. Извините, если информации недостаточно, как я уже сказал, я очень новичок в тестировании React. Спасибо!