{"version":3,"sources":["webpack:///./src/pages/docs/installation/building-viz-plugins.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","src","isMDXComponent"],"mappings":"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","file":"component---src-pages-docs-installation-building-viz-plugins-mdx-c80122ef46c65034e7f8.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/incubator-superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n    <p>{`This is a tutorial to help you build a \"Hello World\" viz plugin. The intent is to provide a basic\nscaffolding to build any sort of data visualization, using any viz libary you'd like (e.g. ECharts,\nAntV, HighCharts, VX, and D3.).`}</p>\n    <p>{`You can build the Hello World plugin by running a `}\n      <a {...{\n        \"href\": \"https://yeoman.io/\",\n        \"parentName\": \"p\"\n      }}>{`Yeoman`}</a>\n      {` generator, which\ntakes a few simple options, and provides this plugin scaffolding.`}</p>\n    <h2 {...{\n      \"id\": \"getting-set-up\"\n    }}>{`Getting Set Up`}</h2>\n    <h3 {...{\n      \"id\": \"install-yeoman-and-the-superset-package-generator\"\n    }}>{`Install Yeoman and the Superset Package Generator`}</h3>\n    <p>{`This Hello World plugin we'll be building is generated automatically with\n`}\n      <a {...{\n        \"href\": \"https://yeoman.io/\",\n        \"parentName\": \"p\"\n      }}>{`Yeoman`}</a>\n      {`. Let's first get that installed by opening up a terminal and installing\nboth the `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`yo`}</inlineCode>\n      {` module and the\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache-superset/superset-ui/tree/master/packages/generator-superset\",\n        \"parentName\": \"p\"\n      }}>{`superset package generator`}</a>\n      {`\n(`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`v0.14.7`}</inlineCode>\n      {`) to create the new plugin.`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`npm install -g yo @superset-ui/generator-superset\n`}</code></pre>\n    <h3 {...{\n      \"id\": \"install-superset\"\n    }}>{`Install Superset`}</h3>\n    <p>{`There are\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset#installation-and-configuration\",\n        \"parentName\": \"p\"\n      }}>{`complete instructions`}</a>\n      {`\navailable on the `}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset\",\n        \"parentName\": \"p\"\n      }}>{`Superset Github repository`}</a>\n      {`. In a\nnutshell, the easiest way is to:`}</p>\n    <ol>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Have a Mac or linux-based machine`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Install `}\n        <a {...{\n          \"href\": \"https://docs.docker.com/get-docker/\",\n          \"parentName\": \"li\"\n        }}>{`Docker`}</a></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Clone `}\n        <a {...{\n          \"href\": \"https://github.com/apache/incubator-superset\",\n          \"parentName\": \"li\"\n        }}>{`the repository`}</a>\n        {` to your computer`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Use your terminal to `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`cd`}</inlineCode>\n        {` into the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`incubator-superset`}</inlineCode>\n        {` directory`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Run `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`docker-compose up`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Open `}\n        <em {...{\n          \"parentName\": \"li\"\n        }}>{`another`}</em>\n        {` terminal, and `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`cd`}</inlineCode>\n        {` into `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`incubator-superset/superset-frontend`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Run `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`npm install`}</inlineCode>\n        {` to load up all the npm packages.`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Run `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`npm run dev-server`}</inlineCode>\n        {` to spin up the Webpack hot-reloading server`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Wait for it to build, and then open your browser to `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`http://localhost:9000`}</inlineCode>\n        {` and log in with\n`}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`admin`}</inlineCode>\n        {`/`}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`admin`}</inlineCode>\n        {`. You're off to the races! (Note: we'll be restarting this later)`}</li>\n\n    </ol>\n    <h3 {...{\n      \"id\": \"install-superset-ui\"\n    }}>{`Install Superset-UI`}</h3>\n    <ol>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Clone `}\n        <a {...{\n          \"href\": \"https://github.com/apache-superset/superset-ui\",\n          \"parentName\": \"li\"\n        }}>{`the `}\n          <inlineCode {...{\n            \"parentName\": \"a\"\n          }}>{`superset-ui`}</inlineCode>\n          {` repository`}</a>\n        {` to your\ncomputer. It can sit in the same parent directory as your `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`incubator-superset`}</inlineCode>\n        {` repo`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Use your terminal to `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`cd`}</inlineCode>\n        {` into `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`superset-ui`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Run `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`yarn install`}</inlineCode>\n        {` and wait for all the packages to get installed`}</li>\n\n    </ol>\n    <h2 {...{\n      \"id\": \"build-your-hello-world\"\n    }}>{`Build Your \"Hello, World\"`}</h2>\n    <h3 {...{\n      \"id\": \"write-generate-some-code\"\n    }}><del {...{\n        \"parentName\": \"h3\"\n      }}>{`Write`}</del>\n      {` `}\n      <em {...{\n        \"parentName\": \"h3\"\n      }}>{`generate`}</em>\n      {` some code!`}</h3>\n    <ol>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Using your terminal, `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`cd`}</inlineCode>\n        {` into your local `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`superset-ui`}</inlineCode>\n        {` repo folder and then into the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`plugins`}</inlineCode>\n        {`\nsubdirectory.`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Make a new directory for your plugin, i.e. `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`mkdir plugin-chart-hello-world`}</inlineCode>\n        {`. `}\n        <strong {...{\n          \"parentName\": \"li\"\n        }}>{`Note:`}</strong>\n        {` we\n`}\n        <em {...{\n          \"parentName\": \"li\"\n        }}>{`highly`}</em>\n        {` recommend following the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`plugin-chart-your-plugin-name`}</inlineCode>\n        {` pattern.`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Now `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`cd plugin-chart-hello-world`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Finally, run `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`yo @superset-ui/superset`}</inlineCode></li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Select `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`Create superset-ui chart plugin package`}</inlineCode>\n        {` on the following screen:`}</li>\n\n    </ol>\n    <p><img src=\"/images/plugin-1-yeoman-select.png\" />\n      {' '}</p>\n    <ol {...{\n      \"start\": 6\n    }}>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Give it a name (in our case, go with the default, based on the folder name):`}</p>\n\n\n        <img src=\"/images/plugin-2-yeoman-package-name.png\" />\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Give it a description (again, default is fine!)`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-3-yeoman-description.png\" />\n          {' '}</p>\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Choose which type of React component you want to make (Class, or Function component).`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-4-yeoman-component-type.png\" />\n          {' '}</p>\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Select whether you'd like your visualization to be timeseries-based or not`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-5-yeoman-timeseries.png\" />\n          {' '}</p>\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Select whether or not you want to include badges at the top of your README file (really only\nneeded if you intend to contribute your plugin to the `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`superset-ui`}</inlineCode>\n          {` repo).`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-6-yeoman-badges.png\" />\n          {' '}</p>\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Admire all the files the generator has created for you. Note that EACH of these is chock full of\ncomments about what they're for, and how best to use them.`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-7-yeoman-files.png\" />\n          {' '}</p>\n\n      </li>\n\n    </ol>\n    <h3 {...{\n      \"id\": \"add-your-plugin-to-superset-with-npm-link\"\n    }}>{`Add your Plugin to Superset (with NPM Link)`}</h3>\n    <p>{`Now, we want to see this thing actually RUN! To do that, we'll add your package to Superset and\nembrace the magic power of `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm link`}</inlineCode>\n      {` to see it in-situ, without needing to `}\n      <strong {...{\n        \"parentName\": \"p\"\n      }}>{`build`}</strong>\n      {` the plugin, or\nopen any PRs on Github.`}</p>\n    <ol>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Add your package to the `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`package.json`}</inlineCode>\n          {` file in `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`incubator-superset/superset-frontend`}</inlineCode>\n          {`.`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-8-package-json.png\" />\n          {' '}</p>\n\n      </li>\n\n    </ol>\n    <p>{`Note: Do `}\n      <em {...{\n        \"parentName\": \"p\"\n      }}>{`not`}</em>\n      {` run `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm install`}</inlineCode>\n      {`... explanation below.`}</p>\n    <ol {...{\n      \"start\": 2\n    }}>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Add your plugin to the `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`MainPreset.js`}</inlineCode>\n          {` file (located in\n`}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`incubator-superset/superset-frontend/src/visualizations/presets/MainPreset.js`}</inlineCode>\n          {`) in two places,\nalongside the other plugins.`}</p>\n\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}><img src=\"/images/plugin-9-mainpreset-import.png\" />\n          {' '}</p>\n\n\n        {' '}\n\n\n        <img src=\"/images/plugin-9-mainpreset-register.png\" />\n\n      </li>\n\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>\n\n        <p {...{\n          \"parentName\": \"li\"\n        }}>{`Open a terminal window to `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`incubator-superset/superset-frontend`}</inlineCode>\n          {`. If you did the Install Superset\nsteps above, you may still have webpack running there, and you can just stop it with `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`ctrol-c`}</inlineCode>\n          {`.\nIf not, just open a new window and or `}\n          <inlineCode {...{\n            \"parentName\": \"p\"\n          }}>{`cd`}</inlineCode>\n          {` to that directory path.`}</p>\n\n      </li>\n\n    </ol>\n    <p>{`4) Use `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm link`}</inlineCode>\n      {` to symlink plugin, using a relative path to `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset-ui`}</inlineCode>\n      {` and your plugin folder,\ne.g. `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm link ../../superset-ui/plugins/plugin-chart-hello-world`}</inlineCode>\n      {`.`}</p>\n    <ol {...{\n      \"start\": 5\n    }}>\n\n      <li {...{\n        \"parentName\": \"ol\"\n      }}>{`Restart your webpack dev server with `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`npm run dev-server`}</inlineCode>\n        {`. You'll know it worked if you see a\nline stating\n`}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`[Superset Plugin] Use symlink source for @superset-ui/plugin-chart-hello-world @ ^0.0.0`}</inlineCode>\n        {`.`}</li>\n\n    </ol>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`NOTE:`}</strong>\n      {` If/when you do an `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm install`}</inlineCode>\n      {` that erases the symlink generated by `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`npm link`}</inlineCode>\n      {`, so you'll\nhave to redo those steps.`}</p>\n    <p><strong {...{\n        \"parentName\": \"p\"\n      }}>{`NOTE:`}</strong>\n      {` Dynamic import is a work in progress. We hope you won't even need to DO this soon. We'll\nbe blogging again when that day comes, we assure you. In short, we have a goal to make editing\n`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`package.json`}</inlineCode>\n      {` and `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`MainPreset.js`}</inlineCode>\n      {` unnecessary, so all the code changes are made in ONE repo.`}</p>\n    <h3 {...{\n      \"id\": \"see-it-with-your-own-eyes\"\n    }}>{`See it with your own eyes!`}</h3>\n    <p>{`You should now be able to go to the Explore view in your local Superset and add a new chart! You'll\nsee your new plugin when you go to select your viz type.`}</p>\n    <p><img src=\"/images/plugin-10-hello-thumbnail.png\" />\n      {' '}</p>\n    <p>{`Now you can load up some data, and you'll see it appear in the plugin!`}</p>\n    <p><img src=\"/images/plugin-11-explore-view.png\" />\n      {' '}</p>\n    <p>{`The plugin also outputs three things to your browser's console:`}</p>\n    <ul>\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`formData`}</inlineCode>\n        {`, a.k.a. everything sent into your viz from the controls`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}><inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`props`}</inlineCode>\n        {`, as output from the `}\n        <inlineCode {...{\n          \"parentName\": \"li\"\n        }}>{`transformProps`}</inlineCode>\n        {` file for your plugin's consumption`}</li>\n\n\n      <li {...{\n        \"parentName\": \"ul\"\n      }}>{`The actual HTML element, which your plugin has hooks into for any necessary DOM maniupluation`}</li>\n\n    </ul>\n    <p><img src=\"/images/plugin-12-console-logs.png\" />\n      {' '}</p>\n    <h2 {...{\n      \"id\": \"make-it-your-own\"\n    }}>{`Make it Your Own`}</h2>\n    <p>{`Now you're free to run wild with your new plugin! Here are a few places to start digging in:`}</p>\n    <h3 {...{\n      \"id\": \"read-the-comments-and-docs\"\n    }}>{`Read the comments and docs`}</h3>\n    <p>{`Take a look through the full file tree of the plugin. The Readme gives details for the job of each\nfile. EACH of these files has been annotated with extensive comments of what the file is for, and\nthe basics of what you can do with it.`}</p>\n    <h3 {...{\n      \"id\": \"take-control\"\n    }}>{`Take control!`}</h3>\n    <p>{`The plugin includes a couple of example controls, but you can certainly continue to add as many as\nyou need to. The comments/documentation within the controls file is a start, but we recommend\nlooking at existing `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset-ui`}</inlineCode>\n      {` plugins for more examples of how you can implement controls to\nenhance your queries, work with your data, and change your visualization's display.`}</p>\n    <h3 {...{\n      \"id\": \"build-the-perfect-query\"\n    }}>{`Build the perfect query`}</h3>\n    <p>{`The `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`buildQuery`}</inlineCode>\n      {` file where your plugin actually fetches data from the Superset backend. This file\nbuilds he query \"context\" for your plugin. For a simple plugin, this file needn't do much. There are\na couple changes that need to be made for a timeseries plugin, thus the option in the Yeoman\ngenerator.`}</p>\n    <p>{`This file also allows you to add various post-processing operations, to have the Superset backend\nprocess your data in various ways (pivoting, etc), but that's a whole other topic we'll cover\nseparately in the near future.`}</p>\n    <h3 {...{\n      \"id\": \"style-with-emotion\"\n    }}>{`Style with Emotion`}</h3>\n    <p>{`Each of these methods lets you add custom CSS styles using Emotion 👩‍🎤(a CSS-in-JS approach) which\nhas access to Superset's burgeoning set of theme variables, and also automatically scopes the styles\nto your plugin, so they don't \"leak\" to other areas of Superset.`}</p>\n    <p>{`In the Hello World plugin, we've included a few example Theme variables (`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`colors`}</inlineCode>\n      {`, `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`gridUnit`}</inlineCode>\n      {`s, and\ntypographic weights/sizes). We'll be continuing to add more variables to this theme file as we\ncontinue to push Superset (and the viz plugins) toward the standards of the Superset redesign (see\n`}\n      <a {...{\n        \"href\": \"https://github.com/apache/incubator-superset/issues/8976\",\n        \"parentName\": \"p\"\n      }}>{`SIP-34`}</a>\n      {`)`}</p>\n    <h3 {...{\n      \"id\": \"give-it-a-thumbnail\"\n    }}>{`Give it a thumbnail`}</h3>\n    <p>{`Because come on... that's the fun part, right?`}</p>\n    <h3 {...{\n      \"id\": \"build-it\"\n    }}>{`Build it!`}</h3>\n    <p>{`In this tutorial, you built your plugin in the `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset-ui`}</inlineCode>\n      {` repo. This means you can use the\nbuilt-in build scripts that the repo provides. With your terminal of choice, simply `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`cd`}</inlineCode>\n      {` into the\nroot directory of `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`supeset-ui`}</inlineCode>\n      {` and run `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`yarn build`}</inlineCode>\n      {`. This will kick off a build of ALL the Superset\nplugins and packages, including yours.`}</p>\n    <h3 {...{\n      \"id\": \"test-early-test-often\"\n    }}>{`Test early, test often!`}</h3>\n    <p>{`The Hello World plugin includes some basic Jest tests to act as a starting point to add unit tests\nto your plugin. These do a quick sanity check that the plugin actually loads correctly, and then run\nthrough the basics of making sure that your controls are properly respected by modifying the\nresulting data and/or props of the plugin. Running `}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`yarn test`}</inlineCode>\n      {` from the root directory of\n`}\n      <inlineCode {...{\n        \"parentName\": \"p\"\n      }}>{`superset-ui`}</inlineCode>\n      {` will run all the tests for plugins/packages, including your Hello World.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}