import React from 'react'; import { render } from '@testing-library/react'; import { createApp } from '@modern-js/runtime-core'; import '@testing-library/jest-dom'; import ModernGarfishPlugin, { useMicroApps, useModuleApp, useModuleApps, } from '../src/runtime'; global.React = React; const dashboardPath = 'http://garfish-mock.com/dashboard'; const tableListPath = 'http://garfish-mock.com/table-list'; describe('plugin-garfish', () => { test('legacyModule hooks params', async () => { const dashBoardModuleInfo = { name: 'Dashboard', entry: dashboardPath, }; const tableListModuleInfo = { name: 'TableList', entry: tableListPath, }; const microFrontendConfig = { apps: [tableListModuleInfo, dashBoardModuleInfo], LoadingComponent() { return
loading
; }, }; const App = () => { const { MApp, apps, Components } = useMicroApps(); const { Dashboard, TableList } = Components; const NMApp = useModuleApp(); const NApps = useModuleApps(); expect(NMApp === MApp).toBeTruthy(); expect(Components === NApps).toBeTruthy(); if (apps.length > 0) { expect(apps[0].name).toBe(tableListModuleInfo.name); expect(apps[0].entry).toBe(tableListModuleInfo.entry); expect(apps[0].Component === TableList).toBeTruthy(); expect(apps[1].name).toBe(dashBoardModuleInfo.name); expect(apps[1].entry).toBe(dashBoardModuleInfo.entry); expect(apps[1].Component === Dashboard).toBeTruthy(); } return
; }; const AppWrapper = createApp({ plugins: [ModernGarfishPlugin(microFrontendConfig)], })(App); render(); }); });