graphql-engine/frontend/libs/nx/storybook-addon-console-env
Nicolas Beaussart 9667164942 frontend: introduce tags system for libs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9063
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
GitOrigin-RevId: 1f5918b1e56452967a93739ffc21b4cfafbd84e4
2023-05-09 10:43:51 +00:00
..
.storybook frontend: update nx to latest 15 2023-02-28 19:42:51 +00:00
prod console: apply new sidebar design 2023-02-15 12:38:16 +00:00
src console: apply new sidebar design 2023-02-15 12:38:16 +00:00
.babelrc console: apply new sidebar design 2023-02-15 12:38:16 +00:00
.eslintrc.json console: apply new sidebar design 2023-02-15 12:38:16 +00:00
.swcrc frontend: update nx to 15.8.1 2023-03-01 14:17:47 +00:00
jest.config.ts frontend: update nx to 15.8.1 2023-03-01 14:17:47 +00:00
package.json console: apply new sidebar design 2023-02-15 12:38:16 +00:00
preset.js console: apply new sidebar design 2023-02-15 12:38:16 +00:00
project.json frontend: introduce tags system for libs 2023-05-09 10:43:51 +00:00
README.md console: apply new sidebar design 2023-02-15 12:38:16 +00:00
tsconfig.json console: apply new sidebar design 2023-02-15 12:38:16 +00:00
tsconfig.lib.json console: apply new sidebar design 2023-02-15 12:38:16 +00:00

nx-storybook-addon-console-env

This library contains a Storybook addon allowing to modify some Hasura console env variables (window.__env), the addon uses Storybook global variables under the hood to modify and inject console variables.

What is it for?

Addon

This addon adds a Console env tab in Storybook addons tabs.

It displays and allows to modify some console env vars (for now isAdminSet and consoleType) and reloads stories to emulate each type of console or login status.

Stories parameter

It is possible to add parameters to stories (for now isAdminSet and consoleType) to force those variables, otherwise, default variables values are used.

How it works

Some console env vars (for now isAdminSet and consoleType) are stored as Storybook globals variables and are displayed/modified thanks to this addon.

When a console env global variables is updated (through a user interaction in the UI or a story parameter):

  • the URL search parameters are updates with the global variables values,
  • a reload of the iFrame containing the story is triggered.

A script in preview-body.html will extract the variables from the URL and build the proper window.__env object, then console globals are correctly initialized.

Setup

To manipulate console env variables from Storybook UI, you need to:

  • install the addon,

Install addon

Add reference to addon in your .storybook/main.ts file.

const config: StorybookConfig = {
  ...
  addons: [
    ...
    'storybook-addon-console-env',
    ...
  ],
  ...
};

export default config;

Testing

This addon is tested thanks to Chrmatic snapshots. No interaction test has been implemented yet, as the play function cannot interact with addons control.