I've got a StencilJS component that looks something like this;
import { callFunction } from "../../callFunctionFile"
const callToFn = callFunction();
@Component({
tag: 'dialog',
styleUrl: 'dialog.scss',
shadow: true,
})
export class Dialog {
...
}
In my callFunctionFile.ts
I have this
export function callFunction() {
... //some logic
return false;
}
In my test I've got the following;
jest.mock('../../callFunctionFile', () => ({
callFunction: jest.fn(() => true),
}));
import { callFunction } from "../../callFunctionFile"
test("call to callFunctionFile", () => {
expect(callFunction()).toBeTruthy(); //success
})
test("renders the component", () => {
const page = await newSpecPage({
components: [Dialog],
html: `
<dialog>a dialog</dialog>
`,
});
expect(page.root).toMatchSnapshot();
})
Why does the first test successfully mock the call to callFunction()
and return true. However, when rendering the component and call newSpecPage
, the call to callFunction()
(within the component) is not mocked and returns false?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…