import { IndexViewController, } from "@/core"; import { useEventBind, useNavParamsBind } from "@/hooks/use-view"; import { model } from './index-view-controller-model'; const evt = useEventBind(emit); const params: any = { name: model.name, model, evt, isLoadDefault: true, openType: 'ROUTE', pLoadingHelper: undefined, handler: undefined }; const controller: any = new IndexViewController(params); useNavParamsBind(controller, {}); const store = controller.getStore(); describe('IndexViewController unit test', () => { const initViewActionState = () => { } const spy = vi.spyOn(controller, "initViewActionState").mockImplementation(initViewActionState); test('viewMounted', () => { const projectSetting = App.getProjectSetting(); const opt = {}; expect(store).toHaveProperty('showLogo', projectSetting.showLogo); expect(controller.viewMounted(opt)).rejects.toStrictEqual( {ok: false, data: null, rowData: { status: 500 }} ); expect(spy).toHaveBeenCalled(); expect(emit).toHaveBeenCalled(); expect(emit).toHaveBeenCalledWith('view-mounted', model.name, opt); }); test('load', () => { const ability: any = { load: () => { return { ok: true, data: null, rowData: { status: 200 }, } }, } const spy = vi.spyOn(controller, "getMainCtrlAbility").mockImplementation(() => ability); expect(controller.load()).toStrictEqual({ ok: true, data: null, rowData: { status: 200 } }); expect(spy).toHaveBeenCalled(); expect(spy).toHaveReturnedWith(ability); }); })