【发布时间】:2018-06-21 04:54:18
【问题描述】:
Test-connection.ts 文件为:
import { IEnvironmentMap, load } from 'dotenv-extended';
import { getTokensWithAuthCode, sdk } from '../src/connection-manager';
describe('Box API connection tests', () => {
jest.useFakeTimers();
let boxConfig: IEnvironmentMap;
beforeAll(() => {
boxConfig = load({
errorOnMissing: true,
});
});
describe('getTokensWithAuthCode function Tests', () => {
it('should reject a promise if there is wrong auth code provided', async () => {
jest.mock('box-node-sdk', () => ({
getTokensAuthorizationCodeGrant: jest.fn(),
}));
await getTokensWithAuthCode();
expect(sdk.getTokensAuthorizationCodeGrant).toHaveBeenCalled();
});
});
});
这是我的主程序文件 连接.ts
import * as BoxSDK from 'box-node-sdk';
import { IEnvironmentMap, load } from 'dotenv-extended';
import {ITokenInfo} from '../typings/box-node-sdk';
const boxConfig: IEnvironmentMap = load({
errorOnMissing: true,
});
export const sdk: BoxSDK = new BoxSDK({
clientID: boxConfig.BOX_CLIENT_ID,
clientSecret: boxConfig.BOX_CLIENT_SECRET,
});
export async function getTokensWithAuthCode() {
return await new Promise((resolve: (tokenInfo: ITokenInfo) => void, reject: (err: Error) => void) => {
sdk.getTokensAuthorizationCodeGrant(boxConfig.BOX_AUTH_CODE, null, (err: Error, tokenInfo: ITokenInfo) => {
if (err !== null) {
reject(err);
}
resolve(tokenInfo);
});
});
}
当以jest --coverage 运行时,它会抛出错误。我怀疑这是由于错误的模拟。你能帮我开玩笑地正确实现这个模块的模拟吗?
【问题讨论】:
-
我过去试过这个,但我无法让它工作。我隐约记得这件事。我想如果您使用
require而不是import,它可能会起作用。 -
我试过了,还是不行。
标签: javascript typescript jestjs