【Salesforce】Trailheadの Jest モック(Apexワイヤーアダプター)サンプルコードの誤り
(2022-06-27 19:23)現在のTrailheadワイヤサービスの Jest テストの記述 単元 | Salesforce TrailheadのApexワイヤーアダプターのサンプルコードには誤りがある。
//wireApex.test.js
import getAccountList from '@salesforce/apex/AccountController.getAccountList';
//テスト内で、下記のemit()を実行
getAccountList.emit(mockGetAccountList);//→「getAccountList.emit()は未定義(「TypeError: getAccountList.emit is not a function」)」と怒られる。
jest.mock()
を使って、明示的にモックを作成するApexメソッドを指定しないといけない。
import getAccountList from '@salesforce/apex/AccountController.getAccountList';
jest.mock(
'@salesforce/apex/AccountController.getAccountList',
()=>{
const { createApexTestWireAdapter } = require("@salesforce/sfdx-lwc-jest");
return {
default: createApexTestWireAdapter(jest.fn()),
};
},
{virtual: true}
);
//テスト内で、下記のemit()を実行
getAccountList.emit(mockGetAccountList);//→成功
また、ググると「registerApexTestWireAdapter」も出てくるが、これはすでに非推奨になっている。Trailheadは2世代ぐらい古いっぽい。
【参考】
lwc jest – registerApexTestWireAdapter is deprecated when working through trailhead Lightning Web Components Tests – Salesforce Stack Exchange
feat: createWireAdapterMock instead of register by jodarove · Pull Request #36 · salesforce/wire-service-jest-util · GitHub
lwc-recipes/apexWireMethodToProperty.test.js at main · trailheadapps/lwc-recipes · GitHub
ディスカッション
コメント一覧
まだ、コメントがありません