import { Plugin } from '../plugin'; import { PluginManager } from '../plugin-manager'; import { localPluginType } from '../types/local-plugin-type'; describe('Plugin', () => { let pluginManager: PluginManager; let plugin: Plugin; beforeEach(() => { pluginManager = new PluginManager(); plugin = new Plugin('TestComponent', pluginManager); }); it('should create a Plugin instance', () => { expect(plugin).toBeInstanceOf(Plugin); }); it('should set basicsPlugin correctly when input is an array', () => { const basicsPlugin = [ { name: 'plugin1', }, { name: 'plugin2', }, ]; plugin.setBasicsPlugin(basicsPlugin); expect(plugin.basicsPlugin).toEqual(basicsPlugin); }); it('should set basicsPlugin correctly when input is an object', () => { const basicsPlugin = { name: 'plugin1', }; plugin.setBasicsPlugin(basicsPlugin); expect(plugin.basicsPlugin).toEqual(Object.values(basicsPlugin)); }); it('should set localPlugin correctly when input is an array', () => { const localPlugin = [ (props, context) => { return { props, context, }; }, ]; plugin.setLocalPlugin(localPlugin as unknown as localPluginType); expect(plugin.localPlugin.length).toEqual(1); }); it('should set globalPlugin correctly when input is an array', () => { const globalPlugin = [ { name: 'plugin1', }, { name: 'plugin2', }, ]; plugin.setGlobalPlugin(globalPlugin); expect(plugin.globalPlugin).toEqual(globalPlugin); }); });