Test Criteria

To ensure that your code is bug-free and to enhance the quality of the output

Storybook

  • Storybook is a free, open-source frontend workshop for isolating UI components and pages. It is used by thousands of teams to build, test, and document their user interfaces. A Storybook is basically a UI library or playground.
  • It runs outside of the app too, so project dependencies won't affect the behaviour of components.
  • The tool allows developers to see how the components interact in a private development environment, allowing for easier testing and debugging and collaboration with other developers.
  • It has numerous benefits including faster development, simplified testing and debugging, and ease of access to all components. Components provide an easy way of building interfaces as they allow you to organize, reuse and test your user interface code.
  • This allows you to work on one module at a time and develop entire UIs without the need for a complex dev stack.

Configure Storybook with TypeScript

Storybook's configuration file (i.e., main.ts) is defined as an ESM module written in TypeScript, providing you with the baseline configuration to support your existing framework while enabling you stricter type-checking and autocompletion in your editor. Below is an abridged configuration file.


                                                        
                                                        
                                                            // .storybook/main.ts
                                                        
                                                        // Replace your-framework with the framework you are using (e.g., react-webpack5, vue3-vite)
                                                        import type { StorybookConfig } from '@storybook/your-framework';
                                                        
                                                        const config: StorybookConfig = {
                                                          // Required
                                                          framework: '@storybook/your-framework',
                                                          stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
                                                          // Optional
                                                          addons: ['@storybook/addon-essentials'],
                                                          docs: {
                                                            autodocs: 'tag',
                                                          },
                                                          staticDirs: ['../public'],
                                                        };
                                                        
                                                        export default config;