typescript 使用@okta/okta-auth-js时发生Jest测试错误

fcwjkofz  于 2023-02-25  发布在  TypeScript
关注(0)|答案(1)|浏览(142)

我有一个React应用程序,它通过Okta提供第三方SSO,因此使用@okta/okta-auth-js包。
拥有一个身份验证文件,该文件定义OktaAuth的示例并传递安装配置:

import OktaAuth, { OktaAuthOptions } from '@okta/okta-auth-js';

const oktaConfig: OktaAuthOptions = {
  issuer: `issuer_val_here`,
  ...etc,
};

const oktaAuth = new OktaAuth(oktaConfig);

在应用程序中运行良好,但当运行以任何方式使用此身份验证文件的组件的jest测试时,我会立即得到错误:

TypeError: _oktaAuthJs.default is not a constructor

      28 | };
      29 |
    > 30 | const oktaAuth = new OktaAuth(oktaConfig);
         |                  ^

我尝试过模仿它,并通过很多不同的方式来设置它,比如git线程和论坛帖子,我尝试过:

"moduleNameMapper": {
      "^@okta/okta-auth-js$": "<rootDir>/node_modules/@okta/okta-auth-js/dist/okta-auth-js.min.js"
    }

package.json
我已经尝试了我能想到的jest.mocksetupTests.js中的mocking的所有不同组合,但仍然出现此错误,没有任何变化
以前有没有人处理过这个问题并让它工作?

8yparm6h

8yparm6h1#

您的导入应为:

import { OktaAuth, OktaAuthOptions } from '@okta/okta-auth-js';

代替

import OktaAuth, { OktaAuthOptions } from '@okta/okta-auth-js';

相关问题