MSW Migration Checklist
Stories that need to be updated to use MSW handlers for API mocking.
General (1)
Commerce Components (41)
Facets & Filtering
Search & Navigation
Results & Pagination
Layout & UI
Interfaces
Product Templates (21)
Common Components (6)
Insight Components (5)
IPX Components (2)
Search Components (31)
Facets
Search & Navigation
Results & Pagination
Layout & UI
Interfaces
Result Templates (14)
Migration Guidelines
When migrating a story:
- Import the appropriate Mock API (e.g.,
MockCommerceApi, MockSearchApi, MockInsightApi)
- Create an API harness instance at the top level
- Add MSW handlers to the parameters:
msw: {handlers: [...apiHarness.handlers]}
- Add a
beforeEach hook to clear mocked responses
- Configure the mock responses as needed for the component
- Test the story to ensure it renders correctly
See the creating-stories skill for detailed patterns and examples.
MSW Migration Checklist
Stories that need to be updated to use MSW handlers for API mocking.
General (1)
.storybook/Crawling.stories.tsxCommerce Components (41)
Facets & Filtering
src/components/commerce/atomic-commerce-breadbox/atomic-commerce-breadbox.new.stories.tsxsrc/components/commerce/atomic-commerce-category-facet/atomic-commerce-category-facet.new.stories.tsxsrc/components/commerce/atomic-commerce-facet/atomic-commerce-facet.new.stories.tsxsrc/components/commerce/atomic-commerce-facets/atomic-commerce-facets.new.stories.tsxsrc/components/commerce/atomic-commerce-numeric-facet/atomic-commerce-numeric-facet.new.stories.tsxsrc/components/commerce/atomic-commerce-timeframe-facet/atomic-commerce-timeframe-facet.new.stories.tsxSearch & Navigation
src/components/commerce/atomic-commerce-did-you-mean/atomic-commerce-did-you-mean.new.stories.tsxsrc/components/commerce/atomic-commerce-search-box-query-suggestions/atomic-commerce-search-box-query-suggestions.new.stories.tsxsrc/components/commerce/atomic-commerce-search-box-recent-queries/atomic-commerce-search-box-recent-queries.new.stories.tsxsrc/components/commerce/atomic-commerce-sort-dropdown/atomic-commerce-sort-dropdown.new.stories.tsxsrc/components/commerce/atomic-commerce-refine-toggle/atomic-commerce-refine-toggle.new.stories.tsxResults & Pagination
src/components/commerce/atomic-commerce-load-more-products/atomic-commerce-load-more-products.new.stories.tsxsrc/components/commerce/atomic-commerce-no-products/atomic-commerce-no-products.new.stories.tsxsrc/components/commerce/atomic-commerce-pager/atomic-commerce-pager.new.stories.tsxsrc/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.new.stories.tsxsrc/components/commerce/atomic-commerce-products-per-page/atomic-commerce-products-per-page.new.stories.tsxsrc/components/commerce/atomic-commerce-query-summary/atomic-commerce-query-summary.new.stories.tsxLayout & UI
src/components/commerce/atomic-commerce-layout/atomic-commerce-layout.new.stories.tsxsrc/components/commerce/atomic-commerce-text/atomic-commerce-text.new.stories.tsxInterfaces
src/components/commerce/atomic-commerce-recommendation-interface/atomic-commerce-recommendation-interface.new.stories.tsxProduct Templates (21)
src/components/commerce/atomic-product-children/atomic-product-children.new.stories.tsxsrc/components/commerce/atomic-product-description/atomic-product-description.new.stories.tsxsrc/components/commerce/atomic-product-excerpt/atomic-product-excerpt.new.stories.tsxsrc/components/commerce/atomic-product-field-condition/atomic-product-field-condition.new.stories.tsxsrc/components/commerce/atomic-product-image/atomic-product-image.new.stories.tsxsrc/components/commerce/atomic-product-link/atomic-product-link.new.stories.tsxsrc/components/commerce/atomic-product-multi-value-text/atomic-product-multi-value-text.new.stories.tsxsrc/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.new.stories.tsxsrc/components/commerce/atomic-product-price/atomic-product-price.new.stories.tsxsrc/components/commerce/atomic-product-rating/atomic-product-rating.new.stories.tsxsrc/components/commerce/atomic-product-section-actions/atomic-product-section-actions.new.stories.tsxsrc/components/commerce/atomic-product-section-badges/atomic-product-section-badges.new.stories.tsxsrc/components/commerce/atomic-product-section-bottom-metadata/atomic-product-section-bottom-metadata.new.stories.tsxsrc/components/commerce/atomic-product-section-children/atomic-product-section-children.new.stories.tsxsrc/components/commerce/atomic-product-section-description/atomic-product-section-description.new.stories.tsxsrc/components/commerce/atomic-product-section-emphasized/atomic-product-section-emphasized.new.stories.tsxsrc/components/commerce/atomic-product-section-metadata/atomic-product-section-metadata.new.stories.tsxsrc/components/commerce/atomic-product-section-name/atomic-product-section-name.new.stories.tsxsrc/components/commerce/atomic-product-section-visual/atomic-product-section-visual.new.stories.tsxsrc/components/commerce/atomic-product-text/atomic-product-text.new.stories.tsxCommon Components (6)
src/components/common/atomic-aria-live/atomic-aria-live.new.stories.tsxsrc/components/common/atomic-component-error/atomic-component-error.new.stories.tsxsrc/components/common/atomic-focus-trap/atomic-focus-trap.new.stories.tsxsrc/components/common/atomic-icon/atomic-icon.new.stories.tsxsrc/components/common/atomic-layout-section/atomic-layout-section.new.stories.tsxsrc/components/common/atomic-numeric-range/atomic-numeric-range.new.stories.tsxInsight Components (5)
src/components/insight/atomic-insight-edit-toggle/atomic-insight-edit-toggle.new.stories.tsxsrc/components/insight/atomic-insight-full-search-button/atomic-insight-full-search-button.new.stories.tsxsrc/components/insight/atomic-insight-generate-answer-button/atomic-insight-generate-answer-button.new.stories.tsxsrc/components/insight/atomic-insight-interface/atomic-insight-interface.new.stories.tsxsrc/components/insight/atomic-insight-layout/atomic-insight-layout.new.stories.tsxIPX Components (2)
src/components/ipx/atomic-ipx-button/atomic-ipx-button.new.stories.tsxsrc/components/ipx/atomic-ipx-modal/atomic-ipx-modal.new.stories.tsxSearch Components (31)
Facets
src/components/search/atomic-facet/atomic-facet.new.stories.tsxsrc/components/search/atomic-rating-facet/atomic-rating-facet.new.stories.tsxsrc/components/search/atomic-rating-range-facet/atomic-rating-range-facet.new.stories.tsxSearch & Navigation
src/components/search/atomic-breadbox/atomic-breadbox.new.stories.tsxsrc/components/search/atomic-search-box-query-suggestions/atomic-search-box-query-suggestions.new.stories.tsxsrc/components/search/atomic-search-box-recent-queries/atomic-search-box-recent-queries.new.stories.tsxsrc/components/search/atomic-smart-snippet-suggestions/atomic-smart-snippet-suggestions.new.stories.tsxsrc/components/search/atomic-sort-dropdown/atomic-sort-dropdown.new.stories.tsxsrc/components/search/atomic-tab/atomic-tab.new.stories.tsxsrc/components/search/atomic-refine-toggle/atomic-refine-toggle.new.stories.tsxResults & Pagination
src/components/search/atomic-pager/atomic-pager.new.stories.tsxsrc/components/search/atomic-query-summary/atomic-query-summary.new.stories.tsxsrc/components/search/atomic-result-list/atomic-result-list.new.stories.tsxsrc/components/search/atomic-results-per-page/atomic-results-per-page.new.stories.tsxLayout & UI
src/components/search/atomic-search-layout/atomic-search-layout.new.stories.tsxsrc/components/search/atomic-text/atomic-text.new.stories.tsxsrc/components/search/atomic-html/atomic-html.new.stories.tsxInterfaces
src/components/search/atomic-search-interface/atomic-search-interface.new.stories.tsxResult Templates (14)
src/components/search/atomic-result-children-template/atomic-result-children-template.new.stories.tsxsrc/components/search/atomic-result-html/atomic-result-html.new.stories.tsxsrc/components/search/atomic-result-number/atomic-result-number.new.stories.tsxsrc/components/search/atomic-result-rating/atomic-result-rating.new.stories.tsxsrc/components/search/atomic-result-section-actions/atomic-result-section-actions.new.stories.tsxsrc/components/search/atomic-result-section-badges/atomic-result-section-badges.new.stories.tsxsrc/components/search/atomic-result-section-bottom-metadata/atomic-result-section-bottom-metadata.new.stories.tsxsrc/components/search/atomic-result-section-children/atomic-result-section-children.new.stories.tsxsrc/components/search/atomic-result-section-emphasized/atomic-result-section-emphasized.new.stories.tsxsrc/components/search/atomic-result-section-excerpt/atomic-result-section-excerpt.new.stories.tsxsrc/components/search/atomic-result-section-title-metadata/atomic-result-section-title-metadata.new.stories.tsxsrc/components/search/atomic-result-section-title/atomic-result-section-title.new.stories.tsxsrc/components/search/atomic-result-section-visual/atomic-result-section-visual.new.stories.tsxsrc/components/search/atomic-result-text/atomic-result-text.new.stories.tsxMigration Guidelines
When migrating a story:
MockCommerceApi,MockSearchApi,MockInsightApi)msw: {handlers: [...apiHarness.handlers]}beforeEachhook to clear mocked responsesSee the creating-stories skill for detailed patterns and examples.