我在任何地方都找不到解释如何在 React Native 中正确模拟 auth0 请求的方法。
在 detox GitHub 上提出的几个问题说他们没有责任解释如何模拟 auth0,我同意。
但是我在其他地方没有找到一步一步的解释 - 甚至连源代码都没有找到。
有人可以帮忙吗?
我的代码有一个按钮,单击后会调用
auth0.webAuth.authorize
使用 Detox 测试 WebView 组件并不容易,如果您的应用程序打开应用程序内浏览器,则几乎不可能。
如果您使用 WebViewComponent,有一个解决方法。基本上,您需要注入 JavaScript 来填充用户名/电子邮件和密码字段,并有一个隐藏按钮来触发身份验证。
<View style={styles.fakeLoginButtonContainer}>
<Button
testID='e2e-login-test-id'
title='DUMMY_LOGIN_BUTTON'
onPress={() => {
console.log('hacking webview')
const jsCode =
"document.getElementById('signInName').value = '{USERNAME_EMAIL}';document.getElementById('password').value = '{PASSWORD}';document.getElementById('next').disabled = false;document.getElementById('next').click();"
webViewRef.current?.injectJavaScript(jsCode)
}}
/>
</View>
这个解决方法过去对我有用。祝你好运。