我在我的一个组件中使用了jose的SignJWT,但它总是导致'jose.SignJWT'不是一个构造函数。我不明白我做错了什么,哈哈
我是这么嘲笑的
jest.mock('jose', () => {
return {
decodeJwt: jest.fn(() => Promise.resolve({})),
SignJWT: jest.fn().mockImplementation(() => {
return {
setProtectedHeader: jest.fn(),
sign: jest.fn(),
};
}),
};
});
字符串
我也试过FF:
jest.mock('jose', () => ({
__esModule: true,
decodeJwt: jest.fn(() => Promise.resolve({})),
SignJWT: jest.fn().mockImplementation(() => {
return {
setProtectedHeader: jest.fn(() => this),
sign: jest.fn(() => {}),
};
}),
}));
型
但现在写着token.sign is not a function
如果有帮助的话我想嘲笑这门课
export declare class SignJWT extends ProduceJWT {
private _protectedHeader;
/**
* Sets the JWS Protected Header on the SignJWT object.
*
* @param protectedHeader JWS Protected Header. Must contain an "alg" (JWS Algorithm) property.
*/
setProtectedHeader(protectedHeader: JWTHeaderParameters): this;
/**
* Signs and returns the JWT.
*
* @param key Private Key or Secret to sign the JWT with. See
* {@link https://github.com/panva/jose/issues/210#jws-alg Algorithm Key Requirements}.
* @param options JWT Sign options.
*/
sign(key: KeyLike | Uint8Array, options?: SignOptions): Promise<string>;
}
型
1条答案
按热度按时间eulz3vhy1#
我认为你设置mock的方式有一些问题。尝试这种方式来模拟'SignJWT'类:
字符串
尝试给予这种方法,看看它是否解决了“is not a constructor”的问题。如果你遇到了“token.sign is not a function”的问题,请仔细检查sign方法是否被正确地模拟,遵循提供的示例。