test: add test case for plugin bootstrap (#3529)

This commit is contained in:
Alex Yang
2023-08-02 18:48:35 -07:00
committed by GitHub
parent dcd070b3e7
commit d3c719d89a
8 changed files with 110 additions and 44 deletions

View File

@@ -0,0 +1,42 @@
import { assertExists } from '@blocksuite/global/utils';
import {
registeredPluginAtom,
rootStore,
} from '@toeverything/plugin-infra/atom';
import { use } from 'foxact/use';
import { useAtomValue } from 'jotai';
import { Provider } from 'jotai/react';
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { _pluginNestedImportsMap } from '../bootstrap/plugins/setup';
import { pluginRegisterPromise } from '../bootstrap/register-plugins';
const root = document.getElementById('app');
assertExists(root);
const App = () => {
use(pluginRegisterPromise);
const plugins = useAtomValue(registeredPluginAtom);
_pluginNestedImportsMap.forEach(value => {
const exports = value.get('index.js');
assertExists(exports);
assertExists(exports?.get('entry'));
});
return (
<div>
<div data-plugins-load-status="success">Successfully loaded plugins:</div>
{plugins.map(plugin => {
return <div key={plugin}>{plugin}</div>;
})}
</div>
);
};
createRoot(root).render(
<StrictMode>
<Provider store={rootStore}>
<App />
</Provider>
</StrictMode>
);