npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

hermione-storybook

v0.3.0

Published

Storybook addon that makes it easy to write hermione tests and speed up their execution time

Downloads

287

Readme

hermione-storybook

A storybook addon that makes it easy to write hermione tests on storybook component and speeds up their execution time.

Installation

npm install hermione-storybook --save-dev

Usage

hermione-storybook is not only a storybook addon, but also it is a plugin for hermione which adds selectStory command to open story via storybook API.

Storybook

If you use storybook@6 and higher:

  • Add hermione-storybook addon into your storybook config:
// .storybook/main.js
module.exports = {
    // ...
    addons: [
        // ...
        'hermione-storybook'
    ]
}

If you use storybook@5:

  • Add hermione-storybook decorator to your .storybook/config.js file:
// .storybook/config.js
import { addDecorator, configure } from '@storybook/react';
import { withHermione } from 'hermione-storybook';

addDecorator(withHermione());

configure(...);

Hermione

  • Add hermione-storybook plugin into your hermione config:
// .hermione.conf.js
module.exports = {
    plugins: {
        'hermione-storybook/plugin': {
            enabled: true,
            storybookUrl: 'http://localhost:6006'
        },

        // other hermione plugins...
    },

    // other hermione settings...
}
  • Write hermione-test using selectStory command from plugin:
describe('button', () => {
    it('primary', async function() {
        await this.browser.selectStory('example-button--primary', {label: 'New button label'}); // second parameter with `args` works only for storybook@6 and higher

        await this.browser.assertView('plain', 'body');
    });
});

Hermione

Configuration

  • enabled (optional) Boolean – enable/disable the plugin. By default plugin is enabled;
  • storybookUrl (required) String - url to your storybook server (example - http://localhost:6006). Moreover it can be specified as a relative url for baseUrl option in hermione. By default url is http://localhost:6006;

Also there is ability to override plugin parameters by CLI options or environment variables (see configparser).

Use hermione_storybook_ prefix for the environment variables and --storybook- for the cli options.

API

Plugin adds the following commands to the hermione:

  • selectStory - command to open passed story via storybook API. Moreover it can also take arguments which should be updated for the story.

Examples:

  • open passed story:
await this.browser.selectStory('example-button--primary');
  • open passed story and change label and size args (changing args works only for storybook@6 and higher):
await this.browser.selectStory('example-button--primary', {label: 'Some label', size: 'large'});

Tips & Tricks

  • To check that the hermione-storybook addon is connected to your storybook project correctly, you need to open the preview iframe (for example - http://localhost:6006/iframe.html) and call window.__HERMIONE_SELECT_STORY__ method like that:
window.__HERMIONE_SELECT_STORY__('example-button--primary', {label: 'Some label'});

After that your story with id example-button--primary will be rendered on preview iframe. It means that everything works fine.

  • To convert old url queries selectedKind and selectedStory (users of storybook@5) to story id you can use the following helper:
import { toId, storyNameFromExport } from '@storybook/csf';
const storyId = toId(selectedKind, storyNameFromExport(selectedStory));