UNPKG

@remax/framework-shared

Version:

使用真正的 React 构建跨平台小程序

94 lines (93 loc) 3.42 kB
import * as React from 'react'; import PluginDriver from '../PluginDriver'; describe('PluginDriver', function () { it('onAppConfig', function () { var pluginDriver = new PluginDriver([ { onAppConfig: function (_a) { var config = _a.config; config.foo = 1; return config; }, }, { onAppConfig: function (_a) { var config = _a.config; config.bar = 1; return config; }, }, ]); expect(pluginDriver.onAppConfig({})).toEqual({ foo: 1, bar: 1 }); }); it('onPageConfig', function () { var pluginDriver = new PluginDriver([ { onPageConfig: function (_a) { var config = _a.config; config.foo = 1; return config; }, }, { onPageConfig: function (_a) { var config = _a.config, page = _a.page; config.page = page; return config; }, }, ]); expect(pluginDriver.onPageConfig({ config: {}, page: 'pages/foo' })).toEqual({ foo: 1, page: 'pages/foo' }); }); it('onAppComponent', function () { var App = function (props) { return props.children; }; var wrap = function (component) { var Wrapped = function () { return React.createElement(component); }; Wrapped.displayName = 'Wrapped'; return Wrapped; }; var pluginDriver = new PluginDriver([ { onAppComponent: function (_a) { var component = _a.component; return wrap(component); }, }, ]); expect(pluginDriver.onAppComponent(App).displayName).toEqual('Wrapped'); }); it('onPageComponent', function () { var Page = function () { return React.createElement('view'); }; var wrap = function (component, page) { var Wrapped = function () { return React.createElement(component); }; Wrapped.displayName = page; return Wrapped; }; var pluginDriver = new PluginDriver([ { onPageComponent: function (_a) { var component = _a.component, page = _a.page; return wrap(component, page); }, }, ]); expect(pluginDriver.onPageComponent({ component: Page, page: 'pages/foo/index' }).displayName).toEqual('pages/foo/index'); }); it('onCreateHostComponent', function () { var View = function () { return React.createElement('view'); }; var wrap = function (component) { var Wrapped = function () { return React.createElement(component); }; Wrapped.displayName = 'Wrapped'; return Wrapped; }; var pluginDriver = new PluginDriver([ { onCreateHostComponent: function (_a) { var component = _a.component; return wrap(component); }, }, ]); expect(pluginDriver.onCreateHostComponent(View).displayName).toEqual('Wrapped'); }); });