UNPKG

@talentsoft-opensource/widget-display-tool

Version:

Widget Simulator

167 lines (134 loc) 5.06 kB
# Getting Started: This tools provides a testing environnement for your widget. # Prerequisites: 1. You should have the following software installed: - git - node 8.12 - yarn 1.10.1 2. The first time you use this tool, you need to install the libraries by running `yarn install` in a terminal in the project folder (defined in package.json) 3. You should already have built your widget on your machine and generated a widget bundle file (for example, main.bundle.js) on your local drive. You also need a mock bundle file. Please check the [exemple widget](https://github.com/TalentSoft/integration-widget-pie-chart) for a template to generate such bundles. # How to launch: To launch the build and deployment of your widget, run `yarn start [path to your widget bundle (widget)] [path to your mock script]` # Displaying the widget: Once it's launched, you can view your widget by opening a browser and navigating to: http://localhost:5555/. # Configuring the port number of local url If you need to change the port number of the local url, you can change the `port` variable in the file index.js in the root folder. # Customizing the environment of the widget with the mock file In the testing environment provided by this tool, all host methods such as `requestExternalResource` are mocked. You may provide your own implementation to test your widget in different conditions. In order to do this you need to provide a mock script that exports an object that implements the `HostMock` interface. Please check the [exemple widget](https://github.com/TalentSoft/integration-widget-pie-chart) for an exemple mock script (in the mock folder). ## Example Suppose that your API returns a list of objects and you want to mock your API by returning : ```javascript [ { id: 'ToDo', y: 0, z: 2458 }, ... ] ``` => You should implement the method requestExternalResource in a typescript file as: ```javascript /** * This file contains the callbacks that you can modify to test the display of your widget */ import { HostMock } from '@talentsoft-opensource/widget-display-tool/src/mock-definitions' import { HttpResponse, RequestOptions } from '@talentsoft-opensource/integration-widget-contract' export const hostmock: HostMock = { /** * This flag controls the requestExternalResource behavior: * - proxyMode: true => makes a real http request * - proxyMode: false => calls the mocked version defined in this file */ proxyMode: true, /** * if proxyMode == true, when a direct connect request is made this secretkey will be used */ secretKey: "mysec", /** * if proxyMode == true, when a direct connect request is made this login will be used */ login: "mylogin", /** * if proxyMode == false, this method is called instead of sending a request */ requestExternalResource: (options: RequestOptions) => { const data = [ { id: 'ToDo', y: 0, z: 2458 }, { id: 'InProgress', y: 0, z: 3874 }, { id: 'ToValidate', y: 0, z: 2375 }, { id: 'Validated', y: 0, z: 129 }, ]; return new Promise<HttpResponse>((resolve, reject) => { const response: HttpResponse = { body: JSON.stringify(data), status: 200, headers: {} }; resolve(response); }); }, /** * This object is passed to the *params* prop in the widget. * It may contain any property you need for the widget. * In production, those properties are defined for each * client but you may provide default values. */ configuration: { foo: "bar" }, /** * This function is called to generate the autoconnect url when using * openUrlinNewTab or openUrlinCurrentTab */ getAutoConnectUrl(url: string): string { return url; } } ``` This file must be compiled with webpack with a library output set to `integration/hostmock`. The path to the result to the widget-display-tool script. # Known issue(s): If the widget bundle gets deleted (eg by a rebuild) while the tool is launched and displays your widget, you will get the following error in the Visual Studio terminal: ``` ERROR in [copy-webpack-plugin] unable to locate 'C:\xxx\main.bundle.js' at 'C:\yyy\dist\main.bundle.js' i 「wdm」: Failed to compile. ``` To fix that issue, you need to stop this tool : - execute `Ctrl+C` (Answer Y to end the program) - Relaunch the tool: run `yarn display` in the widget folder