【发布时间】:2021-11-11 13:57:38
【问题描述】:
这也是Auth0 node-auth0 library上的一个问题。用例是我使用 Auth0 create Actions API 到 Terraform 并希望能够针对 Actions 编写测试。
在此示例中,我希望能够在不使用实际值的情况下测试 onExecutePostLogin。
// auth0-post-login.js
exports.onExecutePostLogin = async (event, api) => {
const userId = event.user.user_id
const ManagementClient = require('auth0').ManagementClient
const management = new ManagementClient({
domain: event.secrets.domain,
clientId: event.secrets.clientId,
clientSecret: event.secrets.clientSecret,
audience: `https://${event.secrets.domain}/api/v2/`,
scope: 'read:users',
})
const params = { id: userId, page: 0, per_page: 50, include_totals: false }
let userPermissions = await management.getUserPermissions(params)
const map = require('array-map')
const permissions = map(userPermissions, function(permission) {
return permission.permission_name
})
api.accessToken.setCustomClaim('https://example.com/access', permissions.join(' '))
}
其中一个主要问题是像getUserPermissions 这样的函数是通过它们的实用程序包装器创建的:
utils.wrapPropertyMethod(ManagementClient, 'getUserPermissions', 'users.getPermissions');
这会导致 jest 在查找函数时遇到问题。
【问题讨论】: