結論
ts-jest?esmで書いてるから?とりあえずでimportするのやめよう。
状況
Jestの右も左もわからないがfetcをmockしてゴニョゴニョしていた。
公式の例にもnode-fetchを使った例が載ってるぐらいなので、コピペして動かそうとしていたら問題発生。
以下のエラーが発生した。
23 |
24 | afterEach(() => {
| ^
26 | })
27 | test('should be defined', () => {
28 | expect(getImageFromWeb).toBeDefined()
コピペしたコードはこれ
import {expect, jest, test} from '@jest/globals';
import type {fetch} from 'node-fetch';
jest.mock('node-fetch');
let mockedFetch: jest.Mocked<typeof fetch>;
afterEach(() => {
mockedFetch.mockClear();
});
test('makes correct call', () => {
mockedFetch = getMockedFetch();
// ...
});
test('returns correct data', () => {
mockedFetch = getMockedFetch();
// ...
});
対応
コピペしてきたtestファイルで以下のインポート文を削除したら動いた。
import { expect, jest, test } from '@jest/globals'