From 430483172ee6431a06fe848311cda3f61dc5d03a Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 4 Aug 2023 14:30:44 +0200 Subject: [PATCH 01/58] add a experimental API for adding sidebar filter functions at runtime --- code/lib/manager-api/src/modules/stories.ts | 15 +++++++++++ code/lib/types/src/modules/api-stories.ts | 6 ++++- code/ui/manager/src/containers/sidebar.tsx | 29 ++++++++++++++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index 78b8b086e106..3ff624c31914 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -21,6 +21,7 @@ import type { API_ViewMode, API_StatusState, API_StatusUpdate, + API_FilterFunction, } from '@storybook/types'; import { PRELOAD_ENTRIES, @@ -71,6 +72,7 @@ export interface SubState extends API_LoadedRefData { storyId: StoryId; viewMode: API_ViewMode; status: API_StatusState; + filters: Record; } export interface SubAPI { @@ -259,6 +261,14 @@ export interface SubAPI { * @returns {Promise} A promise that resolves when the status has been updated. */ experimental_updateStatus: (addonId: string, update: API_StatusUpdate) => Promise; + /** + * Updates the filtering of the index. + * + * @param {string} addonId - The ID of the addon to update. + * @param {API_FilterFunction} filterFunction - A function that returns a boolean based on the story, index and status. + * @returns {Promise} A promise that resolves when the state has been updated. + */ + experimental_setFilter: (addonId: string, filterFunction: API_FilterFunction) => Promise; } const removedOptions = ['enableShortcuts', 'theme', 'showRoots']; @@ -576,6 +586,10 @@ export const init: ModuleFn = ({ await store.setState({ status: newStatus }, { persistence: 'session' }); }, + + experimental_setFilter: async (id, filterFunction) => { + await store.setState({ filters: { ...store.getState().filters, [id]: filterFunction } }); + }, }; const initModule = async () => { @@ -759,6 +773,7 @@ export const init: ModuleFn = ({ hasCalledSetOptions: false, previewInitialized: false, status: {}, + filters: {}, }, init: initModule, }; diff --git a/code/lib/types/src/modules/api-stories.ts b/code/lib/types/src/modules/api-stories.ts index 4853aa9a39cb..8ff10b013042 100644 --- a/code/lib/types/src/modules/api-stories.ts +++ b/code/lib/types/src/modules/api-stories.ts @@ -130,7 +130,7 @@ export interface API_IndexHash { } // We used to received a bit more data over the channel on the SET_STORIES event, including // the full parameters for each story. -type API_PreparedIndexEntry = IndexEntry & { +export type API_PreparedIndexEntry = IndexEntry & { parameters?: Parameters; argTypes?: ArgTypes; args?: Args; @@ -184,3 +184,7 @@ export interface API_StatusObject { export type API_StatusState = Record>; export type API_StatusUpdate = Record; + +export type API_FilterFunction = ( + item: API_IndexHash[keyof API_IndexHash] & { status: Record } +) => boolean; diff --git a/code/ui/manager/src/containers/sidebar.tsx b/code/ui/manager/src/containers/sidebar.tsx index c4beb5bda4c4..cadc918c795e 100755 --- a/code/ui/manager/src/containers/sidebar.tsx +++ b/code/ui/manager/src/containers/sidebar.tsx @@ -5,6 +5,7 @@ import { Consumer } from '@storybook/manager-api'; import { Sidebar as SidebarComponent } from '../components/sidebar/Sidebar'; import { useMenu } from './menu'; +import { getAncestorIds } from '../utils/tree'; export type Item = StoriesHash[keyof StoriesHash]; @@ -21,6 +22,7 @@ const Sidebar = React.memo(function Sideber() { indexError, previewInitialized, refs, + filters, } = state; const menu = useMenu( @@ -36,10 +38,35 @@ const Sidebar = React.memo(function Sideber() { const whatsNewNotificationsEnabled = state.whatsNewData?.status === 'SUCCESS' && !state.disableWhatsNewNotifications; + const filtered = new Set(); + + Object.values(index || {}).forEach((item) => { + if (item.type === 'story' || item.type === 'docs') { + let result = true; + + Object.values(filters).forEach((filter) => { + if (result === true) { + result = filter({ ...item, status: status[item.id] }); + } + }); + + if (result) { + filtered.add(item.id); + getAncestorIds(index, item.id).forEach((id) => { + filtered.add(id); + }); + } + } + }); + + const newIndex = Object.fromEntries( + Object.entries(index || {}).filter(([key]) => filtered.has(key)) + ); + return { title: name, url, - index, + index: newIndex, indexError, status, previewInitialized, From e92a19ce031808e5c46d43c44e939d56b3fa6005 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 7 Aug 2023 12:49:38 +0200 Subject: [PATCH 02/58] add support for setting filters in manager.ts & cleanup manager-api init so less race conditions happen --- code/lib/manager-api/src/modules/globals.ts | 21 +- code/lib/manager-api/src/modules/layout.ts | 2 +- code/lib/manager-api/src/modules/shortcuts.ts | 4 +- code/lib/manager-api/src/modules/stories.ts | 318 +++++++++--------- code/lib/manager-api/src/modules/url.ts | 84 ++--- code/lib/types/src/modules/addons.ts | 2 + code/lib/types/src/modules/api.ts | 3 +- code/ui/.storybook/manager.tsx | 5 +- code/ui/manager/src/containers/sidebar.tsx | 46 +-- 9 files changed, 255 insertions(+), 230 deletions(-) diff --git a/code/lib/manager-api/src/modules/globals.ts b/code/lib/manager-api/src/modules/globals.ts index 9b8d47069564..4789a7bf826c 100644 --- a/code/lib/manager-api/src/modules/globals.ts +++ b/code/lib/manager-api/src/modules/globals.ts @@ -32,7 +32,7 @@ export interface SubAPI { updateGlobals: (newGlobals: Globals) => void; } -export const init: ModuleFn = ({ store, fullAPI }) => { +export const init: ModuleFn = ({ store, fullAPI, provider }) => { const api: SubAPI = { getGlobals() { return store.getState().globals; @@ -62,8 +62,9 @@ export const init: ModuleFn = ({ store, fullAPI }) => { } }; - const initModule = () => { - fullAPI.on(GLOBALS_UPDATED, function handleGlobalsUpdated({ globals }: { globals: Globals }) { + provider.channel.on( + GLOBALS_UPDATED, + function handleGlobalsUpdated({ globals }: { globals: Globals }) { const { ref } = getEventMetadata(this, fullAPI); if (!ref) { @@ -73,10 +74,13 @@ export const init: ModuleFn = ({ store, fullAPI }) => { 'received a GLOBALS_UPDATED from a non-local ref. This is not currently supported.' ); } - }); + } + ); - // Emitted by the preview on initialization - fullAPI.on(SET_GLOBALS, function handleSetStories({ globals, globalTypes }: SetGlobalsPayload) { + // Emitted by the preview on initialization + provider.channel.on( + SET_GLOBALS, + function handleSetStories({ globals, globalTypes }: SetGlobalsPayload) { const { ref } = getEventMetadata(this, fullAPI); const currentGlobals = store.getState()?.globals; @@ -93,12 +97,11 @@ export const init: ModuleFn = ({ store, fullAPI }) => { ) { api.updateGlobals(currentGlobals); } - }); - }; + } + ); return { api, state, - init: initModule, }; }; diff --git a/code/lib/manager-api/src/modules/layout.ts b/code/lib/manager-api/src/modules/layout.ts index bbe43af9863d..1426827cb878 100644 --- a/code/lib/manager-api/src/modules/layout.ts +++ b/code/lib/manager-api/src/modules/layout.ts @@ -284,7 +284,7 @@ export const init: ModuleFn = ({ store, provider, singleStory, fullAPI }) => { state: merge(api.getInitialOptions(), persisted), init: () => { api.setOptions(merge(api.getInitialOptions(), persisted)); - fullAPI.on(SET_CONFIG, () => { + provider.channel.on(SET_CONFIG, () => { api.setOptions(merge(api.getInitialOptions(), persisted)); }); }, diff --git a/code/lib/manager-api/src/modules/shortcuts.ts b/code/lib/manager-api/src/modules/shortcuts.ts index 8dcf942f4bc7..fd1905235068 100644 --- a/code/lib/manager-api/src/modules/shortcuts.ts +++ b/code/lib/manager-api/src/modules/shortcuts.ts @@ -152,7 +152,7 @@ function focusInInput(event: KeyboardEvent) { return /input|textarea/i.test(target.tagName) || target.getAttribute('contenteditable') !== null; } -export const init: ModuleFn = ({ store, fullAPI }) => { +export const init: ModuleFn = ({ store, fullAPI, provider }) => { const api: SubAPI = { // Getting and setting shortcuts getShortcutKeys(): API_Shortcuts { @@ -402,7 +402,7 @@ export const init: ModuleFn = ({ store, fullAPI }) => { }); // Also listen to keydown events sent over the channel - fullAPI.on(PREVIEW_KEYDOWN, (data: { event: KeyboardEventLike }) => { + provider.channel.on(PREVIEW_KEYDOWN, (data: { event: KeyboardEventLike }) => { fullAPI.handleKeydownEvent(data.event); }); }; diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index 3ff624c31914..4a5c74dddfdb 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -40,6 +40,7 @@ import { STORY_MISSING, DOCS_PREPARED, SET_CURRENT_STORY, + SET_CONFIG, } from '@storybook/core-events'; import { logger } from '@storybook/client-logger'; @@ -288,7 +289,7 @@ function removeRemovedOptions = Record = ({ +export const init: ModuleFn = ({ fullAPI, store, navigate, @@ -513,7 +514,7 @@ export const init: ModuleFn = ({ // The story index we receive on SET_INDEX is "prepared" in that it has parameters // The story index we receive on fetchStoryIndex is not, but all the prepared fields are optional // so we can cast one to the other easily enough - setIndex: async (storyIndex: API_PreparedStoryIndex) => { + setIndex: async (storyIndex) => { const newHash = transformStoryIndexToStoriesHash(storyIndex, { provider, docsOptions, @@ -566,7 +567,7 @@ export const init: ModuleFn = ({ await fullAPI.updateRef(refId, { index }); } }, - setPreviewInitialized: async (ref?: ComposedRef): Promise => { + setPreviewInitialized: async (ref) => { if (!ref) { store.setState({ previewInitialized: true }); } else { @@ -586,184 +587,196 @@ export const init: ModuleFn = ({ await store.setState({ status: newStatus }, { persistence: 'session' }); }, - experimental_setFilter: async (id, filterFunction) => { await store.setState({ filters: { ...store.getState().filters, [id]: filterFunction } }); }, }; - const initModule = async () => { - // On initial load, the local iframe will select the first story (or other "selection specifier") - // and emit STORY_SPECIFIED with the id. We need to ensure we respond to this change. - fullAPI.on( - STORY_SPECIFIED, - function handler({ - storyId, - viewMode, - }: { - storyId: string; - viewMode: API_ViewMode; - [k: string]: any; - }) { - const { sourceType } = getEventMetadata(this, fullAPI); - - if (sourceType === 'local') { - const state = store.getState(); - const isCanvasRoute = - state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; - const stateHasSelection = state.viewMode && state.storyId; - const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; - /** - * When storybook starts, we want to navigate to the first story. - * But there are a few exceptions: - * - If the current storyId and viewMode are already set/correct. - * - If the user has navigated away already. - * - If the user started storybook with a specific page-URL like "/settings/about" - */ - if (isCanvasRoute) { - if (stateHasSelection && stateSelectionDifferent) { - // The manager state is correct, the preview state is lagging behind - fullAPI.emit(SET_CURRENT_STORY, { storyId: state.storyId, viewMode: state.viewMode }); - } else if (stateSelectionDifferent) { - // The preview state is correct, the manager state is lagging behind - navigate(`/${viewMode}/${storyId}`); - } + // On initial load, the local iframe will select the first story (or other "selection specifier") + // and emit STORY_SPECIFIED with the id. We need to ensure we respond to this change. + provider.channel.on( + STORY_SPECIFIED, + function handler({ + storyId, + viewMode, + }: { + storyId: string; + viewMode: API_ViewMode; + [k: string]: any; + }) { + const { sourceType } = getEventMetadata(this, fullAPI); + + if (sourceType === 'local') { + const state = store.getState(); + const isCanvasRoute = + state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; + const stateHasSelection = state.viewMode && state.storyId; + const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; + /** + * When storybook starts, we want to navigate to the first story. + * But there are a few exceptions: + * - If the current storyId and viewMode are already set/correct. + * - If the user has navigated away already. + * - If the user started storybook with a specific page-URL like "/settings/about" + */ + if (isCanvasRoute) { + if (stateHasSelection && stateSelectionDifferent) { + // The manager state is correct, the preview state is lagging behind + fullAPI.emit(SET_CURRENT_STORY, { storyId: state.storyId, viewMode: state.viewMode }); + } else if (stateSelectionDifferent) { + // The preview state is correct, the manager state is lagging behind + navigate(`/${viewMode}/${storyId}`); } } } - ); - - // The CURRENT_STORY_WAS_SET event is the best event to use to tell if a ref is ready. - // Until the ref has a selection, it will not render anything (e.g. while waiting for - // the preview.js file or the index to load). Once it has a selection, it will render its own - // preparing spinner. - fullAPI.on(CURRENT_STORY_WAS_SET, function handler() { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + } + ); + + // The CURRENT_STORY_WAS_SET event is the best event to use to tell if a ref is ready. + // Until the ref has a selection, it will not render anything (e.g. while waiting for + // the preview.js file or the index to load). Once it has a selection, it will render its own + // preparing spinner. + provider.channel.on(CURRENT_STORY_WAS_SET, function handler() { + const { ref } = getEventMetadata(this, fullAPI); + fullAPI.setPreviewInitialized(ref); + }); - fullAPI.on(STORY_CHANGED, function handler() { - const { sourceType } = getEventMetadata(this, fullAPI); + provider.channel.on(STORY_CHANGED, function handler() { + const { sourceType } = getEventMetadata(this, fullAPI); - if (sourceType === 'local') { - const options = fullAPI.getCurrentParameter('options'); + if (sourceType === 'local') { + const options = fullAPI.getCurrentParameter('options'); - if (options) { - fullAPI.setOptions(removeRemovedOptions(options)); - } + if (options) { + fullAPI.setOptions(removeRemovedOptions(options)); } - }); + } + }); - fullAPI.on(STORY_PREPARED, function handler({ id, ...update }: StoryPreparedPayload) { - const { ref, sourceType } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); + provider.channel.on(STORY_PREPARED, function handler({ id, ...update }: StoryPreparedPayload) { + const { ref, sourceType } = getEventMetadata(this, fullAPI); + fullAPI.updateStory(id, { ...update, prepared: true }, ref); - if (!ref) { - if (!store.getState().hasCalledSetOptions) { - const { options } = update.parameters; - fullAPI.setOptions(removeRemovedOptions(options)); - store.setState({ hasCalledSetOptions: true }); - } + if (!ref) { + if (!store.getState().hasCalledSetOptions) { + const { options } = update.parameters; + fullAPI.setOptions(removeRemovedOptions(options)); + store.setState({ hasCalledSetOptions: true }); } + } - if (sourceType === 'local') { - const { storyId, index, refId } = store.getState(); - - // create a list of related stories to be preloaded - const toBePreloaded = Array.from( - new Set([ - api.findSiblingStoryId(storyId, index, 1, true), - api.findSiblingStoryId(storyId, index, -1, true), - ]) - ).filter(Boolean); - - fullAPI.emit(PRELOAD_ENTRIES, { - ids: toBePreloaded, - options: { target: refId }, - }); - } - }); + if (sourceType === 'local') { + const { storyId, index, refId } = store.getState(); - fullAPI.on(DOCS_PREPARED, function handler({ id, ...update }: DocsPreparedPayload) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); - }); + // create a list of related stories to be preloaded + const toBePreloaded = Array.from( + new Set([ + api.findSiblingStoryId(storyId, index, 1, true), + api.findSiblingStoryId(storyId, index, -1, true), + ]) + ).filter(Boolean); - fullAPI.on(SET_INDEX, function handler(index: API_PreparedStoryIndex) { - const { ref } = getEventMetadata(this, fullAPI); + fullAPI.emit(PRELOAD_ENTRIES, { + ids: toBePreloaded, + options: { target: refId }, + }); + } + }); - if (!ref) { - fullAPI.setIndex(index); - const options = fullAPI.getCurrentParameter('options'); - fullAPI.setOptions(removeRemovedOptions(options)); - } else { - fullAPI.setRef(ref.id, { ...ref, storyIndex: index }, true); - } - }); + provider.channel.on(DOCS_PREPARED, function handler({ id, ...update }: DocsPreparedPayload) { + const { ref } = getEventMetadata(this, fullAPI); + fullAPI.updateStory(id, { ...update, prepared: true }, ref); + }); + + provider.channel.on(SET_INDEX, function handler(index: API_PreparedStoryIndex) { + const { ref } = getEventMetadata(this, fullAPI); + + if (!ref) { + fullAPI.setIndex(index); + const options = fullAPI.getCurrentParameter('options'); + fullAPI.setOptions(removeRemovedOptions(options)); + } else { + fullAPI.setRef(ref.id, { ...ref, storyIndex: index }, true); + } + }); + + // For composition back-compatibilty + provider.channel.on(SET_STORIES, function handler(data: SetStoriesPayload) { + const { ref } = getEventMetadata(this, fullAPI); + const setStoriesData = data.v ? denormalizeStoryParameters(data) : data.stories; - // For composition back-compatibilty - fullAPI.on(SET_STORIES, function handler(data: SetStoriesPayload) { + if (!ref) { + throw new Error('Cannot call SET_STORIES for local frame'); + } else { + fullAPI.setRef(ref.id, { ...ref, setStoriesData }, true); + } + }); + + provider.channel.on( + SELECT_STORY, + function handler({ + kind, + title = kind, + story, + name = story, + storyId, + ...rest + }: { + kind?: StoryKind; + title?: ComponentTitle; + story?: StoryName; + name?: StoryName; + storyId: string; + viewMode: API_ViewMode; + }) { const { ref } = getEventMetadata(this, fullAPI); - const setStoriesData = data.v ? denormalizeStoryParameters(data) : data.stories; if (!ref) { - throw new Error('Cannot call SET_STORIES for local frame'); + fullAPI.selectStory(storyId || title, name, rest); } else { - fullAPI.setRef(ref.id, { ...ref, setStoriesData }, true); - } - }); - - fullAPI.on( - SELECT_STORY, - function handler({ - kind, - title = kind, - story, - name = story, - storyId, - ...rest - }: { - kind?: StoryKind; - title?: ComponentTitle; - story?: StoryName; - name?: StoryName; - storyId: string; - viewMode: API_ViewMode; - }) { - const { ref } = getEventMetadata(this, fullAPI); - - if (!ref) { - fullAPI.selectStory(storyId || title, name, rest); - } else { - fullAPI.selectStory(storyId || title, name, { ...rest, ref: ref.id }); - } + fullAPI.selectStory(storyId || title, name, { ...rest, ref: ref.id }); } - ); - - fullAPI.on( - STORY_ARGS_UPDATED, - function handleStoryArgsUpdated({ storyId, args }: { storyId: StoryId; args: Args }) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(storyId, { args }, ref); - } - ); + } + ); - // When there's a preview error, we don't show it in the manager, but simply - fullAPI.on(CONFIG_ERROR, function handleConfigError(err) { + provider.channel.on( + STORY_ARGS_UPDATED, + function handleStoryArgsUpdated({ storyId, args }: { storyId: StoryId; args: Args }) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + fullAPI.updateStory(storyId, { args }, ref); + } + ); - fullAPI.on(STORY_MISSING, function handleConfigError(err) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + // When there's a preview error, we don't show it in the manager, but simply + provider.channel.on(CONFIG_ERROR, function handleConfigError(err) { + const { ref } = getEventMetadata(this, fullAPI); + fullAPI.setPreviewInitialized(ref); + }); + + provider.channel.on(STORY_MISSING, function handleConfigError(err) { + const { ref } = getEventMetadata(this, fullAPI); + fullAPI.setPreviewInitialized(ref); + }); - if (FEATURES?.storyStoreV7) { - fullAPI.on(STORY_INDEX_INVALIDATED, () => fullAPI.fetchIndex()); - await fullAPI.fetchIndex(); + provider.channel.on(SET_CONFIG, () => { + const config = provider.getConfig(); + console.log({ config }); + if (config?.sidebar?.filters) { + store.setState({ + filters: { + ...store.getState().filters, + ...config?.sidebar?.filters, + }, + }); } - }; + }); + + if (FEATURES?.storyStoreV7) { + provider.channel.on(STORY_INDEX_INVALIDATED, () => api.fetchIndex()); + api.fetchIndex(); + } + + const config = provider.getConfig(); return { api, @@ -773,8 +786,7 @@ export const init: ModuleFn = ({ hasCalledSetOptions: false, previewInitialized: false, status: {}, - filters: {}, + filters: config?.sidebar?.filters || {}, }, - init: initModule, }; }; diff --git a/code/lib/manager-api/src/modules/url.ts b/code/lib/manager-api/src/modules/url.ts index b8e4dcf6ebf1..7813c9c887e0 100644 --- a/code/lib/manager-api/src/modules/url.ts +++ b/code/lib/manager-api/src/modules/url.ts @@ -116,7 +116,14 @@ export interface SubAPI { setQueryParams: (input: QueryParams) => void; } -export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...rest }) => { +export const init: ModuleFn = ({ + store, + navigate, + state, + provider, + fullAPI, + ...rest +}) => { const navigateTo = ( path: string, queryParams: Record = {}, @@ -161,49 +168,46 @@ export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...r }, }; - const initModule = () => { - // Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. - const updateArgsParam = () => { - const { path, queryParams, viewMode } = fullAPI.getUrlState(); - if (viewMode !== 'story') return; - - const currentStory = fullAPI.getCurrentStoryData(); - if (currentStory?.type !== 'story') return; - - const { args, initialArgs } = currentStory; - const argsString = buildArgsParam(initialArgs, args); - navigateTo(path, { ...queryParams, args: argsString }, { replace: true }); - api.setQueryParams({ args: argsString }); - }; - - fullAPI.on(SET_CURRENT_STORY, () => updateArgsParam()); - - let handleOrId: any; - fullAPI.on(STORY_ARGS_UPDATED, () => { - if ('requestIdleCallback' in globalWindow) { - if (handleOrId) globalWindow.cancelIdleCallback(handleOrId); - handleOrId = globalWindow.requestIdleCallback(updateArgsParam, { timeout: 1000 }); - } else { - if (handleOrId) clearTimeout(handleOrId); - setTimeout(updateArgsParam, 100); - } - }); - - fullAPI.on(GLOBALS_UPDATED, ({ globals, initialGlobals }) => { - const { path, queryParams } = fullAPI.getUrlState(); - const globalsString = buildArgsParam(initialGlobals, globals); - navigateTo(path, { ...queryParams, globals: globalsString }, { replace: true }); - api.setQueryParams({ globals: globalsString }); - }); - - fullAPI.on(NAVIGATE_URL, (url: string, options: NavigateOptions) => { - fullAPI.navigateUrl(url, options); - }); + // Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. + const updateArgsParam = () => { + const { path, queryParams, viewMode } = api.getUrlState(); + if (viewMode !== 'story') return; + + const currentStory = fullAPI.getCurrentStoryData(); + if (currentStory?.type !== 'story') return; + + const { args, initialArgs } = currentStory; + const argsString = buildArgsParam(initialArgs, args); + navigateTo(path, { ...queryParams, args: argsString }, { replace: true }); + api.setQueryParams({ args: argsString }); }; + provider.channel.on(SET_CURRENT_STORY, () => updateArgsParam()); + + let handleOrId: any; + provider.channel.on(STORY_ARGS_UPDATED, () => { + if ('requestIdleCallback' in globalWindow) { + if (handleOrId) globalWindow.cancelIdleCallback(handleOrId); + handleOrId = globalWindow.requestIdleCallback(updateArgsParam, { timeout: 1000 }); + } else { + if (handleOrId) clearTimeout(handleOrId); + setTimeout(updateArgsParam, 100); + } + }); + + provider.channel.on(GLOBALS_UPDATED, ({ globals, initialGlobals }) => { + const { path, queryParams } = api.getUrlState(); + const globalsString = buildArgsParam(initialGlobals, globals); + navigateTo(path, { ...queryParams, globals: globalsString }, { replace: true }); + api.setQueryParams({ globals: globalsString }); + }); + + provider.channel.on(NAVIGATE_URL, (url: string, options: NavigateOptions) => { + api.navigateUrl(url, options); + }); + return { api, state: initialUrlSupport({ store, navigate, state, provider, fullAPI, ...rest }), - init: initModule, }; }; diff --git a/code/lib/types/src/modules/addons.ts b/code/lib/types/src/modules/addons.ts index 463c2c0e3b99..4735d41614f6 100644 --- a/code/lib/types/src/modules/addons.ts +++ b/code/lib/types/src/modules/addons.ts @@ -10,6 +10,7 @@ import type { } from 'react'; import type { RenderData as RouterData } from '../../../router/src/types'; import type { ThemeVars } from '../../../theming/src/types'; +import type { API_SidebarOptions } from './api'; import type { Args, ArgsStoryFn as ArgsStoryFnForFramework, @@ -473,6 +474,7 @@ export interface Addon_Config { toolbar?: { [id: string]: Addon_ToolbarConfig; }; + sidebar?: API_SidebarOptions; [key: string]: any; } diff --git a/code/lib/types/src/modules/api.ts b/code/lib/types/src/modules/api.ts index 762166b48fee..1fbaf0bba9bd 100644 --- a/code/lib/types/src/modules/api.ts +++ b/code/lib/types/src/modules/api.ts @@ -4,7 +4,7 @@ import type { RenderData } from '../../../router/src/types'; import type { Channel } from '../../../channels/src'; import type { ThemeVars } from '../../../theming/src/types'; import type { DocsOptions } from './core-common'; -import type { API_HashEntry, API_IndexHash } from './api-stories'; +import type { API_FilterFunction, API_HashEntry, API_IndexHash } from './api-stories'; import type { SetStoriesStory, SetStoriesStoryData } from './channelApi'; import type { Addon_BaseType, Addon_Collection, Addon_RenderOptions, Addon_Type } from './addons'; import type { StoryIndex } from './indexer'; @@ -112,6 +112,7 @@ export type API_ActiveTabsType = 'sidebar' | 'canvas' | 'addons'; export interface API_SidebarOptions { showRoots?: boolean; + filters?: Record; collapsedRoots?: string[]; renderLabel?: (item: API_HashEntry) => any; } diff --git a/code/ui/.storybook/manager.tsx b/code/ui/.storybook/manager.tsx index 775a1f63c8ed..8bb469374990 100644 --- a/code/ui/.storybook/manager.tsx +++ b/code/ui/.storybook/manager.tsx @@ -1,10 +1,11 @@ import { addons, types } from '@storybook/manager-api'; -import { IconButton, Icons } from '@storybook/components'; import startCase from 'lodash/startCase.js'; -import React, { Fragment } from 'react'; addons.setConfig({ sidebar: { renderLabel: ({ name, type }) => (type === 'story' ? name : startCase(name)), + // filters: { + // a: (item) => item.depth === 2, + // }, }, }); diff --git a/code/ui/manager/src/containers/sidebar.tsx b/code/ui/manager/src/containers/sidebar.tsx index cadc918c795e..7a69446a6e8a 100755 --- a/code/ui/manager/src/containers/sidebar.tsx +++ b/code/ui/manager/src/containers/sidebar.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import type { Combo, StoriesHash } from '@storybook/manager-api'; import { Consumer } from '@storybook/manager-api'; @@ -17,7 +17,7 @@ const Sidebar = React.memo(function Sideber() { storyId, refId, layout: { showToolbar, isFullscreen, showPanel, showNav }, - index, + index: originalIndex, status, indexError, previewInitialized, @@ -38,35 +38,37 @@ const Sidebar = React.memo(function Sideber() { const whatsNewNotificationsEnabled = state.whatsNewData?.status === 'SUCCESS' && !state.disableWhatsNewNotifications; - const filtered = new Set(); - - Object.values(index || {}).forEach((item) => { - if (item.type === 'story' || item.type === 'docs') { - let result = true; + const index = useMemo(() => { + const filtered = new Set(); - Object.values(filters).forEach((filter) => { - if (result === true) { - result = filter({ ...item, status: status[item.id] }); - } - }); + Object.values(originalIndex || {}).forEach((item) => { + if (item.type === 'story' || item.type === 'docs') { + let result = true; - if (result) { - filtered.add(item.id); - getAncestorIds(index, item.id).forEach((id) => { - filtered.add(id); + Object.values(filters).forEach((filter) => { + if (result === true) { + result = filter({ ...item, status: status[item.id] }); + } }); + + if (result) { + filtered.add(item.id); + getAncestorIds(originalIndex, item.id).forEach((id) => { + filtered.add(id); + }); + } } - } - }); + }); - const newIndex = Object.fromEntries( - Object.entries(index || {}).filter(([key]) => filtered.has(key)) - ); + return Object.fromEntries( + Object.entries(originalIndex || {}).filter(([key]) => filtered.has(key)) + ); + }, [originalIndex, filters, status]); return { title: name, url, - index: newIndex, + index, indexError, status, previewInitialized, From 3192b9b7ea71b856b410346c9b9467d8aee691aa Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Aug 2023 08:17:10 +0200 Subject: [PATCH 03/58] fix up the test --- code/lib/manager-api/src/lib/events.ts | 1 - code/lib/manager-api/src/modules/globals.ts | 2 +- code/lib/manager-api/src/modules/stories.ts | 45 +- code/lib/manager-api/src/modules/url.ts | 4 +- .../lib/manager-api/src/tests/globals.test.ts | 79 +- .../src/tests/mockStoriesEntries.ts | 129 ++ .../lib/manager-api/src/tests/stories.test.ts | 1506 ++++++----------- code/lib/manager-api/src/tests/url.test.js | 83 +- 8 files changed, 741 insertions(+), 1108 deletions(-) create mode 100644 code/lib/manager-api/src/tests/mockStoriesEntries.ts diff --git a/code/lib/manager-api/src/lib/events.ts b/code/lib/manager-api/src/lib/events.ts index 34038585f3ba..5bdce13eae23 100644 --- a/code/lib/manager-api/src/lib/events.ts +++ b/code/lib/manager-api/src/lib/events.ts @@ -18,7 +18,6 @@ interface Meta { export const getEventMetadata = (context: Meta, fullAPI: API) => { const { source, refId, type } = context; const [sourceType, sourceLocation] = getSourceType(source, refId); - const ref = refId && fullAPI.getRefs()[refId] ? fullAPI.getRefs()[refId] : fullAPI.findRef(sourceLocation); diff --git a/code/lib/manager-api/src/modules/globals.ts b/code/lib/manager-api/src/modules/globals.ts index 4789a7bf826c..5c7e6a18a51f 100644 --- a/code/lib/manager-api/src/modules/globals.ts +++ b/code/lib/manager-api/src/modules/globals.ts @@ -42,7 +42,7 @@ export const init: ModuleFn = ({ store, fullAPI, provider }) = }, updateGlobals(newGlobals) { // Only emit the message to the local ref - fullAPI.emit(UPDATE_GLOBALS, { + provider.channel.emit(UPDATE_GLOBALS, { globals: newGlobals, options: { target: 'storybook-preview-iframe', diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index 4a5c74dddfdb..f6d462224f6e 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -289,7 +289,7 @@ function removeRemovedOptions = Record = ({ +export const init: ModuleFn = ({ fullAPI, store, navigate, @@ -479,7 +479,7 @@ export const init: ModuleFn = ({ }, updateStoryArgs: (story, updatedArgs) => { const { id: storyId, refId } = story; - fullAPI.emit(UPDATE_STORY_ARGS, { + provider.channel.emit(UPDATE_STORY_ARGS, { storyId, updatedArgs, options: { target: refId }, @@ -487,7 +487,7 @@ export const init: ModuleFn = ({ }, resetStoryArgs: (story, argNames?: [string]) => { const { id: storyId, refId } = story; - fullAPI.emit(RESET_STORY_ARGS, { + provider.channel.emit(RESET_STORY_ARGS, { storyId, argNames, options: { target: refId }, @@ -506,7 +506,7 @@ export const init: ModuleFn = ({ return; } - await fullAPI.setIndex(storyIndex); + await api.setIndex(storyIndex); } catch (err) { await store.setState({ indexError: err }); } @@ -622,7 +622,10 @@ export const init: ModuleFn = ({ if (isCanvasRoute) { if (stateHasSelection && stateSelectionDifferent) { // The manager state is correct, the preview state is lagging behind - fullAPI.emit(SET_CURRENT_STORY, { storyId: state.storyId, viewMode: state.viewMode }); + provider.channel.emit(SET_CURRENT_STORY, { + storyId: state.storyId, + viewMode: state.viewMode, + }); } else if (stateSelectionDifferent) { // The preview state is correct, the manager state is lagging behind navigate(`/${viewMode}/${storyId}`); @@ -638,14 +641,14 @@ export const init: ModuleFn = ({ // preparing spinner. provider.channel.on(CURRENT_STORY_WAS_SET, function handler() { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); + api.setPreviewInitialized(ref); }); provider.channel.on(STORY_CHANGED, function handler() { const { sourceType } = getEventMetadata(this, fullAPI); if (sourceType === 'local') { - const options = fullAPI.getCurrentParameter('options'); + const options = api.getCurrentParameter('options'); if (options) { fullAPI.setOptions(removeRemovedOptions(options)); @@ -655,7 +658,7 @@ export const init: ModuleFn = ({ provider.channel.on(STORY_PREPARED, function handler({ id, ...update }: StoryPreparedPayload) { const { ref, sourceType } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); + api.updateStory(id, { ...update, prepared: true }, ref); if (!ref) { if (!store.getState().hasCalledSetOptions) { @@ -676,7 +679,7 @@ export const init: ModuleFn = ({ ]) ).filter(Boolean); - fullAPI.emit(PRELOAD_ENTRIES, { + provider.channel.emit(PRELOAD_ENTRIES, { ids: toBePreloaded, options: { target: refId }, }); @@ -685,15 +688,15 @@ export const init: ModuleFn = ({ provider.channel.on(DOCS_PREPARED, function handler({ id, ...update }: DocsPreparedPayload) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); + api.updateStory(id, { ...update, prepared: true }, ref); }); provider.channel.on(SET_INDEX, function handler(index: API_PreparedStoryIndex) { const { ref } = getEventMetadata(this, fullAPI); if (!ref) { - fullAPI.setIndex(index); - const options = fullAPI.getCurrentParameter('options'); + api.setIndex(index); + const options = api.getCurrentParameter('options'); fullAPI.setOptions(removeRemovedOptions(options)); } else { fullAPI.setRef(ref.id, { ...ref, storyIndex: index }, true); @@ -743,24 +746,23 @@ export const init: ModuleFn = ({ STORY_ARGS_UPDATED, function handleStoryArgsUpdated({ storyId, args }: { storyId: StoryId; args: Args }) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(storyId, { args }, ref); + api.updateStory(storyId, { args }, ref); } ); // When there's a preview error, we don't show it in the manager, but simply provider.channel.on(CONFIG_ERROR, function handleConfigError(err) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); + api.setPreviewInitialized(ref); }); provider.channel.on(STORY_MISSING, function handleConfigError(err) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); + api.setPreviewInitialized(ref); }); provider.channel.on(SET_CONFIG, () => { const config = provider.getConfig(); - console.log({ config }); if (config?.sidebar?.filters) { store.setState({ filters: { @@ -771,11 +773,6 @@ export const init: ModuleFn = ({ } }); - if (FEATURES?.storyStoreV7) { - provider.channel.on(STORY_INDEX_INVALIDATED, () => api.fetchIndex()); - api.fetchIndex(); - } - const config = provider.getConfig(); return { @@ -788,5 +785,11 @@ export const init: ModuleFn = ({ status: {}, filters: config?.sidebar?.filters || {}, }, + init: async () => { + if (FEATURES?.storyStoreV7) { + provider.channel.on(STORY_INDEX_INVALIDATED, () => api.fetchIndex()); + await api.fetchIndex(); + } + }, }; }; diff --git a/code/lib/manager-api/src/modules/url.ts b/code/lib/manager-api/src/modules/url.ts index 7813c9c887e0..28cc53234cbd 100644 --- a/code/lib/manager-api/src/modules/url.ts +++ b/code/lib/manager-api/src/modules/url.ts @@ -116,7 +116,7 @@ export interface SubAPI { setQueryParams: (input: QueryParams) => void; } -export const init: ModuleFn = ({ +export const init: ModuleFn = ({ store, navigate, state, @@ -160,7 +160,7 @@ export const init: ModuleFn = ({ }; if (!deepEqual(customQueryParams, update)) { store.setState({ customQueryParams: update }); - fullAPI.emit(UPDATE_QUERY_PARAMS, update); + provider.channel.emit(UPDATE_QUERY_PARAMS, update); } }, navigateUrl(url, options) { diff --git a/code/lib/manager-api/src/tests/globals.test.ts b/code/lib/manager-api/src/tests/globals.test.ts index babd449131b2..2c942ca29c8b 100644 --- a/code/lib/manager-api/src/tests/globals.test.ts +++ b/code/lib/manager-api/src/tests/globals.test.ts @@ -27,7 +27,8 @@ function createMockStore() { describe('globals API', () => { it('sets a sensible initialState', () => { const store = createMockStore(); - const { state } = initModule({ store } as unknown as ModuleArgs); + const channel = new EventEmitter(); + const { state } = initModule({ store, provider: { channel } } as unknown as ModuleArgs); expect(state).toEqual({ globals: {}, @@ -36,13 +37,15 @@ describe('globals API', () => { }); it('set global args on SET_GLOBALS', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - api.emit(SET_GLOBALS, { + channel.emit(SET_GLOBALS, { globals: { a: 'b' }, globalTypes: { a: { type: { name: 'string' } } }, }); @@ -53,26 +56,34 @@ describe('globals API', () => { }); it('ignores SET_STORIES from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); - api.emit(SET_STORIES, { globals: { a: 'b' } }); + channel.emit(SET_STORIES, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: {}, globalTypes: {} }); }); it('ignores SET_GLOBALS from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const api = { findRef: jest.fn() }; + const channel = new EventEmitter(); const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); - api.emit(SET_GLOBALS, { + channel.emit(SET_GLOBALS, { globals: { a: 'b' }, globalTypes: { a: { type: { name: 'string' } } }, }); @@ -80,48 +91,56 @@ describe('globals API', () => { }); it('updates the state when the preview emits GLOBALS_UPDATED', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - - api.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: { a: 'b' }, globalTypes: {} }); - api.emit(GLOBALS_UPDATED, { globals: { a: 'c' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'c' } }); expect(store.getState()).toEqual({ globals: { a: 'c' }, globalTypes: {} }); // SHOULD NOT merge global args - api.emit(GLOBALS_UPDATED, { globals: { d: 'e' } }); + channel.emit(GLOBALS_UPDATED, { globals: { d: 'e' } }); expect(store.getState()).toEqual({ globals: { d: 'e' }, globalTypes: {} }); }); it('ignores GLOBALS_UPDATED from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); logger.warn.mockClear(); - api.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: {}, globalTypes: {} }); expect(logger.warn).toHaveBeenCalled(); }); it('emits UPDATE_GLOBALS when updateGlobals is called', () => { - const fullAPI = { emit: jest.fn(), on: jest.fn() } as unknown as API; + const channel = new EventEmitter(); + const fullAPI = {} as unknown as API; const store = createMockStore(); - const { init, api } = initModule({ store, fullAPI } as unknown as ModuleArgs); - - init(); + const listener = jest.fn(); + channel.on(UPDATE_GLOBALS, listener); + const { api } = initModule({ store, fullAPI, provider: { channel } } as unknown as ModuleArgs); (api as SubAPI).updateGlobals({ a: 'b' }); - expect(fullAPI.emit).toHaveBeenCalledWith(UPDATE_GLOBALS, { + + expect(listener).toHaveBeenCalledWith({ globals: { a: 'b' }, options: { target: 'storybook-preview-iframe' }, }); diff --git a/code/lib/manager-api/src/tests/mockStoriesEntries.ts b/code/lib/manager-api/src/tests/mockStoriesEntries.ts new file mode 100644 index 000000000000..703b6e6efb76 --- /dev/null +++ b/code/lib/manager-api/src/tests/mockStoriesEntries.ts @@ -0,0 +1,129 @@ +import type { StoryIndex, API_PreparedStoryIndex } from '@storybook/types'; + +export const mockEntries: StoryIndex['entries'] = { + 'component-a--docs': { + type: 'docs', + id: 'component-a--docs', + title: 'Component A', + name: 'Docs', + importPath: './path/to/component-a.ts', + storiesImports: [], + }, + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + 'component-a--story-2': { + type: 'story', + id: 'component-a--story-2', + title: 'Component A', + name: 'Story 2', + importPath: './path/to/component-a.ts', + }, + 'component-b--story-3': { + type: 'story', + id: 'component-b--story-3', + title: 'Component B', + name: 'Story 3', + importPath: './path/to/component-b.ts', + }, +}; +export const docsEntries: StoryIndex['entries'] = { + 'component-a--page': { + type: 'story', + id: 'component-a--page', + title: 'Component A', + name: 'Page', + importPath: './path/to/component-a.ts', + }, + 'component-a--story-2': { + type: 'story', + id: 'component-a--story-2', + title: 'Component A', + name: 'Story 2', + importPath: './path/to/component-a.ts', + }, + 'component-b-docs': { + type: 'docs', + id: 'component-b--docs', + title: 'Component B', + name: 'Docs', + importPath: './path/to/component-b.ts', + storiesImports: [], + tags: ['stories-mdx'], + }, + 'component-c--story-4': { + type: 'story', + id: 'component-c--story-4', + title: 'Component c', + name: 'Story 4', + importPath: './path/to/component-c.ts', + }, +}; +export const navigationEntries: StoryIndex['entries'] = { + 'a--1': { + type: 'story', + title: 'a', + name: '1', + id: 'a--1', + importPath: './a.ts', + }, + 'a--2': { + type: 'story', + title: 'a', + name: '2', + id: 'a--2', + importPath: './a.ts', + }, + 'b-c--1': { + type: 'story', + title: 'b/c', + name: '1', + id: 'b-c--1', + importPath: './b/c.ts', + }, + 'b-d--1': { + type: 'story', + title: 'b/d', + name: '1', + id: 'b-d--1', + importPath: './b/d.ts', + }, + 'b-d--2': { + type: 'story', + title: 'b/d', + name: '2', + id: 'b-d--2', + importPath: './b/d.ts', + }, + 'custom-id--1': { + type: 'story', + title: 'b/e', + name: '1', + id: 'custom-id--1', + importPath: './b/.ts', + }, +}; +export const preparedEntries: API_PreparedStoryIndex['entries'] = { + 'a--1': { + type: 'story', + title: 'a', + name: '1', + parameters: {}, + id: 'a--1', + args: { a: 'b' }, + importPath: './a.ts', + }, + 'b--1': { + type: 'story', + title: 'b', + name: '1', + parameters: {}, + id: 'b--1', + args: { x: 'y' }, + importPath: './b.ts', + }, +}; diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index 5427226865e5..37522170a6e7 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -16,28 +16,25 @@ import { import { EventEmitter } from 'events'; import { global } from '@storybook/global'; -import { Channel } from '@storybook/channels'; +import type { API_StoryEntry } from '@storybook/types'; +import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; -import type { API_StoryEntry, StoryIndex, API_PreparedStoryIndex } from '@storybook/types'; -import { getEventMetadata } from '../lib/events'; - -import type { SubAPI } from '../modules/stories'; import { init as initStories } from '../modules/stories'; import type Store from '../store'; -import type { ModuleArgs } from '..'; - -function mockChannel() { - const transport = { - setHandler: () => {}, - send: () => {}, - }; - - return new Channel({ transport }); -} +import type { API, ModuleArgs, State } from '..'; +import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; const mockGetEntries = jest.fn(); +const fetch = global.fetch as jest.Mock>; +const getEventMetadata = getEventMetadataOriginal as unknown as jest.Mock< + ReturnType +>; + +const wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); -jest.mock('../lib/events'); +jest.mock('../lib/events', () => ({ + getEventMetadata: jest.fn(() => ({ sourceType: 'local' })), +})); jest.mock('@storybook/global', () => ({ global: { ...globalThis, @@ -47,41 +44,7 @@ jest.mock('@storybook/global', () => ({ }, })); -const getEventMetadataMock = getEventMetadata as ReturnType; - -const mockEntries: StoryIndex['entries'] = { - 'component-a--docs': { - type: 'docs', - id: 'component-a--docs', - title: 'Component A', - name: 'Docs', - importPath: './path/to/component-a.ts', - storiesImports: [], - }, - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - 'component-a--story-2': { - type: 'story', - id: 'component-a--story-2', - title: 'Component A', - name: 'Story 2', - importPath: './path/to/component-a.ts', - }, - 'component-b--story-3': { - type: 'story', - id: 'component-b--story-3', - title: 'Component B', - name: 'Story 3', - importPath: './path/to/component-b.ts', - }, -}; - -function createMockStore(initialState = {}) { +function createMockStore(initialState: Partial = {}) { let state = initialState; return { getState: jest.fn(() => state), @@ -91,40 +54,34 @@ function createMockStore(initialState = {}) { }), } as any as Store; } - -function initStoriesAndSetState({ store, ...options }: any) { - const { state, ...result } = initStories({ store, ...options } as any); - - store?.setState(state); - - return { state, ...result }; +function createMockProvider() { + return { + getConfig: jest.fn().mockReturnValue({}), + channel: new EventEmitter(), + }; +} +function createMockModuleArgs({ + fullAPI = {}, + initialState = {}, +}: { + fullAPI?: Partial>; + initialState?: Partial; +}) { + const navigate = jest.fn(); + const store = createMockStore(initialState); + const provider = createMockProvider(); + + return { navigate, store, provider, fullAPI }; } - -const provider = { getConfig: jest.fn().mockReturnValue({}), serverChannel: mockChannel() }; - -beforeEach(() => { - provider.getConfig.mockReset().mockReturnValue({}); - provider.serverChannel = mockChannel(); - mockGetEntries.mockReset().mockReturnValue(mockEntries); - - (global.fetch as jest.Mock>).mockReset().mockReturnValue( - Promise.resolve({ - status: 200, - ok: true, - json: () => ({ v: 4, entries: mockGetEntries() }), - } as any as Response) - ); - - getEventMetadataMock.mockReturnValue({ sourceType: 'local' } as any); - getEventMetadataMock.mockReturnValue({ sourceType: 'local' } as any); -}); describe('stories API', () => { it('sets a sensible initialState', () => { - const { state } = initStoriesAndSetState({ + const moduleArgs = createMockModuleArgs({}); + const { state } = initStories({ + ...(moduleArgs as unknown as ModuleArgs), storyId: 'id', viewMode: 'story', - } as ModuleArgs); + }); expect(state).toEqual( expect.objectContaining({ @@ -138,16 +95,11 @@ describe('stories API', () => { describe('setIndex', () => { it('sets the initial set of stories in the stories hash', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: mockEntries }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -162,7 +114,6 @@ describe('stories API', () => { id: 'component-a', children: ['component-a--docs', 'component-a--story-1', 'component-a--story-2'], }); - expect(index['component-a--docs']).toMatchObject({ type: 'docs', id: 'component-a--docs', @@ -172,7 +123,6 @@ describe('stories API', () => { storiesImports: [], prepared: false, }); - expect(index['component-a--story-1']).toMatchObject({ type: 'story', id: 'component-a--story-1', @@ -185,15 +135,10 @@ describe('stories API', () => { (index['component-a--story-1'] as API_StoryEntry as API_StoryEntry).args ).toBeUndefined(); }); - it('trims whitespace of group/component names (which originate from the kind)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -207,7 +152,6 @@ describe('stories API', () => { }, }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'design-system', @@ -228,15 +172,10 @@ describe('stories API', () => { name: ' My Story ', // story name is kept as-is, because it's set directly on the story }); }); - it('moves rootless stories to the front of the list', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -251,7 +190,6 @@ describe('stories API', () => { }, }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -270,15 +208,10 @@ describe('stories API', () => { children: ['root-first'], }); }); - it('sets roots when showRoots = true', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -292,9 +225,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a-b', 'a-b--1']); expect(index.a).toMatchObject({ @@ -316,15 +247,10 @@ describe('stories API', () => { title: 'a/b', }); }); - it('does not put bare stories into a root when showRoots = true', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -338,9 +264,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a--1']); expect(index.a).toMatchObject({ @@ -356,17 +280,12 @@ describe('stories API', () => { name: '1', }); }); - // Stories can get out of order for a few reasons -- see reproductions on // https://github.com/storybookjs/storybook/issues/5518 it('does the right thing for out of order stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -376,9 +295,7 @@ describe('stories API', () => { 'a--2': { type: 'story', title: 'a', name: '2', id: 'a--2', importPath: './a.ts' }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a--1', 'a--2', 'b', 'b--1']); expect(index.a).toMatchObject({ @@ -386,23 +303,17 @@ describe('stories API', () => { id: 'a', children: ['a--1', 'a--2'], }); - expect(index.b).toMatchObject({ type: 'component', id: 'b', children: ['b--1'], }); }); - // Entries on the SET_STORIES event will be prepared it('handles properly prepared stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -417,9 +328,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - expect(index['prepared--story']).toMatchObject({ type: 'story', id: 'prepared--story', @@ -431,21 +340,13 @@ describe('stories API', () => { args: { arg: 'exists' }, }); }); - it('retains prepared-ness of stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setOptions: jest.fn(), - }); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - init(); - + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; api.setIndex({ v: 4, entries: mockEntries }); - - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { a: 'b' }, args: { c: 'd' }, @@ -457,9 +358,7 @@ describe('stories API', () => { parameters: { a: 'b' }, args: { c: 'd' }, }); - api.setIndex({ v: 4, entries: mockEntries }); - // Let the promise/await chain resolve await new Promise((r) => setTimeout(r, 0)); expect(store.getState().index['component-a--story-1'] as API_StoryEntry).toMatchObject({ @@ -470,51 +369,13 @@ describe('stories API', () => { }); describe('docs entries', () => { - const docsEntries: StoryIndex['entries'] = { - 'component-a--page': { - type: 'story', - id: 'component-a--page', - title: 'Component A', - name: 'Page', - importPath: './path/to/component-a.ts', - }, - 'component-a--story-2': { - type: 'story', - id: 'component-a--story-2', - title: 'Component A', - name: 'Story 2', - importPath: './path/to/component-a.ts', - }, - 'component-b-docs': { - type: 'docs', - id: 'component-b--docs', - title: 'Component B', - name: 'Docs', - importPath: './path/to/component-b.ts', - storiesImports: [], - tags: ['stories-mdx'], - }, - 'component-c--story-4': { - type: 'story', - id: 'component-c--story-4', - title: 'Component c', - name: 'Story 4', - importPath: './path/to/component-c.ts', - }, - }; - it('handles docs entries', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: docsEntries }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -530,26 +391,16 @@ describe('stories API', () => { expect(index['component-b--docs'].type).toBe('docs'); expect(index['component-c--story-4'].type).toBe('story'); }); - describe('when DOCS_MODE = true', () => { it('strips out story entries', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories({ + ...(moduleArgs as unknown as ModuleArgs), docsOptions: { docsMode: true }, - } as any); - Object.assign(fullAPI, api); - + }); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: docsEntries }); - const { index } = store.getState(); - expect(Object.keys(index)).toEqual(['component-b', 'component-b--docs']); }); }); @@ -558,269 +409,197 @@ describe('stories API', () => { describe('SET_INDEX event', () => { it('calls setIndex w/ the data', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), - setOptions: jest.fn(), - }); - init(); - - fullAPI.emit(SET_INDEX, { v: 4, entries: mockEntries }); + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; - expect(fullAPI.setIndex).toHaveBeenCalled(); + provider.channel.emit(SET_INDEX, { v: 4, entries: mockEntries }); + expect(store.getState().index).toEqual( + expect.objectContaining({ + 'component-a': expect.any(Object), + 'component-a--docs': expect.any(Object), + 'component-a--story-1': expect.any(Object), + }) + ); }); - it('calls setOptions w/ first story parameter', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), - setOptions: jest.fn(), + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; + + // HACK api to effectively mock getCurrentParameter + Object.assign(api, { getCurrentParameter: jest.fn().mockReturnValue('options'), }); - init(); - - fullAPI.emit(SET_INDEX, { v: 4, entries: mockEntries }); + provider.channel.emit(SET_INDEX, { v: 4, entries: mockEntries }); expect(fullAPI.setOptions).toHaveBeenCalledWith('options'); }); }); describe('fetchIndex', () => { it('deals with 500 errors', async () => { - const navigate = jest.fn(); - const store = createMockStore({}); - const fullAPI = Object.assign(new EventEmitter(), {}, {}); - - (global.fetch as jest.Mock>).mockReturnValue( + fetch.mockReturnValue( Promise.resolve({ status: 500, text: async () => new Error('sorting error'), } as any as Response) ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; await init(); const { indexError } = store.getState(); expect(indexError).toBeDefined(); }); - it('watches for the INVALIDATE event and re-fetches -- and resets the hash', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setIndex: jest.fn(), - }); + fetch.mockReturnValue( + Promise.resolve({ + status: 200, + ok: true, + json: () => ({ + v: 4, + entries: { + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + }, + }), + } as any as Response) + ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; - (global.fetch as jest.Mock>).mockClear(); await init(); - expect(global.fetch as jest.Mock>).toHaveBeenCalledTimes(1); - - (global.fetch as jest.Mock>).mockClear(); - mockGetEntries.mockReturnValueOnce({ - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - }); - fullAPI.emit(STORY_INDEX_INVALIDATED); - expect(global.fetch).toHaveBeenCalledTimes(1); - // Let the promise/await chain resolve - await new Promise((r) => setTimeout(r, 0)); - const { index } = store.getState(); + expect(fetch).toHaveBeenCalledTimes(1); + provider.channel.emit(STORY_INDEX_INVALIDATED); + expect(global.fetch).toHaveBeenCalledTimes(2); + + // this side-effect is in an un-awaited promise. + await wait(16); + const { index } = store.getState(); expect(Object.keys(index)).toEqual(['component-a', 'component-a--story-1']); }); - it('clears 500 errors when invalidated', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setIndex: jest.fn(), - }); - - (global.fetch as jest.Mock>).mockReturnValueOnce( + fetch.mockReturnValueOnce( Promise.resolve({ status: 500, text: async () => new Error('sorting error'), } as any as Response) ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; await init(); const { indexError } = store.getState(); expect(indexError).toBeDefined(); - (global.fetch as jest.Mock>).mockClear(); - mockGetEntries.mockReturnValueOnce({ - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - }); - fullAPI.emit(STORY_INDEX_INVALIDATED); - expect(global.fetch).toHaveBeenCalledTimes(1); + fetch.mockReturnValueOnce( + Promise.resolve({ + status: 200, + ok: true, + json: () => ({ + v: 4, + entries: { + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + }, + }), + } as any as Response) + ); + + provider.channel.emit(STORY_INDEX_INVALIDATED); + expect(global.fetch).toHaveBeenCalledTimes(2); + + // this side-effect is in an un-awaited promise. + await wait(16); - // Let the promise/await chain resolve - await new Promise((r) => setTimeout(r, 0)); const { index, indexError: newIndexError } = store.getState(); expect(newIndexError).not.toBeDefined(); - expect(Object.keys(index)).toEqual(['component-a', 'component-a--story-1']); }); }); describe('STORY_SPECIFIED event', () => { it('navigates to the story', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return false; - }, - }); - const store = createMockStore({ viewMode: 'story' }); - const { init, api } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'story', - } as any); - - Object.assign(fullAPI, api); - init(); - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('DOES not navigate if the story was already selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'story', storyId: 'a--1' }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'story', - storyId: 'a--1', - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/story/a--1' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); - it('DOES not navigate if a settings page was selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'settings', storyId: 'about' }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'settings', - storyId: 'about', - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/settings/about' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); - it('DOES not navigate if a custom page was selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'custom', storyId: undefined }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'custom', - storyId: undefined, - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/custom/page' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); }); describe('CURRENT_STORY_WAS_SET event', () => { it('sets previewInitialized', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), {}); - const store = createMockStore({}); - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - Object.assign(fullAPI, api); - await init(); - fullAPI.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); + const moduleArgs = createMockModuleArgs({}); + initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); expect(store.getState().previewInitialized).toBe(true); }); - it('sets a ref to previewInitialized', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - Object.assign(fullAPI, api); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', - ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } }, - } as any); - await init(); - fullAPI.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); - + refId: 'refId', + source: '', + sourceLocation: '', + type: '', + ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } } as any, + }); + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); - expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); @@ -828,88 +607,53 @@ describe('stories API', () => { }); describe('args handling', () => { - const parameters = {}; - const preparedEntries: API_PreparedStoryIndex['entries'] = { - 'a--1': { - type: 'story', - title: 'a', - name: '1', - parameters, - id: 'a--1', - args: { a: 'b' }, - importPath: './a.ts', - }, - 'b--1': { - type: 'story', - title: 'b', - name: '1', - parameters, - id: 'b--1', - args: { x: 'y' }, - importPath: './b.ts', - }, - }; - it('changes args properly, per story when receiving STORY_ARGS_UPDATED', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + api.setIndex({ v: 4, entries: preparedEntries }); const { index } = store.getState(); expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); - - init(); - fullAPI.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); - + provider.channel.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); const { index: changedIndex } = store.getState(); expect((changedIndex['a--1'] as API_StoryEntry).args).toEqual({ foo: 'bar' }); expect((changedIndex['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('changes reffed args properly, per story when receiving STORY_ARGS_UPDATED', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = new EventEmitter(); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - updateRef: jest.fn(), - }); - - init(); - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', - ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } }, - } as any); - fullAPI.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); - expect((fullAPI as any).updateRef).toHaveBeenCalledWith('refId', { + refId: 'refId', + source: '', + sourceLocation: '', + type: '', + ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } } as any, + }); + provider.channel.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); + expect(fullAPI.updateRef).toHaveBeenCalledWith('refId', { index: { 'a--1': { args: { foo: 'bar' } } }, }); }); - it('updateStoryArgs emits UPDATE_STORY_ARGS to the local frame and does not change anything', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - init(); + const listener = jest.fn(); + provider.channel.on(UPDATE_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.updateStoryArgs({ id: 'a--1' } as API_StoryEntry, { foo: 'bar' }); - expect(emit).toHaveBeenCalledWith(UPDATE_STORY_ARGS, { + + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', updatedArgs: { foo: 'bar' }, options: { @@ -921,23 +665,18 @@ describe('stories API', () => { expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('updateStoryArgs emits UPDATE_STORY_ARGS to the right frame', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - - init(); + const listener = jest.fn(); + provider.channel.on(UPDATE_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.updateStoryArgs({ id: 'a--1', refId: 'refId' } as API_StoryEntry, { foo: 'bar' }); - expect(emit).toHaveBeenCalledWith(UPDATE_STORY_ARGS, { + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', updatedArgs: { foo: 'bar' }, options: { @@ -945,22 +684,18 @@ describe('stories API', () => { }, }); }); - it('refId to the local frame and does not change anything', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - init(); - + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + const listener = jest.fn(); + provider.channel.on(RESET_STORY_ARGS, listener); + + api.setIndex({ v: 4, entries: preparedEntries }); api.resetStoryArgs({ id: 'a--1' } as API_StoryEntry, ['foo']); - expect(emit).toHaveBeenCalledWith(RESET_STORY_ARGS, { + + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', argNames: ['foo'], options: { @@ -972,22 +707,18 @@ describe('stories API', () => { expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('resetStoryArgs emits RESET_STORY_ARGS to the right frame', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - init(); + const listener = jest.fn(); + provider.channel.on(RESET_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.resetStoryArgs({ id: 'a--1', refId: 'refId' } as API_StoryEntry, ['foo']); - expect(emit).toHaveBeenCalledWith(RESET_STORY_ARGS, { + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', argNames: ['foo'], options: { @@ -997,268 +728,156 @@ describe('stories API', () => { }); }); - const navigationEntries: StoryIndex['entries'] = { - 'a--1': { - type: 'story', - title: 'a', - name: '1', - id: 'a--1', - importPath: './a.ts', - }, - 'a--2': { - type: 'story', - title: 'a', - name: '2', - id: 'a--2', - importPath: './a.ts', - }, - 'b-c--1': { - type: 'story', - title: 'b/c', - name: '1', - id: 'b-c--1', - importPath: './b/c.ts', - }, - 'b-d--1': { - type: 'story', - title: 'b/d', - name: '1', - id: 'b-d--1', - importPath: './b/d.ts', - }, - 'b-d--2': { - type: 'story', - title: 'b/d', - name: '2', - id: 'b-d--2', - importPath: './b/d.ts', - }, - 'custom-id--1': { - type: 'story', - title: 'b/e', - name: '1', - id: 'custom-id--1', - importPath: './b/.ts', - }, - }; - describe('jumpToStory', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); - jumpToStory(1); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('works backwards', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--2', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--2', storyId: 'a--2', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(-1); - jumpToStory(-1); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('does nothing if you are at the last story and go forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, + const initialState = { + path: '/story/custom-id--1', storyId: 'custom-id--1', viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToStory(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you are at the first story and go backward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToStory(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(-1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you have not selected a story', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - jumpToStory(1); + // @ts-expect-error (storyId type is maybe wrong?) + const initialState = { path: '/story', storyId: undefined, viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); expect(navigate).not.toHaveBeenCalled(); }); }); describe('findSiblingStoryId', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const storyId = 'a--1'; - const { - api: { setIndex, findSiblingStoryId }, - } = initStoriesAndSetState({ store, navigate, storyId, viewMode: 'story', provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; - const result = findSiblingStoryId(storyId, store.getState().index, 1, false); + api.setIndex({ v: 4, entries: navigationEntries }); + const result = api.findSiblingStoryId('a--1', store.getState().index, 1, false); expect(result).toBe('a--2'); }); it('works forward toSiblingGroup', () => { - const navigate = jest.fn(); - const store = createMockStore(); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; - const storyId = 'a--1'; - const { - api: { setIndex, findSiblingStoryId }, - } = initStoriesAndSetState({ store, navigate, storyId, viewMode: 'story', provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - const result = findSiblingStoryId(storyId, store.getState().index, 1, true); + api.setIndex({ v: 4, entries: navigationEntries }); + const result = api.findSiblingStoryId('a--1', store.getState().index, 1, true); expect(result).toBe('b-c--1'); }); }); describe('jumpToComponent', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, - storyId: 'a--1', - viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(1); expect(navigate).toHaveBeenCalledWith('/story/b-c--1'); }); - it('works backwards', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, + const initialState = { + path: '/story/b-c--1', storyId: 'b-c--1', viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(-1); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('does nothing if you are in the last component and go forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, + const initialState = { + path: '/story/custom-id--1', storyId: 'custom-id--1', viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you are at the first component and go backward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, - storyId: 'a--2', - viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--2', storyId: 'a--2', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(-1); expect(navigate).not.toHaveBeenCalled(); }); }); - describe('selectStory', () => { it('navigates', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'story' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a--2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a--2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('sets view mode to docs if doc-level component is selected', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'docs' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ + const initialState = { path: '/docs/a--1', storyId: 'a--1', viewMode: 'docs' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: { ...navigationEntries, @@ -1272,194 +891,129 @@ describe('stories API', () => { }, }, }); - - selectStory('intro'); + api.selectStory('intro'); expect(navigate).toHaveBeenCalledWith('/docs/intro--docs'); }); - - describe('legacy api', () => { + describe('deprecated api', () => { it('allows navigating to a combination of title + name', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a', '2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a', '2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('allows navigating to a given name (in the current component)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory(undefined, '2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory(undefined, '2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); }); - it('allows navigating away from the settings pages', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'settings' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a--2'); + const initialState = { path: '/settings/a--1', storyId: 'a--1', viewMode: 'settings' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a--2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('allows navigating to first story in component on call by component id', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('a'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a'); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('allows navigating to first story in group on call by group id', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b'); expect(navigate).toHaveBeenCalledWith('/story/b-c--1'); }); - it('allows navigating to first story in component on call by title', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('A'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('A'); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('allows navigating to the first story of the current component if passed nothing', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--2', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory(); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory(); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - describe('component permalinks', () => { it('allows navigating to kind/storyname (legacy api)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b/e', '1'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b/e', '1'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); - it('allows navigating to component permalink/storyname (legacy api)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('custom-id', '1'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('custom-id', '1'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); - it('allows navigating to first story in kind on call by kind', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b/e'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b/e'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); }); }); - describe('STORY_PREPARED', () => { it('prepares the story', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const fullAPI = { setOptions: jest.fn() }; + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState, fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { a: 'b' }, args: { c: 'd' }, }); - const { index } = store.getState(); expect(index['component-a--story-1']).toMatchObject({ type: 'story', @@ -1472,54 +1026,42 @@ describe('stories API', () => { args: { c: 'd' }, }); }); - it('sets options the first time it is called', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const fullAPI = { setOptions: jest.fn() }; + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState, fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { options: 'options' }, }); - expect(fullAPI.setOptions).toHaveBeenCalledWith('options'); fullAPI.setOptions.mockClear(); - fullAPI.emit(STORY_PREPARED, { + + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { options: 'options2' }, }); - expect(fullAPI.setOptions).not.toHaveBeenCalled(); }); }); - describe('DOCS_PREPARED', () => { it('prepares the docs entry', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(DOCS_PREPARED, { + provider.channel.emit(DOCS_PREPARED, { id: 'component-a--docs', parameters: { a: 'b' }, }); - const { index } = store.getState(); expect(index['component-a--docs']).toMatchObject({ type: 'docs', @@ -1532,104 +1074,75 @@ describe('stories API', () => { }); }); }); - describe('CONFIG_ERROR', () => { it('sets previewInitialized to true, local', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - await init(); - - fullAPI.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); + api.setIndex({ v: 4, entries: mockEntries }); + provider.channel.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); const { previewInitialized } = store.getState(); expect(previewInitialized).toBe(true); }); - it('sets previewInitialized to true, ref', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'refId', stories: { 'a--1': { args: { a: 'b' } } } }, } as any); - await init(); - fullAPI.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); - + provider.channel.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); }); }); - describe('STORY_MISSING', () => { it('sets previewInitialized to true, local', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - - await init(); - - fullAPI.emit(STORY_MISSING, { message: 'Failed to run configure' }); + const moduleArgs = createMockModuleArgs({}); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + provider.channel.emit(STORY_MISSING, { message: 'Failed to run configure' }); const { previewInitialized } = store.getState(); expect(previewInitialized).toBe(true); }); - it('sets previewInitialized to true, ref', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - Object.assign(fullAPI, api); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'refId', stories: { 'a--1': { args: { a: 'b' } } } }, } as any); - await init(); - fullAPI.emit(STORY_MISSING, { message: 'Failed to run configure' }); - + provider.channel.emit(STORY_MISSING, { message: 'Failed to run configure' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); }); }); - describe('v2 SET_STORIES event', () => { it('normalizes parameters and calls setRef for external stories', () => { - const fullAPI = Object.assign(new EventEmitter(), {}); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - const finalAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), + const fullAPI = { findRef: jest.fn(), setRef: jest.fn(), - }); - init(); + }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' }, } as any); @@ -1639,10 +1152,9 @@ describe('stories API', () => { kindParameters: { a: { kind: 'kind' } }, stories: { 'a--1': { kind: 'a', parameters: { story: 'story' } } }, }; - finalAPI.emit(SET_STORIES, setStoriesPayload); - - expect(finalAPI.setIndex).not.toHaveBeenCalled(); - expect(finalAPI.setRef).toHaveBeenCalledWith( + provider.channel.emit(SET_STORIES, setStoriesPayload); + expect(store.getState().index).toBeUndefined(); + expect(fullAPI.setRef).toHaveBeenCalledWith( 'ref', { id: 'ref', @@ -1656,28 +1168,23 @@ describe('stories API', () => { }); describe('legacy (v1) SET_STORIES event', () => { it('calls setRef with stories', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), + const fullAPI = { findRef: jest.fn(), setRef: jest.fn(), - }); - init(); + }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' }, } as any); const setStoriesPayload = { stories: { 'a--1': {} }, }; - fullAPI.emit(SET_STORIES, setStoriesPayload); - - expect(fullAPI.setIndex).not.toHaveBeenCalled(); + provider.channel.emit(SET_STORIES, setStoriesPayload); + expect(store.getState().index).toBeUndefined(); expect(fullAPI.setRef).toHaveBeenCalledWith( 'ref', { @@ -1690,47 +1197,33 @@ describe('stories API', () => { ); }); }); +}); +describe('experimental_updateStatus', () => { + it('is included in the initial state', () => { + const moduleArgs = createMockModuleArgs({}); + const { state } = initStories(moduleArgs as unknown as ModuleArgs); - describe('experimental_updateStatus', () => { - it('is included in the initial state', () => { - const { state } = initStoriesAndSetState({ - storyId: 'id', - viewMode: 'story', - } as ModuleArgs); - - expect(state).toEqual( - expect.objectContaining({ - status: {}, - }) - ); - }); - - it('updates a story', async () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const API: SubAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), - findRef: jest.fn(), - setRef: jest.fn(), - }); - - await init(); - - await expect( - API.experimental_updateStatus('a-addon-id', { - 'a-story-id': { - status: 'pending', - title: 'an addon title', - description: 'an addon description', - }, - }) - ).resolves.not.toThrow(); - - expect(store.getState().status).toMatchInlineSnapshot(` + expect(state).toEqual( + expect.objectContaining({ + status: {}, + }) + ); + }); + it('updates a story', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + }) + ).resolves.not.toThrow(); + expect(store.getState().status).toMatchInlineSnapshot(` Object { "a-story-id": Object { "a-addon-id": Object { @@ -1741,35 +1234,23 @@ describe('stories API', () => { }, } `); - }); - - it('updates multiple stories', async () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const API: SubAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), - findRef: jest.fn(), - setRef: jest.fn(), - }); - - await init(); - - await expect( - API.experimental_updateStatus('a-addon-id', { - 'a-story-id': { - status: 'pending', - title: 'an addon title', - description: 'an addon description', - }, - 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, - }) - ).resolves.not.toThrow(); - - expect(store.getState().status).toMatchInlineSnapshot(` + }); + it('updates multiple stories', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, + }) + ).resolves.not.toThrow(); + expect(store.getState().status).toMatchInlineSnapshot(` Object { "a-story-id": Object { "a-addon-id": Object { @@ -1787,6 +1268,5 @@ describe('stories API', () => { }, } `); - }); }); }); diff --git a/code/lib/manager-api/src/tests/url.test.js b/code/lib/manager-api/src/tests/url.test.js index c269331b1c77..33cf4a1872c1 100644 --- a/code/lib/manager-api/src/tests/url.test.js +++ b/code/lib/manager-api/src/tests/url.test.js @@ -2,6 +2,7 @@ import qs from 'qs'; import { SET_CURRENT_STORY, GLOBALS_UPDATED, UPDATE_QUERY_PARAMS } from '@storybook/core-events'; +import EventEmitter from 'events'; import { init as initURL } from '../modules/url'; jest.mock('@storybook/client-logger'); @@ -17,7 +18,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ isFullscreen: true }); }); @@ -28,7 +29,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ showNav: false }); }); @@ -39,7 +40,7 @@ describe('initial state', () => { const { state: { ui }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(ui).toEqual({ enableShortcuts: false }); }); @@ -50,7 +51,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ panelPosition: 'bottom' }); }); @@ -61,7 +62,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ panelPosition: 'right' }); }); @@ -72,7 +73,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ showPanel: false }); }); @@ -88,18 +89,23 @@ describe('queryParams', () => { }, getState: () => state, }; - const fullAPI = { emit: jest.fn() }; + const channel = new EventEmitter(); const { api } = initURL({ state: { location: { search: '' } }, navigate: jest.fn(), store, - fullAPI, + provider: { channel }, }); + const listener = jest.fn(); + + channel.on(UPDATE_QUERY_PARAMS, listener); + api.setQueryParams({ foo: 'bar' }); expect(api.getQueryParam('foo')).toEqual('bar'); - expect(fullAPI.emit).toHaveBeenCalledWith(UPDATE_QUERY_PARAMS, { foo: 'bar' }); + + expect(listener).toHaveBeenCalledWith({ foo: 'bar' }); }); }); @@ -120,14 +126,6 @@ describe('initModule', () => { }); const fullAPI = { - callbacks: {}, - on(event, fn) { - this.callbacks[event] = this.callbacks[event] || []; - this.callbacks[event].push(fn); - }, - emit(event, ...args) { - this.callbacks[event]?.forEach((cb) => cb(...args)); - }, showReleaseNotesOnLaunch: jest.fn(), }; @@ -140,19 +138,22 @@ describe('initModule', () => { store.setState(storyState('test--story')); const navigate = jest.fn(); - - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api, { - getCurrentStoryData: () => ({ - type: 'story', - args: { a: 1, b: 2 }, - initialArgs: { a: 1, b: 1 }, - isLeaf: true, + const channel = new EventEmitter(); + initURL({ + store, + provider: { channel }, + state: { location: {} }, + navigate, + fullAPI: Object.assign(fullAPI, { + getCurrentStoryData: () => ({ + type: 'story', + args: { a: 1, b: 2 }, + initialArgs: { a: 1, b: 1 }, + isLeaf: true, + }), }), }); - init(); - - fullAPI.emit(SET_CURRENT_STORY); + channel.emit(SET_CURRENT_STORY); expect(navigate).toHaveBeenCalledWith( '/story/test--story&args=b:2', expect.objectContaining({ replace: true }) @@ -164,12 +165,10 @@ describe('initModule', () => { store.setState(storyState('test--story')); const navigate = jest.fn(); + const channel = new EventEmitter(); + initURL({ store, provider: { channel }, state: { location: {} }, navigate, fullAPI }); - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(GLOBALS_UPDATED, { globals: { a: 2 }, initialGlobals: { a: 1, b: 1 } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 2 }, initialGlobals: { a: 1, b: 1 } }); expect(navigate).toHaveBeenCalledWith( '/story/test--story&globals=a:2;b:!undefined', expect.objectContaining({ replace: true }) @@ -180,20 +179,24 @@ describe('initModule', () => { it('adds url params alphabetically', async () => { store.setState({ ...storyState('test--story'), customQueryParams: { full: 1 } }); const navigate = jest.fn(); - - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api, { - getCurrentStoryData: () => ({ type: 'story', args: { a: 1 }, isLeaf: true }), + const channel = new EventEmitter(); + const { api } = initURL({ + store, + provider: { channel }, + state: { location: {} }, + navigate, + fullAPI: Object.assign(fullAPI, { + getCurrentStoryData: () => ({ type: 'story', args: { a: 1 }, isLeaf: true }), + }), }); - init(); - fullAPI.emit(GLOBALS_UPDATED, { globals: { g: 2 } }); + channel.emit(GLOBALS_UPDATED, { globals: { g: 2 } }); expect(navigate).toHaveBeenCalledWith( '/story/test--story&full=1&globals=g:2', expect.objectContaining({ replace: true }) ); - fullAPI.emit(SET_CURRENT_STORY); + channel.emit(SET_CURRENT_STORY); expect(navigate).toHaveBeenCalledWith( '/story/test--story&args=a:1&full=1&globals=g:2', expect.objectContaining({ replace: true }) From c9a5435c16da66c277d2b12234c01c5fb0497b90 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Aug 2023 17:08:46 +0200 Subject: [PATCH 04/58] re-grouping code --- code/lib/manager-api/src/index.tsx | 27 +------------------ code/lib/manager-api/src/lib/types.tsx | 22 +++++++++++++++ code/lib/manager-api/src/modules/addons.ts | 2 +- code/lib/manager-api/src/modules/channel.ts | 3 ++- code/lib/manager-api/src/modules/globals.ts | 4 ++- code/lib/manager-api/src/modules/layout.ts | 3 ++- .../manager-api/src/modules/notifications.ts | 2 +- code/lib/manager-api/src/modules/provider.ts | 4 +-- code/lib/manager-api/src/modules/refs.ts | 4 +-- code/lib/manager-api/src/modules/settings.ts | 4 +-- code/lib/manager-api/src/modules/shortcuts.ts | 2 +- code/lib/manager-api/src/modules/stories.ts | 5 ++-- code/lib/manager-api/src/modules/url.ts | 5 ++-- code/lib/manager-api/src/modules/versions.ts | 2 +- code/lib/manager-api/src/modules/whatsnew.ts | 2 +- 15 files changed, 47 insertions(+), 44 deletions(-) create mode 100644 code/lib/manager-api/src/lib/types.tsx diff --git a/code/lib/manager-api/src/index.tsx b/code/lib/manager-api/src/index.tsx index 52c2f3000986..5ef4e1f138ee 100644 --- a/code/lib/manager-api/src/index.tsx +++ b/code/lib/manager-api/src/index.tsx @@ -65,6 +65,7 @@ import * as version from './modules/versions'; import * as whatsnew from './modules/whatsnew'; import * as globals from './modules/globals'; +import type { ModuleWithInit, ModuleWithoutInit, ModuleArgs } from './lib/types'; export * from './lib/shortcut'; @@ -76,14 +77,6 @@ export { ActiveTabs }; export const ManagerContext = createContext({ api: undefined, state: getInitialState({}) }); -export type ModuleArgs = RouterData & - API_ProviderData & { - mode?: 'production' | 'development'; - state: State; - fullAPI: API; - store: Store; - }; - export type State = layout.SubState & stories.SubState & refs.SubState & @@ -152,24 +145,6 @@ export const combineParameters = (...parameterSets: Parameters[]) => return undefined; }); -interface ModuleWithInit { - init: () => void | Promise; - api: APIType; - state: StateType; -} - -type ModuleWithoutInit = Omit< - ModuleWithInit, - 'init' ->; - -export type ModuleFn = ( - m: ModuleArgs, - options?: any -) => HasInit extends true - ? ModuleWithInit - : ModuleWithoutInit; - class ManagerProvider extends Component { api: API = {} as API; diff --git a/code/lib/manager-api/src/lib/types.tsx b/code/lib/manager-api/src/lib/types.tsx new file mode 100644 index 000000000000..a195f514999e --- /dev/null +++ b/code/lib/manager-api/src/lib/types.tsx @@ -0,0 +1,22 @@ +import type { API_ProviderData } from '@storybook/types'; +import type { RouterData } from '@storybook/router'; + +import type { API, State } from '../index'; +import type Store from '../store'; + +export type ModuleFn = ( + m: ModuleArgs, + options?: any +) => { + init?: () => void | Promise; + api: APIType; + state: StateType; +}; + +export type ModuleArgs = RouterData & + API_ProviderData & { + mode?: 'production' | 'development'; + state: State; + fullAPI: API; + store: Store; + }; diff --git a/code/lib/manager-api/src/modules/addons.ts b/code/lib/manager-api/src/modules/addons.ts index 87027262d631..84fd51d7f206 100644 --- a/code/lib/manager-api/src/modules/addons.ts +++ b/code/lib/manager-api/src/modules/addons.ts @@ -7,7 +7,7 @@ import type { API_StateMerger, } from '@storybook/types'; import { Addon_TypesEnum } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; import type { Options } from '../store'; export interface SubState { diff --git a/code/lib/manager-api/src/modules/channel.ts b/code/lib/manager-api/src/modules/channel.ts index e6c178ae32b4..c83c342c5253 100644 --- a/code/lib/manager-api/src/modules/channel.ts +++ b/code/lib/manager-api/src/modules/channel.ts @@ -3,7 +3,8 @@ import { STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL } from '@storybook/core-events import type { Listener } from '@storybook/channels'; import type { API_Provider } from '@storybook/types'; -import type { API, ModuleFn } from '../index'; +import type { API } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { /** diff --git a/code/lib/manager-api/src/modules/globals.ts b/code/lib/manager-api/src/modules/globals.ts index 5c7e6a18a51f..3593cb7a3486 100644 --- a/code/lib/manager-api/src/modules/globals.ts +++ b/code/lib/manager-api/src/modules/globals.ts @@ -3,7 +3,7 @@ import { logger } from '@storybook/client-logger'; import { dequal as deepEqual } from 'dequal'; import type { SetGlobalsPayload, Globals, GlobalTypes } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; // eslint-disable-next-line import/no-cycle import { getEventMetadata } from '../lib/events'; @@ -103,5 +103,7 @@ export const init: ModuleFn = ({ store, fullAPI, provider }) = return { api, state, + init: () => {}, + goo: 5, }; }; diff --git a/code/lib/manager-api/src/modules/layout.ts b/code/lib/manager-api/src/modules/layout.ts index 1426827cb878..f37e51e19942 100644 --- a/code/lib/manager-api/src/modules/layout.ts +++ b/code/lib/manager-api/src/modules/layout.ts @@ -7,7 +7,8 @@ import type { ThemeVars } from '@storybook/theming'; import type { API_Layout, API_PanelPositions, API_UI } from '@storybook/types'; import merge from '../lib/merge'; -import type { State, ModuleFn } from '../index'; +import type { State } from '../index'; +import type { ModuleFn } from '../lib/types'; const { document } = global; diff --git a/code/lib/manager-api/src/modules/notifications.ts b/code/lib/manager-api/src/modules/notifications.ts index 1f1059dc1939..83e95d3928ca 100644 --- a/code/lib/manager-api/src/modules/notifications.ts +++ b/code/lib/manager-api/src/modules/notifications.ts @@ -1,5 +1,5 @@ import type { API_Notification } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubState { notifications: API_Notification[]; diff --git a/code/lib/manager-api/src/modules/provider.ts b/code/lib/manager-api/src/modules/provider.ts index 272fc0d1839c..c150bf90bf8b 100644 --- a/code/lib/manager-api/src/modules/provider.ts +++ b/code/lib/manager-api/src/modules/provider.ts @@ -1,11 +1,11 @@ import type { API_IframeRenderer } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { renderPreview?: API_IframeRenderer; } -export const init: ModuleFn = ({ provider, fullAPI }) => { +export const init: ModuleFn = ({ provider, fullAPI }) => { return { api: provider.renderPreview ? { renderPreview: provider.renderPreview } : {}, state: {}, diff --git a/code/lib/manager-api/src/modules/refs.ts b/code/lib/manager-api/src/modules/refs.ts index 5fe2462dfbb3..3ca68f09be89 100644 --- a/code/lib/manager-api/src/modules/refs.ts +++ b/code/lib/manager-api/src/modules/refs.ts @@ -15,7 +15,7 @@ import { transformStoryIndexToStoriesHash, } from '../lib/stories'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; const { location, fetch } = global; @@ -154,7 +154,7 @@ const map = ( return input; }; -export const init: ModuleFn = ( +export const init: ModuleFn = ( { store, provider, singleStory, docsOptions = {} }, { runCheck = true } = {} ) => { diff --git a/code/lib/manager-api/src/modules/settings.ts b/code/lib/manager-api/src/modules/settings.ts index 2439a5954bcc..2ac96d878446 100644 --- a/code/lib/manager-api/src/modules/settings.ts +++ b/code/lib/manager-api/src/modules/settings.ts @@ -1,5 +1,5 @@ import type { API_Settings, StoryId } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { storeSelection: () => void; @@ -78,5 +78,5 @@ export const init: ModuleFn = ({ store, navigate, fullAPI }) = }, }; - return { state: { settings: { lastTrackedStoryId: null } }, api }; + return { state: { settings: { lastTrackedStoryId: null } }, api, init: () => {} }; }; diff --git a/code/lib/manager-api/src/modules/shortcuts.ts b/code/lib/manager-api/src/modules/shortcuts.ts index fd1905235068..0d1b1cba95f9 100644 --- a/code/lib/manager-api/src/modules/shortcuts.ts +++ b/code/lib/manager-api/src/modules/shortcuts.ts @@ -2,7 +2,7 @@ import { global } from '@storybook/global'; import { FORCE_REMOUNT, PREVIEW_KEYDOWN } from '@storybook/core-events'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; import type { KeyboardEventLike } from '../lib/shortcut'; import { shortcutMatchesShortcut, eventToShortcut } from '../lib/shortcut'; diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index f6d462224f6e..b295af6730db 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -55,7 +55,8 @@ import { addPreparedStories, } from '../lib/stories'; -import type { ComposedRef, ModuleFn } from '../index'; +import type { ComposedRef } from '../index'; +import type { ModuleFn } from '../lib/types'; const { FEATURES, fetch } = global; const STORY_INDEX_PATH = './index.json'; @@ -289,7 +290,7 @@ function removeRemovedOptions = Record = ({ +export const init: ModuleFn = ({ fullAPI, store, navigate, diff --git a/code/lib/manager-api/src/modules/url.ts b/code/lib/manager-api/src/modules/url.ts index 28cc53234cbd..bf9e69337a7e 100644 --- a/code/lib/manager-api/src/modules/url.ts +++ b/code/lib/manager-api/src/modules/url.ts @@ -11,7 +11,8 @@ import { dequal as deepEqual } from 'dequal'; import { global } from '@storybook/global'; import type { API_Layout, API_UI } from '@storybook/types'; -import type { ModuleArgs, ModuleFn } from '../index'; +import type { ModuleArgs } from '../index'; +import type { ModuleFn } from '../lib/types'; const { window: globalWindow } = global; @@ -116,7 +117,7 @@ export interface SubAPI { setQueryParams: (input: QueryParams) => void; } -export const init: ModuleFn = ({ +export const init: ModuleFn = ({ store, navigate, state, diff --git a/code/lib/manager-api/src/modules/versions.ts b/code/lib/manager-api/src/modules/versions.ts index 49ff24be9b1f..2d90a14fcd69 100644 --- a/code/lib/manager-api/src/modules/versions.ts +++ b/code/lib/manager-api/src/modules/versions.ts @@ -5,7 +5,7 @@ import memoize from 'memoizerific'; import type { API_UnknownEntries, API_Version, API_Versions } from '@storybook/types'; import { version as currentVersion } from '../version'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; const { VERSIONCHECK } = global; diff --git a/code/lib/manager-api/src/modules/whatsnew.ts b/code/lib/manager-api/src/modules/whatsnew.ts index 5890eaae6fc7..9bfe625edd14 100644 --- a/code/lib/manager-api/src/modules/whatsnew.ts +++ b/code/lib/manager-api/src/modules/whatsnew.ts @@ -6,7 +6,7 @@ import { SET_WHATS_NEW_CACHE, TOGGLE_WHATS_NEW_NOTIFICATIONS, } from '@storybook/core-events'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export type SubState = { whatsNewData?: WhatsNewData; From e5d67309a0663e3aeabdbf1171503340205499ab Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Aug 2023 17:25:04 +0200 Subject: [PATCH 05/58] cleanup --- code/lib/manager-api/src/index.tsx | 4 ++-- code/lib/manager-api/src/modules/url.ts | 20 ++++++++----------- .../lib/manager-api/src/tests/globals.test.ts | 3 ++- .../lib/manager-api/src/tests/stories.test.ts | 11 +++++----- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/code/lib/manager-api/src/index.tsx b/code/lib/manager-api/src/index.tsx index 5ef4e1f138ee..688b4a2d6837 100644 --- a/code/lib/manager-api/src/index.tsx +++ b/code/lib/manager-api/src/index.tsx @@ -65,7 +65,7 @@ import * as version from './modules/versions'; import * as whatsnew from './modules/whatsnew'; import * as globals from './modules/globals'; -import type { ModuleWithInit, ModuleWithoutInit, ModuleArgs } from './lib/types'; +import type { ModuleFn } from './lib/types'; export * from './lib/shortcut'; @@ -148,7 +148,7 @@ export const combineParameters = (...parameterSets: Parameters[]) => class ManagerProvider extends Component { api: API = {} as API; - modules: (ModuleWithInit | ModuleWithoutInit)[]; + modules: ReturnType[]; static displayName = 'Manager'; diff --git a/code/lib/manager-api/src/modules/url.ts b/code/lib/manager-api/src/modules/url.ts index bf9e69337a7e..c6cfc5abbd80 100644 --- a/code/lib/manager-api/src/modules/url.ts +++ b/code/lib/manager-api/src/modules/url.ts @@ -11,8 +11,7 @@ import { dequal as deepEqual } from 'dequal'; import { global } from '@storybook/global'; import type { API_Layout, API_UI } from '@storybook/types'; -import type { ModuleArgs } from '../index'; -import type { ModuleFn } from '../lib/types'; +import type { ModuleArgs, ModuleFn } from '../lib/types'; const { window: globalWindow } = global; @@ -117,14 +116,9 @@ export interface SubAPI { setQueryParams: (input: QueryParams) => void; } -export const init: ModuleFn = ({ - store, - navigate, - state, - provider, - fullAPI, - ...rest -}) => { +export const init: ModuleFn = (moduleArgs) => { + const { store, navigate, provider, fullAPI } = moduleArgs; + const navigateTo = ( path: string, queryParams: Record = {}, @@ -169,7 +163,9 @@ export const init: ModuleFn = ({ }, }; - // Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. + /** + * Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. + */ const updateArgsParam = () => { const { path, queryParams, viewMode } = api.getUrlState(); if (viewMode !== 'story') return; @@ -209,6 +205,6 @@ export const init: ModuleFn = ({ return { api, - state: initialUrlSupport({ store, navigate, state, provider, fullAPI, ...rest }), + state: initialUrlSupport(moduleArgs), }; }; diff --git a/code/lib/manager-api/src/tests/globals.test.ts b/code/lib/manager-api/src/tests/globals.test.ts index 2c942ca29c8b..1f51a113935a 100644 --- a/code/lib/manager-api/src/tests/globals.test.ts +++ b/code/lib/manager-api/src/tests/globals.test.ts @@ -1,9 +1,10 @@ import { EventEmitter } from 'events'; import { SET_STORIES, SET_GLOBALS, UPDATE_GLOBALS, GLOBALS_UPDATED } from '@storybook/core-events'; -import type { ModuleArgs, API } from '../index'; +import type { API } from '../index'; import type { SubAPI } from '../modules/globals'; import { init as initModule } from '../modules/globals'; +import type { ModuleArgs } from '../lib/types'; const { logger } = require('@storybook/client-logger'); const { getEventMetadata } = require('../lib/events'); diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index 37522170a6e7..c77c01db2167 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -21,8 +21,9 @@ import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; import { init as initStories } from '../modules/stories'; import type Store from '../store'; -import type { API, ModuleArgs, State } from '..'; +import type { API, State } from '..'; import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; +import type { ModuleArgs } from '../lib/types'; const mockGetEntries = jest.fn(); const fetch = global.fetch as jest.Mock>; @@ -625,8 +626,8 @@ describe('stories API', () => { it('changes reffed args properly, per story when receiving STORY_ARGS_UPDATED', () => { const fullAPI = { updateRef: jest.fn() }; const moduleArgs = createMockModuleArgs({ fullAPI }); - const { api } = initStories(moduleArgs as unknown as ModuleArgs); - const { provider, store } = moduleArgs; + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; getEventMetadata.mockReturnValueOnce({ sourceType: 'external', @@ -669,7 +670,7 @@ describe('stories API', () => { const fullAPI = { updateRef: jest.fn() }; const moduleArgs = createMockModuleArgs({ fullAPI }); const { api } = initStories(moduleArgs as unknown as ModuleArgs); - const { provider, store } = moduleArgs; + const { provider } = moduleArgs; const listener = jest.fn(); provider.channel.on(UPDATE_STORY_ARGS, listener); @@ -711,7 +712,7 @@ describe('stories API', () => { const fullAPI = { updateRef: jest.fn() }; const moduleArgs = createMockModuleArgs({ fullAPI }); const { api } = initStories(moduleArgs as unknown as ModuleArgs); - const { provider, store } = moduleArgs; + const { provider } = moduleArgs; const listener = jest.fn(); provider.channel.on(RESET_STORY_ARGS, listener); From 664d60cf147e207ac2e10df9a3461a3606f9940a Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Aug 2023 17:46:07 +0200 Subject: [PATCH 06/58] cleanup --- code/lib/manager-api/src/modules/globals.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/lib/manager-api/src/modules/globals.ts b/code/lib/manager-api/src/modules/globals.ts index 3593cb7a3486..393deb58c4a2 100644 --- a/code/lib/manager-api/src/modules/globals.ts +++ b/code/lib/manager-api/src/modules/globals.ts @@ -103,7 +103,5 @@ export const init: ModuleFn = ({ store, fullAPI, provider }) = return { api, state, - init: () => {}, - goo: 5, }; }; From 5ebb31e8241d172736403e0d1da44cec6f74ae27 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 10 Aug 2023 13:14:03 +0200 Subject: [PATCH 07/58] add tests --- .../lib/manager-api/src/tests/stories.test.ts | 131 +++++++++++++++++- code/ui/manager/src/containers/sidebar.tsx | 11 +- 2 files changed, 136 insertions(+), 6 deletions(-) diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index c77c01db2167..b9f7687f4526 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -16,7 +16,7 @@ import { import { EventEmitter } from 'events'; import { global } from '@storybook/global'; -import type { API_StoryEntry } from '@storybook/types'; +import type { API_IndexHash, API_StoryEntry } from '@storybook/types'; import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; import { init as initStories } from '../modules/stories'; @@ -25,6 +25,8 @@ import type { API, State } from '..'; import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; import type { ModuleArgs } from '../lib/types'; +import { getAncestorIds } from '../../../../ui/manager/src/utils/tree'; + const mockGetEntries = jest.fn(); const fetch = global.fetch as jest.Mock>; const getEventMetadata = getEventMetadataOriginal as unknown as jest.Mock< @@ -1270,4 +1272,131 @@ describe('experimental_updateStatus', () => { } `); }); + describe('experimental_setFilter', () => { + it('is included in the initial state', () => { + const moduleArgs = createMockModuleArgs({}); + const { state } = initStories(moduleArgs as unknown as ModuleArgs); + + expect(state).toEqual( + expect.objectContaining({ + filters: {}, + }) + ); + }); + it('updates state', () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + api.experimental_setFilter('myCustomFilter', () => true); + + expect(store.getState()).toEqual( + expect.objectContaining({ + filters: { + myCustomFilter: expect.any(Function), + }, + }) + ); + }); + + it('can filter', () => { + const moduleArgs = createMockModuleArgs({}); + const { + api, + state: { status }, + } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + /** + * This function is a copy of the one in the containers/sidebar.ts file inside of ui/manager + * I'm hoping we can eventually merge this 2 packages so there's no odd looking import and no re-implementation. + */ + const applyFilters = (originalIndex: API_IndexHash) => { + if (!originalIndex) { + return originalIndex; + } + + const filtered = new Set(); + Object.values(originalIndex).forEach((item) => { + if (item.type === 'story' || item.type === 'docs') { + let result = true; + + Object.values(filters).forEach((filter) => { + if (result === true) { + result = filter({ ...item, status: status[item.id] }); + } + }); + + if (result) { + filtered.add(item.id); + getAncestorIds(originalIndex, item.id).forEach((id) => { + filtered.add(id); + }); + } + } + }); + + return Object.fromEntries( + Object.entries(originalIndex).filter(([key]) => filtered.has(key)) + ); + }; + + api.experimental_setFilter('myCustomFilter', (item) => item.id.startsWith('a')); + api.setIndex({ v: 4, entries: navigationEntries }); + + const { index, filters } = store.getState(); + + const filtered = applyFilters(index); + + expect(filtered).toMatchInlineSnapshot(` + Object { + "a": Object { + "children": Array [ + "a--1", + "a--2", + ], + "depth": 0, + "id": "a", + "isComponent": true, + "isLeaf": false, + "isRoot": false, + "name": "a", + "parent": undefined, + "renderLabel": undefined, + "type": "component", + }, + "a--1": Object { + "depth": 1, + "id": "a--1", + "importPath": "./a.ts", + "isComponent": false, + "isLeaf": true, + "isRoot": false, + "kind": "a", + "name": "1", + "parent": "a", + "prepared": false, + "renderLabel": undefined, + "title": "a", + "type": "story", + }, + "a--2": Object { + "depth": 1, + "id": "a--2", + "importPath": "./a.ts", + "isComponent": false, + "isLeaf": true, + "isRoot": false, + "kind": "a", + "name": "2", + "parent": "a", + "prepared": false, + "renderLabel": undefined, + "title": "a", + "type": "story", + }, + } + `); + }); + }); }); diff --git a/code/ui/manager/src/containers/sidebar.tsx b/code/ui/manager/src/containers/sidebar.tsx index 7a69446a6e8a..a97f929bf246 100755 --- a/code/ui/manager/src/containers/sidebar.tsx +++ b/code/ui/manager/src/containers/sidebar.tsx @@ -39,9 +39,12 @@ const Sidebar = React.memo(function Sideber() { state.whatsNewData?.status === 'SUCCESS' && !state.disableWhatsNewNotifications; const index = useMemo(() => { - const filtered = new Set(); + if (!originalIndex) { + return originalIndex; + } - Object.values(originalIndex || {}).forEach((item) => { + const filtered = new Set(); + Object.values(originalIndex).forEach((item) => { if (item.type === 'story' || item.type === 'docs') { let result = true; @@ -60,9 +63,7 @@ const Sidebar = React.memo(function Sideber() { } }); - return Object.fromEntries( - Object.entries(originalIndex || {}).filter(([key]) => filtered.has(key)) - ); + return Object.fromEntries(Object.entries(originalIndex).filter(([key]) => filtered.has(key))); }, [originalIndex, filters, status]); return { From dca1fb1ccb2ee5e8a1fed1daae613bdad56d85a4 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 11 Aug 2023 10:29:28 +0200 Subject: [PATCH 08/58] fix race-condition causing setConfig data to be missed by the manager-api --- code/lib/manager-api/src/index.tsx | 29 +- code/lib/manager-api/src/lib/types.tsx | 22 + code/lib/manager-api/src/modules/addons.ts | 2 +- code/lib/manager-api/src/modules/channel.ts | 3 +- code/lib/manager-api/src/modules/globals.ts | 25 +- code/lib/manager-api/src/modules/layout.ts | 5 +- .../manager-api/src/modules/notifications.ts | 2 +- code/lib/manager-api/src/modules/provider.ts | 4 +- code/lib/manager-api/src/modules/refs.ts | 4 +- code/lib/manager-api/src/modules/settings.ts | 7 +- code/lib/manager-api/src/modules/shortcuts.ts | 10 +- code/lib/manager-api/src/modules/stories.ts | 316 ++-- code/lib/manager-api/src/modules/url.ts | 87 +- code/lib/manager-api/src/modules/versions.ts | 2 +- code/lib/manager-api/src/modules/whatsnew.ts | 22 +- .../lib/manager-api/src/tests/globals.test.ts | 82 +- .../src/tests/mockStoriesEntries.ts | 129 ++ .../lib/manager-api/src/tests/stories.test.ts | 1507 ++++++----------- code/lib/manager-api/src/tests/url.test.js | 83 +- code/lib/types/src/modules/addons.ts | 2 + code/lib/types/src/modules/api-stories.ts | 2 +- 21 files changed, 999 insertions(+), 1346 deletions(-) create mode 100644 code/lib/manager-api/src/lib/types.tsx create mode 100644 code/lib/manager-api/src/tests/mockStoriesEntries.ts diff --git a/code/lib/manager-api/src/index.tsx b/code/lib/manager-api/src/index.tsx index 52c2f3000986..688b4a2d6837 100644 --- a/code/lib/manager-api/src/index.tsx +++ b/code/lib/manager-api/src/index.tsx @@ -65,6 +65,7 @@ import * as version from './modules/versions'; import * as whatsnew from './modules/whatsnew'; import * as globals from './modules/globals'; +import type { ModuleFn } from './lib/types'; export * from './lib/shortcut'; @@ -76,14 +77,6 @@ export { ActiveTabs }; export const ManagerContext = createContext({ api: undefined, state: getInitialState({}) }); -export type ModuleArgs = RouterData & - API_ProviderData & { - mode?: 'production' | 'development'; - state: State; - fullAPI: API; - store: Store; - }; - export type State = layout.SubState & stories.SubState & refs.SubState & @@ -152,28 +145,10 @@ export const combineParameters = (...parameterSets: Parameters[]) => return undefined; }); -interface ModuleWithInit { - init: () => void | Promise; - api: APIType; - state: StateType; -} - -type ModuleWithoutInit = Omit< - ModuleWithInit, - 'init' ->; - -export type ModuleFn = ( - m: ModuleArgs, - options?: any -) => HasInit extends true - ? ModuleWithInit - : ModuleWithoutInit; - class ManagerProvider extends Component { api: API = {} as API; - modules: (ModuleWithInit | ModuleWithoutInit)[]; + modules: ReturnType[]; static displayName = 'Manager'; diff --git a/code/lib/manager-api/src/lib/types.tsx b/code/lib/manager-api/src/lib/types.tsx new file mode 100644 index 000000000000..a195f514999e --- /dev/null +++ b/code/lib/manager-api/src/lib/types.tsx @@ -0,0 +1,22 @@ +import type { API_ProviderData } from '@storybook/types'; +import type { RouterData } from '@storybook/router'; + +import type { API, State } from '../index'; +import type Store from '../store'; + +export type ModuleFn = ( + m: ModuleArgs, + options?: any +) => { + init?: () => void | Promise; + api: APIType; + state: StateType; +}; + +export type ModuleArgs = RouterData & + API_ProviderData & { + mode?: 'production' | 'development'; + state: State; + fullAPI: API; + store: Store; + }; diff --git a/code/lib/manager-api/src/modules/addons.ts b/code/lib/manager-api/src/modules/addons.ts index 87027262d631..84fd51d7f206 100644 --- a/code/lib/manager-api/src/modules/addons.ts +++ b/code/lib/manager-api/src/modules/addons.ts @@ -7,7 +7,7 @@ import type { API_StateMerger, } from '@storybook/types'; import { Addon_TypesEnum } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; import type { Options } from '../store'; export interface SubState { diff --git a/code/lib/manager-api/src/modules/channel.ts b/code/lib/manager-api/src/modules/channel.ts index e6c178ae32b4..c83c342c5253 100644 --- a/code/lib/manager-api/src/modules/channel.ts +++ b/code/lib/manager-api/src/modules/channel.ts @@ -3,7 +3,8 @@ import { STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL } from '@storybook/core-events import type { Listener } from '@storybook/channels'; import type { API_Provider } from '@storybook/types'; -import type { API, ModuleFn } from '../index'; +import type { API } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { /** diff --git a/code/lib/manager-api/src/modules/globals.ts b/code/lib/manager-api/src/modules/globals.ts index 9b8d47069564..393deb58c4a2 100644 --- a/code/lib/manager-api/src/modules/globals.ts +++ b/code/lib/manager-api/src/modules/globals.ts @@ -3,7 +3,7 @@ import { logger } from '@storybook/client-logger'; import { dequal as deepEqual } from 'dequal'; import type { SetGlobalsPayload, Globals, GlobalTypes } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; // eslint-disable-next-line import/no-cycle import { getEventMetadata } from '../lib/events'; @@ -32,7 +32,7 @@ export interface SubAPI { updateGlobals: (newGlobals: Globals) => void; } -export const init: ModuleFn = ({ store, fullAPI }) => { +export const init: ModuleFn = ({ store, fullAPI, provider }) => { const api: SubAPI = { getGlobals() { return store.getState().globals; @@ -42,7 +42,7 @@ export const init: ModuleFn = ({ store, fullAPI }) => { }, updateGlobals(newGlobals) { // Only emit the message to the local ref - fullAPI.emit(UPDATE_GLOBALS, { + provider.channel.emit(UPDATE_GLOBALS, { globals: newGlobals, options: { target: 'storybook-preview-iframe', @@ -62,8 +62,9 @@ export const init: ModuleFn = ({ store, fullAPI }) => { } }; - const initModule = () => { - fullAPI.on(GLOBALS_UPDATED, function handleGlobalsUpdated({ globals }: { globals: Globals }) { + provider.channel.on( + GLOBALS_UPDATED, + function handleGlobalsUpdated({ globals }: { globals: Globals }) { const { ref } = getEventMetadata(this, fullAPI); if (!ref) { @@ -73,10 +74,13 @@ export const init: ModuleFn = ({ store, fullAPI }) => { 'received a GLOBALS_UPDATED from a non-local ref. This is not currently supported.' ); } - }); + } + ); - // Emitted by the preview on initialization - fullAPI.on(SET_GLOBALS, function handleSetStories({ globals, globalTypes }: SetGlobalsPayload) { + // Emitted by the preview on initialization + provider.channel.on( + SET_GLOBALS, + function handleSetStories({ globals, globalTypes }: SetGlobalsPayload) { const { ref } = getEventMetadata(this, fullAPI); const currentGlobals = store.getState()?.globals; @@ -93,12 +97,11 @@ export const init: ModuleFn = ({ store, fullAPI }) => { ) { api.updateGlobals(currentGlobals); } - }); - }; + } + ); return { api, state, - init: initModule, }; }; diff --git a/code/lib/manager-api/src/modules/layout.ts b/code/lib/manager-api/src/modules/layout.ts index bbe43af9863d..f37e51e19942 100644 --- a/code/lib/manager-api/src/modules/layout.ts +++ b/code/lib/manager-api/src/modules/layout.ts @@ -7,7 +7,8 @@ import type { ThemeVars } from '@storybook/theming'; import type { API_Layout, API_PanelPositions, API_UI } from '@storybook/types'; import merge from '../lib/merge'; -import type { State, ModuleFn } from '../index'; +import type { State } from '../index'; +import type { ModuleFn } from '../lib/types'; const { document } = global; @@ -284,7 +285,7 @@ export const init: ModuleFn = ({ store, provider, singleStory, fullAPI }) => { state: merge(api.getInitialOptions(), persisted), init: () => { api.setOptions(merge(api.getInitialOptions(), persisted)); - fullAPI.on(SET_CONFIG, () => { + provider.channel.on(SET_CONFIG, () => { api.setOptions(merge(api.getInitialOptions(), persisted)); }); }, diff --git a/code/lib/manager-api/src/modules/notifications.ts b/code/lib/manager-api/src/modules/notifications.ts index 1f1059dc1939..83e95d3928ca 100644 --- a/code/lib/manager-api/src/modules/notifications.ts +++ b/code/lib/manager-api/src/modules/notifications.ts @@ -1,5 +1,5 @@ import type { API_Notification } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubState { notifications: API_Notification[]; diff --git a/code/lib/manager-api/src/modules/provider.ts b/code/lib/manager-api/src/modules/provider.ts index 272fc0d1839c..c150bf90bf8b 100644 --- a/code/lib/manager-api/src/modules/provider.ts +++ b/code/lib/manager-api/src/modules/provider.ts @@ -1,11 +1,11 @@ import type { API_IframeRenderer } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { renderPreview?: API_IframeRenderer; } -export const init: ModuleFn = ({ provider, fullAPI }) => { +export const init: ModuleFn = ({ provider, fullAPI }) => { return { api: provider.renderPreview ? { renderPreview: provider.renderPreview } : {}, state: {}, diff --git a/code/lib/manager-api/src/modules/refs.ts b/code/lib/manager-api/src/modules/refs.ts index 5fe2462dfbb3..3ca68f09be89 100644 --- a/code/lib/manager-api/src/modules/refs.ts +++ b/code/lib/manager-api/src/modules/refs.ts @@ -15,7 +15,7 @@ import { transformStoryIndexToStoriesHash, } from '../lib/stories'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; const { location, fetch } = global; @@ -154,7 +154,7 @@ const map = ( return input; }; -export const init: ModuleFn = ( +export const init: ModuleFn = ( { store, provider, singleStory, docsOptions = {} }, { runCheck = true } = {} ) => { diff --git a/code/lib/manager-api/src/modules/settings.ts b/code/lib/manager-api/src/modules/settings.ts index 2439a5954bcc..4c850f9aca1a 100644 --- a/code/lib/manager-api/src/modules/settings.ts +++ b/code/lib/manager-api/src/modules/settings.ts @@ -1,5 +1,5 @@ import type { API_Settings, StoryId } from '@storybook/types'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export interface SubAPI { storeSelection: () => void; @@ -78,5 +78,8 @@ export const init: ModuleFn = ({ store, navigate, fullAPI }) = }, }; - return { state: { settings: { lastTrackedStoryId: null } }, api }; + return { + state: { settings: { lastTrackedStoryId: null } }, + api, + }; }; diff --git a/code/lib/manager-api/src/modules/shortcuts.ts b/code/lib/manager-api/src/modules/shortcuts.ts index 8dcf942f4bc7..be5592e98118 100644 --- a/code/lib/manager-api/src/modules/shortcuts.ts +++ b/code/lib/manager-api/src/modules/shortcuts.ts @@ -2,7 +2,7 @@ import { global } from '@storybook/global'; import { FORCE_REMOUNT, PREVIEW_KEYDOWN } from '@storybook/core-events'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; import type { KeyboardEventLike } from '../lib/shortcut'; import { shortcutMatchesShortcut, eventToShortcut } from '../lib/shortcut'; @@ -152,7 +152,7 @@ function focusInInput(event: KeyboardEvent) { return /input|textarea/i.test(target.tagName) || target.getAttribute('contenteditable') !== null; } -export const init: ModuleFn = ({ store, fullAPI }) => { +export const init: ModuleFn = ({ store, fullAPI, provider }) => { const api: SubAPI = { // Getting and setting shortcuts getShortcutKeys(): API_Shortcuts { @@ -397,13 +397,13 @@ export const init: ModuleFn = ({ store, fullAPI }) => { // Listen for keydown events in the manager document.addEventListener('keydown', (event: KeyboardEvent) => { if (!focusInInput(event)) { - fullAPI.handleKeydownEvent(event); + api.handleKeydownEvent(event); } }); // Also listen to keydown events sent over the channel - fullAPI.on(PREVIEW_KEYDOWN, (data: { event: KeyboardEventLike }) => { - fullAPI.handleKeydownEvent(data.event); + provider.channel.on(PREVIEW_KEYDOWN, (data: { event: KeyboardEventLike }) => { + api.handleKeydownEvent(data.event); }); }; diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index 78b8b086e106..db003e0cba6b 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -21,6 +21,7 @@ import type { API_ViewMode, API_StatusState, API_StatusUpdate, + API_FilterFunction, } from '@storybook/types'; import { PRELOAD_ENTRIES, @@ -39,6 +40,7 @@ import { STORY_MISSING, DOCS_PREPARED, SET_CURRENT_STORY, + SET_CONFIG, } from '@storybook/core-events'; import { logger } from '@storybook/client-logger'; @@ -53,7 +55,8 @@ import { addPreparedStories, } from '../lib/stories'; -import type { ComposedRef, ModuleFn } from '../index'; +import type { ComposedRef } from '../index'; +import type { ModuleFn } from '../lib/types'; const { FEATURES, fetch } = global; const STORY_INDEX_PATH = './index.json'; @@ -278,7 +281,7 @@ function removeRemovedOptions = Record = ({ +export const init: ModuleFn = ({ fullAPI, store, navigate, @@ -468,7 +471,7 @@ export const init: ModuleFn = ({ }, updateStoryArgs: (story, updatedArgs) => { const { id: storyId, refId } = story; - fullAPI.emit(UPDATE_STORY_ARGS, { + provider.channel.emit(UPDATE_STORY_ARGS, { storyId, updatedArgs, options: { target: refId }, @@ -476,7 +479,7 @@ export const init: ModuleFn = ({ }, resetStoryArgs: (story, argNames?: [string]) => { const { id: storyId, refId } = story; - fullAPI.emit(RESET_STORY_ARGS, { + provider.channel.emit(RESET_STORY_ARGS, { storyId, argNames, options: { target: refId }, @@ -495,7 +498,7 @@ export const init: ModuleFn = ({ return; } - await fullAPI.setIndex(storyIndex); + await api.setIndex(storyIndex); } catch (err) { await store.setState({ indexError: err }); } @@ -503,7 +506,7 @@ export const init: ModuleFn = ({ // The story index we receive on SET_INDEX is "prepared" in that it has parameters // The story index we receive on fetchStoryIndex is not, but all the prepared fields are optional // so we can cast one to the other easily enough - setIndex: async (storyIndex: API_PreparedStoryIndex) => { + setIndex: async (storyIndex) => { const newHash = transformStoryIndexToStoriesHash(storyIndex, { provider, docsOptions, @@ -556,7 +559,7 @@ export const init: ModuleFn = ({ await fullAPI.updateRef(refId, { index }); } }, - setPreviewInitialized: async (ref?: ComposedRef): Promise => { + setPreviewInitialized: async (ref) => { if (!ref) { store.setState({ previewInitialized: true }); } else { @@ -578,178 +581,174 @@ export const init: ModuleFn = ({ }, }; - const initModule = async () => { - // On initial load, the local iframe will select the first story (or other "selection specifier") - // and emit STORY_SPECIFIED with the id. We need to ensure we respond to this change. - fullAPI.on( - STORY_SPECIFIED, - function handler({ - storyId, - viewMode, - }: { - storyId: string; - viewMode: API_ViewMode; - [k: string]: any; - }) { - const { sourceType } = getEventMetadata(this, fullAPI); - - if (sourceType === 'local') { - const state = store.getState(); - const isCanvasRoute = - state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; - const stateHasSelection = state.viewMode && state.storyId; - const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; - /** - * When storybook starts, we want to navigate to the first story. - * But there are a few exceptions: - * - If the current storyId and viewMode are already set/correct. - * - If the user has navigated away already. - * - If the user started storybook with a specific page-URL like "/settings/about" - */ - if (isCanvasRoute) { - if (stateHasSelection && stateSelectionDifferent) { - // The manager state is correct, the preview state is lagging behind - fullAPI.emit(SET_CURRENT_STORY, { storyId: state.storyId, viewMode: state.viewMode }); - } else if (stateSelectionDifferent) { - // The preview state is correct, the manager state is lagging behind - navigate(`/${viewMode}/${storyId}`); - } + // On initial load, the local iframe will select the first story (or other "selection specifier") + // and emit STORY_SPECIFIED with the id. We need to ensure we respond to this change. + provider.channel.on( + STORY_SPECIFIED, + function handler({ + storyId, + viewMode, + }: { + storyId: string; + viewMode: API_ViewMode; + [k: string]: any; + }) { + const { sourceType } = getEventMetadata(this, fullAPI); + + if (sourceType === 'local') { + const state = store.getState(); + const isCanvasRoute = + state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; + const stateHasSelection = state.viewMode && state.storyId; + const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; + /** + * When storybook starts, we want to navigate to the first story. + * But there are a few exceptions: + * - If the current storyId and viewMode are already set/correct. + * - If the user has navigated away already. + * - If the user started storybook with a specific page-URL like "/settings/about" + */ + if (isCanvasRoute) { + if (stateHasSelection && stateSelectionDifferent) { + // The manager state is correct, the preview state is lagging behind + provider.channel.emit(SET_CURRENT_STORY, { + storyId: state.storyId, + viewMode: state.viewMode, + }); + } else if (stateSelectionDifferent) { + // The preview state is correct, the manager state is lagging behind + navigate(`/${viewMode}/${storyId}`); } } } - ); - - // The CURRENT_STORY_WAS_SET event is the best event to use to tell if a ref is ready. - // Until the ref has a selection, it will not render anything (e.g. while waiting for - // the preview.js file or the index to load). Once it has a selection, it will render its own - // preparing spinner. - fullAPI.on(CURRENT_STORY_WAS_SET, function handler() { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + } + ); + + // The CURRENT_STORY_WAS_SET event is the best event to use to tell if a ref is ready. + // Until the ref has a selection, it will not render anything (e.g. while waiting for + // the preview.js file or the index to load). Once it has a selection, it will render its own + // preparing spinner. + provider.channel.on(CURRENT_STORY_WAS_SET, function handler() { + const { ref } = getEventMetadata(this, fullAPI); + api.setPreviewInitialized(ref); + }); - fullAPI.on(STORY_CHANGED, function handler() { - const { sourceType } = getEventMetadata(this, fullAPI); + provider.channel.on(STORY_CHANGED, function handler() { + const { sourceType } = getEventMetadata(this, fullAPI); - if (sourceType === 'local') { - const options = fullAPI.getCurrentParameter('options'); + if (sourceType === 'local') { + const options = api.getCurrentParameter('options'); - if (options) { - fullAPI.setOptions(removeRemovedOptions(options)); - } + if (options) { + fullAPI.setOptions(removeRemovedOptions(options)); } - }); + } + }); - fullAPI.on(STORY_PREPARED, function handler({ id, ...update }: StoryPreparedPayload) { - const { ref, sourceType } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); + provider.channel.on(STORY_PREPARED, function handler({ id, ...update }: StoryPreparedPayload) { + const { ref, sourceType } = getEventMetadata(this, fullAPI); + api.updateStory(id, { ...update, prepared: true }, ref); - if (!ref) { - if (!store.getState().hasCalledSetOptions) { - const { options } = update.parameters; - fullAPI.setOptions(removeRemovedOptions(options)); - store.setState({ hasCalledSetOptions: true }); - } + if (!ref) { + if (!store.getState().hasCalledSetOptions) { + const { options } = update.parameters; + fullAPI.setOptions(removeRemovedOptions(options)); + store.setState({ hasCalledSetOptions: true }); } + } - if (sourceType === 'local') { - const { storyId, index, refId } = store.getState(); - - // create a list of related stories to be preloaded - const toBePreloaded = Array.from( - new Set([ - api.findSiblingStoryId(storyId, index, 1, true), - api.findSiblingStoryId(storyId, index, -1, true), - ]) - ).filter(Boolean); - - fullAPI.emit(PRELOAD_ENTRIES, { - ids: toBePreloaded, - options: { target: refId }, - }); - } - }); + if (sourceType === 'local') { + const { storyId, index, refId } = store.getState(); - fullAPI.on(DOCS_PREPARED, function handler({ id, ...update }: DocsPreparedPayload) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(id, { ...update, prepared: true }, ref); - }); + // create a list of related stories to be preloaded + const toBePreloaded = Array.from( + new Set([ + api.findSiblingStoryId(storyId, index, 1, true), + api.findSiblingStoryId(storyId, index, -1, true), + ]) + ).filter(Boolean); - fullAPI.on(SET_INDEX, function handler(index: API_PreparedStoryIndex) { - const { ref } = getEventMetadata(this, fullAPI); + provider.channel.emit(PRELOAD_ENTRIES, { + ids: toBePreloaded, + options: { target: refId }, + }); + } + }); - if (!ref) { - fullAPI.setIndex(index); - const options = fullAPI.getCurrentParameter('options'); - fullAPI.setOptions(removeRemovedOptions(options)); - } else { - fullAPI.setRef(ref.id, { ...ref, storyIndex: index }, true); - } - }); + provider.channel.on(DOCS_PREPARED, function handler({ id, ...update }: DocsPreparedPayload) { + const { ref } = getEventMetadata(this, fullAPI); + api.updateStory(id, { ...update, prepared: true }, ref); + }); + + provider.channel.on(SET_INDEX, function handler(index: API_PreparedStoryIndex) { + const { ref } = getEventMetadata(this, fullAPI); + + if (!ref) { + api.setIndex(index); + const options = api.getCurrentParameter('options'); + fullAPI.setOptions(removeRemovedOptions(options)); + } else { + fullAPI.setRef(ref.id, { ...ref, storyIndex: index }, true); + } + }); + + // For composition back-compatibilty + provider.channel.on(SET_STORIES, function handler(data: SetStoriesPayload) { + const { ref } = getEventMetadata(this, fullAPI); + const setStoriesData = data.v ? denormalizeStoryParameters(data) : data.stories; - // For composition back-compatibilty - fullAPI.on(SET_STORIES, function handler(data: SetStoriesPayload) { + if (!ref) { + throw new Error('Cannot call SET_STORIES for local frame'); + } else { + fullAPI.setRef(ref.id, { ...ref, setStoriesData }, true); + } + }); + + provider.channel.on( + SELECT_STORY, + function handler({ + kind, + title = kind, + story, + name = story, + storyId, + ...rest + }: { + kind?: StoryKind; + title?: ComponentTitle; + story?: StoryName; + name?: StoryName; + storyId: string; + viewMode: API_ViewMode; + }) { const { ref } = getEventMetadata(this, fullAPI); - const setStoriesData = data.v ? denormalizeStoryParameters(data) : data.stories; if (!ref) { - throw new Error('Cannot call SET_STORIES for local frame'); + fullAPI.selectStory(storyId || title, name, rest); } else { - fullAPI.setRef(ref.id, { ...ref, setStoriesData }, true); + fullAPI.selectStory(storyId || title, name, { ...rest, ref: ref.id }); } - }); - - fullAPI.on( - SELECT_STORY, - function handler({ - kind, - title = kind, - story, - name = story, - storyId, - ...rest - }: { - kind?: StoryKind; - title?: ComponentTitle; - story?: StoryName; - name?: StoryName; - storyId: string; - viewMode: API_ViewMode; - }) { - const { ref } = getEventMetadata(this, fullAPI); - - if (!ref) { - fullAPI.selectStory(storyId || title, name, rest); - } else { - fullAPI.selectStory(storyId || title, name, { ...rest, ref: ref.id }); - } - } - ); - - fullAPI.on( - STORY_ARGS_UPDATED, - function handleStoryArgsUpdated({ storyId, args }: { storyId: StoryId; args: Args }) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.updateStory(storyId, { args }, ref); - } - ); + } + ); - // When there's a preview error, we don't show it in the manager, but simply - fullAPI.on(CONFIG_ERROR, function handleConfigError(err) { + provider.channel.on( + STORY_ARGS_UPDATED, + function handleStoryArgsUpdated({ storyId, args }: { storyId: StoryId; args: Args }) { const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + api.updateStory(storyId, { args }, ref); + } + ); - fullAPI.on(STORY_MISSING, function handleConfigError(err) { - const { ref } = getEventMetadata(this, fullAPI); - fullAPI.setPreviewInitialized(ref); - }); + // When there's a preview error, we don't show it in the manager, but simply + provider.channel.on(CONFIG_ERROR, function handleConfigError(err) { + const { ref } = getEventMetadata(this, fullAPI); + api.setPreviewInitialized(ref); + }); - if (FEATURES?.storyStoreV7) { - fullAPI.on(STORY_INDEX_INVALIDATED, () => fullAPI.fetchIndex()); - await fullAPI.fetchIndex(); - } - }; + provider.channel.on(STORY_MISSING, function handleConfigError(err) { + const { ref } = getEventMetadata(this, fullAPI); + api.setPreviewInitialized(ref); + }); return { api, @@ -760,6 +759,11 @@ export const init: ModuleFn = ({ previewInitialized: false, status: {}, }, - init: initModule, + init: async () => { + if (FEATURES?.storyStoreV7) { + provider.channel.on(STORY_INDEX_INVALIDATED, () => api.fetchIndex()); + await api.fetchIndex(); + } + }, }; }; diff --git a/code/lib/manager-api/src/modules/url.ts b/code/lib/manager-api/src/modules/url.ts index b8e4dcf6ebf1..c6cfc5abbd80 100644 --- a/code/lib/manager-api/src/modules/url.ts +++ b/code/lib/manager-api/src/modules/url.ts @@ -11,7 +11,7 @@ import { dequal as deepEqual } from 'dequal'; import { global } from '@storybook/global'; import type { API_Layout, API_UI } from '@storybook/types'; -import type { ModuleArgs, ModuleFn } from '../index'; +import type { ModuleArgs, ModuleFn } from '../lib/types'; const { window: globalWindow } = global; @@ -116,7 +116,9 @@ export interface SubAPI { setQueryParams: (input: QueryParams) => void; } -export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...rest }) => { +export const init: ModuleFn = (moduleArgs) => { + const { store, navigate, provider, fullAPI } = moduleArgs; + const navigateTo = ( path: string, queryParams: Record = {}, @@ -153,7 +155,7 @@ export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...r }; if (!deepEqual(customQueryParams, update)) { store.setState({ customQueryParams: update }); - fullAPI.emit(UPDATE_QUERY_PARAMS, update); + provider.channel.emit(UPDATE_QUERY_PARAMS, update); } }, navigateUrl(url, options) { @@ -161,49 +163,48 @@ export const init: ModuleFn = ({ store, navigate, state, provider, fullAPI, ...r }, }; - const initModule = () => { - // Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. - const updateArgsParam = () => { - const { path, queryParams, viewMode } = fullAPI.getUrlState(); - if (viewMode !== 'story') return; - - const currentStory = fullAPI.getCurrentStoryData(); - if (currentStory?.type !== 'story') return; - - const { args, initialArgs } = currentStory; - const argsString = buildArgsParam(initialArgs, args); - navigateTo(path, { ...queryParams, args: argsString }, { replace: true }); - api.setQueryParams({ args: argsString }); - }; - - fullAPI.on(SET_CURRENT_STORY, () => updateArgsParam()); - - let handleOrId: any; - fullAPI.on(STORY_ARGS_UPDATED, () => { - if ('requestIdleCallback' in globalWindow) { - if (handleOrId) globalWindow.cancelIdleCallback(handleOrId); - handleOrId = globalWindow.requestIdleCallback(updateArgsParam, { timeout: 1000 }); - } else { - if (handleOrId) clearTimeout(handleOrId); - setTimeout(updateArgsParam, 100); - } - }); - - fullAPI.on(GLOBALS_UPDATED, ({ globals, initialGlobals }) => { - const { path, queryParams } = fullAPI.getUrlState(); - const globalsString = buildArgsParam(initialGlobals, globals); - navigateTo(path, { ...queryParams, globals: globalsString }, { replace: true }); - api.setQueryParams({ globals: globalsString }); - }); - - fullAPI.on(NAVIGATE_URL, (url: string, options: NavigateOptions) => { - fullAPI.navigateUrl(url, options); - }); + /** + * Sets `args` parameter in URL, omitting any args that have their initial value or cannot be unserialized safely. + */ + const updateArgsParam = () => { + const { path, queryParams, viewMode } = api.getUrlState(); + if (viewMode !== 'story') return; + + const currentStory = fullAPI.getCurrentStoryData(); + if (currentStory?.type !== 'story') return; + + const { args, initialArgs } = currentStory; + const argsString = buildArgsParam(initialArgs, args); + navigateTo(path, { ...queryParams, args: argsString }, { replace: true }); + api.setQueryParams({ args: argsString }); }; + provider.channel.on(SET_CURRENT_STORY, () => updateArgsParam()); + + let handleOrId: any; + provider.channel.on(STORY_ARGS_UPDATED, () => { + if ('requestIdleCallback' in globalWindow) { + if (handleOrId) globalWindow.cancelIdleCallback(handleOrId); + handleOrId = globalWindow.requestIdleCallback(updateArgsParam, { timeout: 1000 }); + } else { + if (handleOrId) clearTimeout(handleOrId); + setTimeout(updateArgsParam, 100); + } + }); + + provider.channel.on(GLOBALS_UPDATED, ({ globals, initialGlobals }) => { + const { path, queryParams } = api.getUrlState(); + const globalsString = buildArgsParam(initialGlobals, globals); + navigateTo(path, { ...queryParams, globals: globalsString }, { replace: true }); + api.setQueryParams({ globals: globalsString }); + }); + + provider.channel.on(NAVIGATE_URL, (url: string, options: NavigateOptions) => { + api.navigateUrl(url, options); + }); + return { api, - state: initialUrlSupport({ store, navigate, state, provider, fullAPI, ...rest }), - init: initModule, + state: initialUrlSupport(moduleArgs), }; }; diff --git a/code/lib/manager-api/src/modules/versions.ts b/code/lib/manager-api/src/modules/versions.ts index 49ff24be9b1f..2d90a14fcd69 100644 --- a/code/lib/manager-api/src/modules/versions.ts +++ b/code/lib/manager-api/src/modules/versions.ts @@ -5,7 +5,7 @@ import memoize from 'memoizerific'; import type { API_UnknownEntries, API_Version, API_Versions } from '@storybook/types'; import { version as currentVersion } from '../version'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; const { VERSIONCHECK } = global; diff --git a/code/lib/manager-api/src/modules/whatsnew.ts b/code/lib/manager-api/src/modules/whatsnew.ts index 5890eaae6fc7..6ee90558bc7c 100644 --- a/code/lib/manager-api/src/modules/whatsnew.ts +++ b/code/lib/manager-api/src/modules/whatsnew.ts @@ -6,7 +6,7 @@ import { SET_WHATS_NEW_CACHE, TOGGLE_WHATS_NEW_NOTIFICATIONS, } from '@storybook/core-events'; -import type { ModuleFn } from '../index'; +import type { ModuleFn } from '../lib/types'; export type SubState = { whatsNewData?: WhatsNewData; @@ -20,7 +20,7 @@ export type SubAPI = { const WHATS_NEW_NOTIFICATION_ID = 'whats-new'; -export const init: ModuleFn = ({ fullAPI, store }) => { +export const init: ModuleFn = ({ fullAPI, store, provider }) => { const state: SubState = { whatsNewData: undefined, }; @@ -47,7 +47,7 @@ export const init: ModuleFn = ({ fullAPI, store }) => { ...state.whatsNewData, disableWhatsNewNotifications: !state.whatsNewData.disableWhatsNewNotifications, }); - fullAPI.emit(TOGGLE_WHATS_NEW_NOTIFICATIONS, { + provider.channel.emit(TOGGLE_WHATS_NEW_NOTIFICATIONS, { disableWhatsNewNotifications: state.whatsNewData.disableWhatsNewNotifications, }); } @@ -55,20 +55,24 @@ export const init: ModuleFn = ({ fullAPI, store }) => { }; function getLatestWhatsNewPost(): Promise { - fullAPI.emit(REQUEST_WHATS_NEW_DATA); + provider.channel.emit(REQUEST_WHATS_NEW_DATA); return new Promise((resolve) => - fullAPI.once(RESULT_WHATS_NEW_DATA, ({ data }: { data: WhatsNewData }) => resolve(data)) + provider.channel.once(RESULT_WHATS_NEW_DATA, ({ data }: { data: WhatsNewData }) => + resolve(data) + ) ); } function setWhatsNewCache(cache: WhatsNewCache): void { - fullAPI.emit(SET_WHATS_NEW_CACHE, cache); + provider.channel.emit(SET_WHATS_NEW_CACHE, cache); } const initModule = async () => { // The server channel doesn't exist in production, and we don't want to show what's new in production storybooks. - if (global.CONFIG_TYPE !== 'DEVELOPMENT') return; + if (global.CONFIG_TYPE !== 'DEVELOPMENT') { + return; + } const whatsNewData = await getLatestWhatsNewPost(); setWhatsNewState(whatsNewData); @@ -92,7 +96,9 @@ export const init: ModuleFn = ({ fullAPI, store }) => { }, icon: { name: 'hearthollow' }, onClear({ dismissed }) { - if (dismissed) setWhatsNewCache({ lastDismissedPost: whatsNewData.url }); + if (dismissed) { + setWhatsNewCache({ lastDismissedPost: whatsNewData.url }); + } }, }); } diff --git a/code/lib/manager-api/src/tests/globals.test.ts b/code/lib/manager-api/src/tests/globals.test.ts index babd449131b2..1f51a113935a 100644 --- a/code/lib/manager-api/src/tests/globals.test.ts +++ b/code/lib/manager-api/src/tests/globals.test.ts @@ -1,9 +1,10 @@ import { EventEmitter } from 'events'; import { SET_STORIES, SET_GLOBALS, UPDATE_GLOBALS, GLOBALS_UPDATED } from '@storybook/core-events'; -import type { ModuleArgs, API } from '../index'; +import type { API } from '../index'; import type { SubAPI } from '../modules/globals'; import { init as initModule } from '../modules/globals'; +import type { ModuleArgs } from '../lib/types'; const { logger } = require('@storybook/client-logger'); const { getEventMetadata } = require('../lib/events'); @@ -27,7 +28,8 @@ function createMockStore() { describe('globals API', () => { it('sets a sensible initialState', () => { const store = createMockStore(); - const { state } = initModule({ store } as unknown as ModuleArgs); + const channel = new EventEmitter(); + const { state } = initModule({ store, provider: { channel } } as unknown as ModuleArgs); expect(state).toEqual({ globals: {}, @@ -36,13 +38,15 @@ describe('globals API', () => { }); it('set global args on SET_GLOBALS', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - api.emit(SET_GLOBALS, { + channel.emit(SET_GLOBALS, { globals: { a: 'b' }, globalTypes: { a: { type: { name: 'string' } } }, }); @@ -53,26 +57,34 @@ describe('globals API', () => { }); it('ignores SET_STORIES from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); - api.emit(SET_STORIES, { globals: { a: 'b' } }); + channel.emit(SET_STORIES, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: {}, globalTypes: {} }); }); it('ignores SET_GLOBALS from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const api = { findRef: jest.fn() }; + const channel = new EventEmitter(); const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); - api.emit(SET_GLOBALS, { + channel.emit(SET_GLOBALS, { globals: { a: 'b' }, globalTypes: { a: { type: { name: 'string' } } }, }); @@ -80,48 +92,56 @@ describe('globals API', () => { }); it('updates the state when the preview emits GLOBALS_UPDATED', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - - api.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: { a: 'b' }, globalTypes: {} }); - api.emit(GLOBALS_UPDATED, { globals: { a: 'c' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'c' } }); expect(store.getState()).toEqual({ globals: { a: 'c' }, globalTypes: {} }); // SHOULD NOT merge global args - api.emit(GLOBALS_UPDATED, { globals: { d: 'e' } }); + channel.emit(GLOBALS_UPDATED, { globals: { d: 'e' } }); expect(store.getState()).toEqual({ globals: { d: 'e' }, globalTypes: {} }); }); it('ignores GLOBALS_UPDATED from other refs', () => { - const api = Object.assign(new EventEmitter(), { findRef: jest.fn() }); + const channel = new EventEmitter(); + const api = { findRef: jest.fn() }; const store = createMockStore(); - const { state, init } = initModule({ store, fullAPI: api } as unknown as ModuleArgs); + const { state } = initModule({ + store, + fullAPI: api, + provider: { channel }, + } as unknown as ModuleArgs); store.setState(state); - init(); - getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' } }); logger.warn.mockClear(); - api.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 'b' } }); expect(store.getState()).toEqual({ globals: {}, globalTypes: {} }); expect(logger.warn).toHaveBeenCalled(); }); it('emits UPDATE_GLOBALS when updateGlobals is called', () => { - const fullAPI = { emit: jest.fn(), on: jest.fn() } as unknown as API; + const channel = new EventEmitter(); + const fullAPI = {} as unknown as API; const store = createMockStore(); - const { init, api } = initModule({ store, fullAPI } as unknown as ModuleArgs); - - init(); + const listener = jest.fn(); + channel.on(UPDATE_GLOBALS, listener); + const { api } = initModule({ store, fullAPI, provider: { channel } } as unknown as ModuleArgs); (api as SubAPI).updateGlobals({ a: 'b' }); - expect(fullAPI.emit).toHaveBeenCalledWith(UPDATE_GLOBALS, { + + expect(listener).toHaveBeenCalledWith({ globals: { a: 'b' }, options: { target: 'storybook-preview-iframe' }, }); diff --git a/code/lib/manager-api/src/tests/mockStoriesEntries.ts b/code/lib/manager-api/src/tests/mockStoriesEntries.ts new file mode 100644 index 000000000000..703b6e6efb76 --- /dev/null +++ b/code/lib/manager-api/src/tests/mockStoriesEntries.ts @@ -0,0 +1,129 @@ +import type { StoryIndex, API_PreparedStoryIndex } from '@storybook/types'; + +export const mockEntries: StoryIndex['entries'] = { + 'component-a--docs': { + type: 'docs', + id: 'component-a--docs', + title: 'Component A', + name: 'Docs', + importPath: './path/to/component-a.ts', + storiesImports: [], + }, + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + 'component-a--story-2': { + type: 'story', + id: 'component-a--story-2', + title: 'Component A', + name: 'Story 2', + importPath: './path/to/component-a.ts', + }, + 'component-b--story-3': { + type: 'story', + id: 'component-b--story-3', + title: 'Component B', + name: 'Story 3', + importPath: './path/to/component-b.ts', + }, +}; +export const docsEntries: StoryIndex['entries'] = { + 'component-a--page': { + type: 'story', + id: 'component-a--page', + title: 'Component A', + name: 'Page', + importPath: './path/to/component-a.ts', + }, + 'component-a--story-2': { + type: 'story', + id: 'component-a--story-2', + title: 'Component A', + name: 'Story 2', + importPath: './path/to/component-a.ts', + }, + 'component-b-docs': { + type: 'docs', + id: 'component-b--docs', + title: 'Component B', + name: 'Docs', + importPath: './path/to/component-b.ts', + storiesImports: [], + tags: ['stories-mdx'], + }, + 'component-c--story-4': { + type: 'story', + id: 'component-c--story-4', + title: 'Component c', + name: 'Story 4', + importPath: './path/to/component-c.ts', + }, +}; +export const navigationEntries: StoryIndex['entries'] = { + 'a--1': { + type: 'story', + title: 'a', + name: '1', + id: 'a--1', + importPath: './a.ts', + }, + 'a--2': { + type: 'story', + title: 'a', + name: '2', + id: 'a--2', + importPath: './a.ts', + }, + 'b-c--1': { + type: 'story', + title: 'b/c', + name: '1', + id: 'b-c--1', + importPath: './b/c.ts', + }, + 'b-d--1': { + type: 'story', + title: 'b/d', + name: '1', + id: 'b-d--1', + importPath: './b/d.ts', + }, + 'b-d--2': { + type: 'story', + title: 'b/d', + name: '2', + id: 'b-d--2', + importPath: './b/d.ts', + }, + 'custom-id--1': { + type: 'story', + title: 'b/e', + name: '1', + id: 'custom-id--1', + importPath: './b/.ts', + }, +}; +export const preparedEntries: API_PreparedStoryIndex['entries'] = { + 'a--1': { + type: 'story', + title: 'a', + name: '1', + parameters: {}, + id: 'a--1', + args: { a: 'b' }, + importPath: './a.ts', + }, + 'b--1': { + type: 'story', + title: 'b', + name: '1', + parameters: {}, + id: 'b--1', + args: { x: 'y' }, + importPath: './b.ts', + }, +}; diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index 5427226865e5..10916ebe512d 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -16,28 +16,28 @@ import { import { EventEmitter } from 'events'; import { global } from '@storybook/global'; -import { Channel } from '@storybook/channels'; +import type { API_IndexHash, API_StoryEntry } from '@storybook/types'; +import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; -import type { API_StoryEntry, StoryIndex, API_PreparedStoryIndex } from '@storybook/types'; -import { getEventMetadata } from '../lib/events'; - -import type { SubAPI } from '../modules/stories'; import { init as initStories } from '../modules/stories'; import type Store from '../store'; -import type { ModuleArgs } from '..'; - -function mockChannel() { - const transport = { - setHandler: () => {}, - send: () => {}, - }; +import type { API, State } from '..'; +import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; +import type { ModuleArgs } from '../lib/types'; - return new Channel({ transport }); -} +import { getAncestorIds } from '../../../../ui/manager/src/utils/tree'; const mockGetEntries = jest.fn(); +const fetch = global.fetch as jest.Mock>; +const getEventMetadata = getEventMetadataOriginal as unknown as jest.Mock< + ReturnType +>; + +const wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); -jest.mock('../lib/events'); +jest.mock('../lib/events', () => ({ + getEventMetadata: jest.fn(() => ({ sourceType: 'local' })), +})); jest.mock('@storybook/global', () => ({ global: { ...globalThis, @@ -47,41 +47,7 @@ jest.mock('@storybook/global', () => ({ }, })); -const getEventMetadataMock = getEventMetadata as ReturnType; - -const mockEntries: StoryIndex['entries'] = { - 'component-a--docs': { - type: 'docs', - id: 'component-a--docs', - title: 'Component A', - name: 'Docs', - importPath: './path/to/component-a.ts', - storiesImports: [], - }, - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - 'component-a--story-2': { - type: 'story', - id: 'component-a--story-2', - title: 'Component A', - name: 'Story 2', - importPath: './path/to/component-a.ts', - }, - 'component-b--story-3': { - type: 'story', - id: 'component-b--story-3', - title: 'Component B', - name: 'Story 3', - importPath: './path/to/component-b.ts', - }, -}; - -function createMockStore(initialState = {}) { +function createMockStore(initialState: Partial = {}) { let state = initialState; return { getState: jest.fn(() => state), @@ -91,40 +57,34 @@ function createMockStore(initialState = {}) { }), } as any as Store; } - -function initStoriesAndSetState({ store, ...options }: any) { - const { state, ...result } = initStories({ store, ...options } as any); - - store?.setState(state); - - return { state, ...result }; +function createMockProvider() { + return { + getConfig: jest.fn().mockReturnValue({}), + channel: new EventEmitter(), + }; +} +function createMockModuleArgs({ + fullAPI = {}, + initialState = {}, +}: { + fullAPI?: Partial>; + initialState?: Partial; +}) { + const navigate = jest.fn(); + const store = createMockStore(initialState); + const provider = createMockProvider(); + + return { navigate, store, provider, fullAPI }; } - -const provider = { getConfig: jest.fn().mockReturnValue({}), serverChannel: mockChannel() }; - -beforeEach(() => { - provider.getConfig.mockReset().mockReturnValue({}); - provider.serverChannel = mockChannel(); - mockGetEntries.mockReset().mockReturnValue(mockEntries); - - (global.fetch as jest.Mock>).mockReset().mockReturnValue( - Promise.resolve({ - status: 200, - ok: true, - json: () => ({ v: 4, entries: mockGetEntries() }), - } as any as Response) - ); - - getEventMetadataMock.mockReturnValue({ sourceType: 'local' } as any); - getEventMetadataMock.mockReturnValue({ sourceType: 'local' } as any); -}); describe('stories API', () => { it('sets a sensible initialState', () => { - const { state } = initStoriesAndSetState({ + const moduleArgs = createMockModuleArgs({}); + const { state } = initStories({ + ...(moduleArgs as unknown as ModuleArgs), storyId: 'id', viewMode: 'story', - } as ModuleArgs); + }); expect(state).toEqual( expect.objectContaining({ @@ -138,16 +98,11 @@ describe('stories API', () => { describe('setIndex', () => { it('sets the initial set of stories in the stories hash', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: mockEntries }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -162,7 +117,6 @@ describe('stories API', () => { id: 'component-a', children: ['component-a--docs', 'component-a--story-1', 'component-a--story-2'], }); - expect(index['component-a--docs']).toMatchObject({ type: 'docs', id: 'component-a--docs', @@ -172,7 +126,6 @@ describe('stories API', () => { storiesImports: [], prepared: false, }); - expect(index['component-a--story-1']).toMatchObject({ type: 'story', id: 'component-a--story-1', @@ -185,15 +138,10 @@ describe('stories API', () => { (index['component-a--story-1'] as API_StoryEntry as API_StoryEntry).args ).toBeUndefined(); }); - it('trims whitespace of group/component names (which originate from the kind)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -207,7 +155,6 @@ describe('stories API', () => { }, }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'design-system', @@ -228,15 +175,10 @@ describe('stories API', () => { name: ' My Story ', // story name is kept as-is, because it's set directly on the story }); }); - it('moves rootless stories to the front of the list', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -251,7 +193,6 @@ describe('stories API', () => { }, }); const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -270,15 +211,10 @@ describe('stories API', () => { children: ['root-first'], }); }); - it('sets roots when showRoots = true', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -292,9 +228,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a-b', 'a-b--1']); expect(index.a).toMatchObject({ @@ -316,15 +250,10 @@ describe('stories API', () => { title: 'a/b', }); }); - it('does not put bare stories into a root when showRoots = true', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -338,9 +267,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a--1']); expect(index.a).toMatchObject({ @@ -356,17 +283,12 @@ describe('stories API', () => { name: '1', }); }); - // Stories can get out of order for a few reasons -- see reproductions on // https://github.com/storybookjs/storybook/issues/5518 it('does the right thing for out of order stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; provider.getConfig.mockReturnValue({ sidebar: { showRoots: true } }); api.setIndex({ v: 4, @@ -376,9 +298,7 @@ describe('stories API', () => { 'a--2': { type: 'story', title: 'a', name: '2', id: 'a--2', importPath: './a.ts' }, }, }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doens't guarantee it expect(Object.keys(index)).toEqual(['a', 'a--1', 'a--2', 'b', 'b--1']); expect(index.a).toMatchObject({ @@ -386,23 +306,17 @@ describe('stories API', () => { id: 'a', children: ['a--1', 'a--2'], }); - expect(index.b).toMatchObject({ type: 'component', id: 'b', children: ['b--1'], }); }); - // Entries on the SET_STORIES event will be prepared it('handles properly prepared stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: { @@ -417,9 +331,7 @@ describe('stories API', () => { }, }, }); - const { index } = store.getState(); - expect(index['prepared--story']).toMatchObject({ type: 'story', id: 'prepared--story', @@ -431,21 +343,13 @@ describe('stories API', () => { args: { arg: 'exists' }, }); }); - it('retains prepared-ness of stories', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setOptions: jest.fn(), - }); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - init(); - + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; api.setIndex({ v: 4, entries: mockEntries }); - - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { a: 'b' }, args: { c: 'd' }, @@ -457,9 +361,7 @@ describe('stories API', () => { parameters: { a: 'b' }, args: { c: 'd' }, }); - api.setIndex({ v: 4, entries: mockEntries }); - // Let the promise/await chain resolve await new Promise((r) => setTimeout(r, 0)); expect(store.getState().index['component-a--story-1'] as API_StoryEntry).toMatchObject({ @@ -470,51 +372,13 @@ describe('stories API', () => { }); describe('docs entries', () => { - const docsEntries: StoryIndex['entries'] = { - 'component-a--page': { - type: 'story', - id: 'component-a--page', - title: 'Component A', - name: 'Page', - importPath: './path/to/component-a.ts', - }, - 'component-a--story-2': { - type: 'story', - id: 'component-a--story-2', - title: 'Component A', - name: 'Story 2', - importPath: './path/to/component-a.ts', - }, - 'component-b-docs': { - type: 'docs', - id: 'component-b--docs', - title: 'Component B', - name: 'Docs', - importPath: './path/to/component-b.ts', - storiesImports: [], - tags: ['stories-mdx'], - }, - 'component-c--story-4': { - type: 'story', - id: 'component-c--story-4', - title: 'Component c', - name: 'Story 4', - importPath: './path/to/component-c.ts', - }, - }; - it('handles docs entries', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: docsEntries }); - const { index } = store.getState(); - // We need exact key ordering, even if in theory JS doesn't guarantee it expect(Object.keys(index)).toEqual([ 'component-a', @@ -530,26 +394,16 @@ describe('stories API', () => { expect(index['component-b--docs'].type).toBe('docs'); expect(index['component-c--story-4'].type).toBe('story'); }); - describe('when DOCS_MODE = true', () => { it('strips out story entries', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter()); - - const { api } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories({ + ...(moduleArgs as unknown as ModuleArgs), docsOptions: { docsMode: true }, - } as any); - Object.assign(fullAPI, api); - + }); + const { store } = moduleArgs; api.setIndex({ v: 4, entries: docsEntries }); - const { index } = store.getState(); - expect(Object.keys(index)).toEqual(['component-b', 'component-b--docs']); }); }); @@ -558,269 +412,197 @@ describe('stories API', () => { describe('SET_INDEX event', () => { it('calls setIndex w/ the data', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), - setOptions: jest.fn(), - }); - init(); + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; - fullAPI.emit(SET_INDEX, { v: 4, entries: mockEntries }); - - expect(fullAPI.setIndex).toHaveBeenCalled(); + provider.channel.emit(SET_INDEX, { v: 4, entries: mockEntries }); + expect(store.getState().index).toEqual( + expect.objectContaining({ + 'component-a': expect.any(Object), + 'component-a--docs': expect.any(Object), + 'component-a--story-1': expect.any(Object), + }) + ); }); - it('calls setOptions w/ first story parameter', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), - setOptions: jest.fn(), + const fullAPI = { setOptions: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; + + // HACK api to effectively mock getCurrentParameter + Object.assign(api, { getCurrentParameter: jest.fn().mockReturnValue('options'), }); - init(); - - fullAPI.emit(SET_INDEX, { v: 4, entries: mockEntries }); + provider.channel.emit(SET_INDEX, { v: 4, entries: mockEntries }); expect(fullAPI.setOptions).toHaveBeenCalledWith('options'); }); }); describe('fetchIndex', () => { it('deals with 500 errors', async () => { - const navigate = jest.fn(); - const store = createMockStore({}); - const fullAPI = Object.assign(new EventEmitter(), {}, {}); - - (global.fetch as jest.Mock>).mockReturnValue( + fetch.mockReturnValue( Promise.resolve({ status: 500, text: async () => new Error('sorting error'), } as any as Response) ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; await init(); const { indexError } = store.getState(); expect(indexError).toBeDefined(); }); - it('watches for the INVALIDATE event and re-fetches -- and resets the hash', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setIndex: jest.fn(), - }); + fetch.mockReturnValue( + Promise.resolve({ + status: 200, + ok: true, + json: () => ({ + v: 4, + entries: { + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + }, + }), + } as any as Response) + ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; - (global.fetch as jest.Mock>).mockClear(); await init(); - expect(global.fetch as jest.Mock>).toHaveBeenCalledTimes(1); - - (global.fetch as jest.Mock>).mockClear(); - mockGetEntries.mockReturnValueOnce({ - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - }); - fullAPI.emit(STORY_INDEX_INVALIDATED); - expect(global.fetch).toHaveBeenCalledTimes(1); - // Let the promise/await chain resolve - await new Promise((r) => setTimeout(r, 0)); - const { index } = store.getState(); + expect(fetch).toHaveBeenCalledTimes(1); + provider.channel.emit(STORY_INDEX_INVALIDATED); + expect(global.fetch).toHaveBeenCalledTimes(2); + // this side-effect is in an un-awaited promise. + await wait(16); + + const { index } = store.getState(); expect(Object.keys(index)).toEqual(['component-a', 'component-a--story-1']); }); - it('clears 500 errors when invalidated', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setIndex: jest.fn(), - }); - - (global.fetch as jest.Mock>).mockReturnValueOnce( + fetch.mockReturnValueOnce( Promise.resolve({ status: 500, text: async () => new Error('sorting error'), } as any as Response) ); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { init } = initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; await init(); const { indexError } = store.getState(); expect(indexError).toBeDefined(); - (global.fetch as jest.Mock>).mockClear(); - mockGetEntries.mockReturnValueOnce({ - 'component-a--story-1': { - type: 'story', - id: 'component-a--story-1', - title: 'Component A', - name: 'Story 1', - importPath: './path/to/component-a.ts', - }, - }); - fullAPI.emit(STORY_INDEX_INVALIDATED); - expect(global.fetch).toHaveBeenCalledTimes(1); + fetch.mockReturnValueOnce( + Promise.resolve({ + status: 200, + ok: true, + json: () => ({ + v: 4, + entries: { + 'component-a--story-1': { + type: 'story', + id: 'component-a--story-1', + title: 'Component A', + name: 'Story 1', + importPath: './path/to/component-a.ts', + }, + }, + }), + } as any as Response) + ); + + provider.channel.emit(STORY_INDEX_INVALIDATED); + expect(global.fetch).toHaveBeenCalledTimes(2); + + // this side-effect is in an un-awaited promise. + await wait(16); - // Let the promise/await chain resolve - await new Promise((r) => setTimeout(r, 0)); const { index, indexError: newIndexError } = store.getState(); expect(newIndexError).not.toBeDefined(); - expect(Object.keys(index)).toEqual(['component-a', 'component-a--story-1']); }); }); describe('STORY_SPECIFIED event', () => { it('navigates to the story', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return false; - }, - }); - const store = createMockStore({ viewMode: 'story' }); - const { init, api } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'story', - } as any); - - Object.assign(fullAPI, api); - init(); - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('DOES not navigate if the story was already selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'story', storyId: 'a--1' }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'story', - storyId: 'a--1', - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/story/a--1' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); - it('DOES not navigate if a settings page was selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'settings', storyId: 'about' }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'settings', - storyId: 'about', - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/settings/about' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); - it('DOES not navigate if a custom page was selected', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - isSettingsScreenActive() { - return true; - }, - }); - const store = createMockStore({ viewMode: 'custom', storyId: undefined }); - const { api, init } = initStoriesAndSetState({ - store, - navigate, - provider, - fullAPI, - viewMode: 'custom', - storyId: undefined, - } as any); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/custom/page' } }); + initStories(moduleArgs as unknown as ModuleArgs); + const { navigate, provider } = moduleArgs; + provider.channel.emit(STORY_SPECIFIED, { storyId: 'a--1', viewMode: 'story' }); expect(navigate).not.toHaveBeenCalled(); }); }); describe('CURRENT_STORY_WAS_SET event', () => { it('sets previewInitialized', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), {}); - const store = createMockStore({}); - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - Object.assign(fullAPI, api); - await init(); - fullAPI.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); + const moduleArgs = createMockModuleArgs({}); + initStories(moduleArgs as unknown as ModuleArgs); + const { store, provider } = moduleArgs; + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); expect(store.getState().previewInitialized).toBe(true); }); - it('sets a ref to previewInitialized', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); - Object.assign(fullAPI, api); - - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', - ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } }, - } as any); - await init(); - fullAPI.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); - + refId: 'refId', + source: '', + sourceLocation: '', + type: '', + ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } } as any, + }); + provider.channel.emit(CURRENT_STORY_WAS_SET, { id: 'a--1' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); - expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); @@ -828,88 +610,53 @@ describe('stories API', () => { }); describe('args handling', () => { - const parameters = {}; - const preparedEntries: API_PreparedStoryIndex['entries'] = { - 'a--1': { - type: 'story', - title: 'a', - name: '1', - parameters, - id: 'a--1', - args: { a: 'b' }, - importPath: './a.ts', - }, - 'b--1': { - type: 'story', - title: 'b', - name: '1', - parameters, - id: 'b--1', - args: { x: 'y' }, - importPath: './b.ts', - }, - }; - it('changes args properly, per story when receiving STORY_ARGS_UPDATED', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + api.setIndex({ v: 4, entries: preparedEntries }); const { index } = store.getState(); expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); - - init(); - fullAPI.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); - + provider.channel.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); const { index: changedIndex } = store.getState(); expect((changedIndex['a--1'] as API_StoryEntry).args).toEqual({ foo: 'bar' }); expect((changedIndex['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('changes reffed args properly, per story when receiving STORY_ARGS_UPDATED', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = new EventEmitter(); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - updateRef: jest.fn(), - }); - - init(); - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', - ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } }, - } as any); - fullAPI.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); - expect((fullAPI as any).updateRef).toHaveBeenCalledWith('refId', { + refId: 'refId', + source: '', + sourceLocation: '', + type: '', + ref: { id: 'refId', index: { 'a--1': { args: { a: 'b' } } } } as any, + }); + provider.channel.emit(STORY_ARGS_UPDATED, { storyId: 'a--1', args: { foo: 'bar' } }); + expect(fullAPI.updateRef).toHaveBeenCalledWith('refId', { index: { 'a--1': { args: { foo: 'bar' } } }, }); }); - it('updateStoryArgs emits UPDATE_STORY_ARGS to the local frame and does not change anything', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - init(); + const listener = jest.fn(); + provider.channel.on(UPDATE_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.updateStoryArgs({ id: 'a--1' } as API_StoryEntry, { foo: 'bar' }); - expect(emit).toHaveBeenCalledWith(UPDATE_STORY_ARGS, { + + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', updatedArgs: { foo: 'bar' }, options: { @@ -921,23 +668,18 @@ describe('stories API', () => { expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('updateStoryArgs emits UPDATE_STORY_ARGS to the right frame', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - - init(); + const listener = jest.fn(); + provider.channel.on(UPDATE_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.updateStoryArgs({ id: 'a--1', refId: 'refId' } as API_StoryEntry, { foo: 'bar' }); - expect(emit).toHaveBeenCalledWith(UPDATE_STORY_ARGS, { + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', updatedArgs: { foo: 'bar' }, options: { @@ -945,22 +687,18 @@ describe('stories API', () => { }, }); }); - it('refId to the local frame and does not change anything', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - init(); - + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + const listener = jest.fn(); + provider.channel.on(RESET_STORY_ARGS, listener); + + api.setIndex({ v: 4, entries: preparedEntries }); api.resetStoryArgs({ id: 'a--1' } as API_StoryEntry, ['foo']); - expect(emit).toHaveBeenCalledWith(RESET_STORY_ARGS, { + + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', argNames: ['foo'], options: { @@ -972,22 +710,18 @@ describe('stories API', () => { expect((index['a--1'] as API_StoryEntry).args).toEqual({ a: 'b' }); expect((index['b--1'] as API_StoryEntry).args).toEqual({ x: 'y' }); }); - it('resetStoryArgs emits RESET_STORY_ARGS to the right frame', () => { - const navigate = jest.fn(); - const emit = jest.fn(); - const on = jest.fn(); - const fullAPI = { emit, on }; - const store = createMockStore(); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - const { setIndex } = Object.assign(fullAPI, api); - setIndex({ v: 4, entries: preparedEntries }); - init(); + const listener = jest.fn(); + provider.channel.on(RESET_STORY_ARGS, listener); + api.setIndex({ v: 4, entries: preparedEntries }); api.resetStoryArgs({ id: 'a--1', refId: 'refId' } as API_StoryEntry, ['foo']); - expect(emit).toHaveBeenCalledWith(RESET_STORY_ARGS, { + expect(listener).toHaveBeenCalledWith({ storyId: 'a--1', argNames: ['foo'], options: { @@ -997,268 +731,156 @@ describe('stories API', () => { }); }); - const navigationEntries: StoryIndex['entries'] = { - 'a--1': { - type: 'story', - title: 'a', - name: '1', - id: 'a--1', - importPath: './a.ts', - }, - 'a--2': { - type: 'story', - title: 'a', - name: '2', - id: 'a--2', - importPath: './a.ts', - }, - 'b-c--1': { - type: 'story', - title: 'b/c', - name: '1', - id: 'b-c--1', - importPath: './b/c.ts', - }, - 'b-d--1': { - type: 'story', - title: 'b/d', - name: '1', - id: 'b-d--1', - importPath: './b/d.ts', - }, - 'b-d--2': { - type: 'story', - title: 'b/d', - name: '2', - id: 'b-d--2', - importPath: './b/d.ts', - }, - 'custom-id--1': { - type: 'story', - title: 'b/e', - name: '1', - id: 'custom-id--1', - importPath: './b/.ts', - }, - }; - describe('jumpToStory', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); - jumpToStory(1); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('works backwards', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--2', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--2', storyId: 'a--2', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(-1); - jumpToStory(-1); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('does nothing if you are at the last story and go forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, + const initialState = { + path: '/story/custom-id--1', storyId: 'custom-id--1', viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToStory(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you are at the first story and go backward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToStory(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(-1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you have not selected a story', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - jumpToStory(1); + // @ts-expect-error (storyId type is maybe wrong?) + const initialState = { path: '/story', storyId: undefined, viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToStory(1); expect(navigate).not.toHaveBeenCalled(); }); }); describe('findSiblingStoryId', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const storyId = 'a--1'; - const { - api: { setIndex, findSiblingStoryId }, - } = initStoriesAndSetState({ store, navigate, storyId, viewMode: 'story', provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; - const result = findSiblingStoryId(storyId, store.getState().index, 1, false); + api.setIndex({ v: 4, entries: navigationEntries }); + const result = api.findSiblingStoryId('a--1', store.getState().index, 1, false); expect(result).toBe('a--2'); }); it('works forward toSiblingGroup', () => { - const navigate = jest.fn(); - const store = createMockStore(); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; - const storyId = 'a--1'; - const { - api: { setIndex, findSiblingStoryId }, - } = initStoriesAndSetState({ store, navigate, storyId, viewMode: 'story', provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - const result = findSiblingStoryId(storyId, store.getState().index, 1, true); + api.setIndex({ v: 4, entries: navigationEntries }); + const result = api.findSiblingStoryId('a--1', store.getState().index, 1, true); expect(result).toBe('b-c--1'); }); }); describe('jumpToComponent', () => { it('works forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, - storyId: 'a--1', - viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(1); expect(navigate).toHaveBeenCalledWith('/story/b-c--1'); }); - it('works backwards', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, + const initialState = { + path: '/story/b-c--1', storyId: 'b-c--1', viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(-1); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('does nothing if you are in the last component and go forward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, + const initialState = { + path: '/story/custom-id--1', storyId: 'custom-id--1', viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(1); expect(navigate).not.toHaveBeenCalled(); }); - it('does nothing if you are at the first component and go backward', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { setIndex, jumpToComponent }, - } = initStoriesAndSetState({ - store, - navigate, - storyId: 'a--2', - viewMode: 'story', - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--2', storyId: 'a--2', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - jumpToComponent(-1); + api.setIndex({ v: 4, entries: navigationEntries }); + api.jumpToComponent(-1); expect(navigate).not.toHaveBeenCalled(); }); }); - describe('selectStory', () => { it('navigates', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'story' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a--2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a--2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('sets view mode to docs if doc-level component is selected', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'docs' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ + const initialState = { path: '/docs/a--1', storyId: 'a--1', viewMode: 'docs' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: { ...navigationEntries, @@ -1272,194 +894,129 @@ describe('stories API', () => { }, }, }); - - selectStory('intro'); + api.selectStory('intro'); expect(navigate).toHaveBeenCalledWith('/docs/intro--docs'); }); - - describe('legacy api', () => { + describe('deprecated api', () => { it('allows navigating to a combination of title + name', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a', '2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a', '2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('allows navigating to a given name (in the current component)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory(undefined, '2'); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory(undefined, '2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); }); - it('allows navigating away from the settings pages', () => { - const navigate = jest.fn(); - const store = createMockStore({ storyId: 'a--1', viewMode: 'settings' }); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); - - selectStory('a--2'); + const initialState = { path: '/settings/a--1', storyId: 'a--1', viewMode: 'settings' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; + + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a--2'); expect(navigate).toHaveBeenCalledWith('/story/a--2'); }); - it('allows navigating to first story in component on call by component id', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('a'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('a'); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('allows navigating to first story in group on call by group id', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b'); expect(navigate).toHaveBeenCalledWith('/story/b-c--1'); }); - it('allows navigating to first story in component on call by title', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--1', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('A'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('A'); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - it('allows navigating to the first story of the current component if passed nothing', () => { - const navigate = jest.fn(); - const store = createMockStore(); - const { - api: { setIndex, selectStory }, - } = initStoriesAndSetState({ - store, - storyId: 'a--2', - viewMode: 'story', - navigate, - provider, - } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory(); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory(); expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); - describe('component permalinks', () => { it('allows navigating to kind/storyname (legacy api)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b/e', '1'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b/e', '1'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); - it('allows navigating to component permalink/storyname (legacy api)', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('custom-id', '1'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('custom-id', '1'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); - it('allows navigating to first story in kind on call by kind', () => { - const navigate = jest.fn(); - const store = createMockStore(); - - const { - api: { selectStory, setIndex }, - } = initStoriesAndSetState({ store, navigate, provider } as any); - setIndex({ v: 4, entries: navigationEntries }); + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { navigate } = moduleArgs; - selectStory('b/e'); + api.setIndex({ v: 4, entries: navigationEntries }); + api.selectStory('b/e'); expect(navigate).toHaveBeenCalledWith('/story/custom-id--1'); }); }); }); - describe('STORY_PREPARED', () => { it('prepares the story', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const fullAPI = { setOptions: jest.fn() }; + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState, fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { a: 'b' }, args: { c: 'd' }, }); - const { index } = store.getState(); expect(index['component-a--story-1']).toMatchObject({ type: 'story', @@ -1472,54 +1029,42 @@ describe('stories API', () => { args: { c: 'd' }, }); }); - it('sets options the first time it is called', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const fullAPI = { setOptions: jest.fn() }; + const initialState = { path: '/story/a--1', storyId: 'a--1', viewMode: 'story' }; + const moduleArgs = createMockModuleArgs({ initialState, fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(STORY_PREPARED, { + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { options: 'options' }, }); - expect(fullAPI.setOptions).toHaveBeenCalledWith('options'); fullAPI.setOptions.mockClear(); - fullAPI.emit(STORY_PREPARED, { + + provider.channel.emit(STORY_PREPARED, { id: 'component-a--story-1', parameters: { options: 'options2' }, }); - expect(fullAPI.setOptions).not.toHaveBeenCalled(); }); }); - describe('DOCS_PREPARED', () => { it('prepares the docs entry', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), { - setStories: jest.fn(), - setOptions: jest.fn(), - }); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - await init(); - fullAPI.emit(DOCS_PREPARED, { + provider.channel.emit(DOCS_PREPARED, { id: 'component-a--docs', parameters: { a: 'b' }, }); - const { index } = store.getState(); expect(index['component-a--docs']).toMatchObject({ type: 'docs', @@ -1532,104 +1077,75 @@ describe('stories API', () => { }); }); }); - describe('CONFIG_ERROR', () => { it('sets previewInitialized to true, local', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - await init(); - - fullAPI.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); + api.setIndex({ v: 4, entries: mockEntries }); + provider.channel.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); const { previewInitialized } = store.getState(); expect(previewInitialized).toBe(true); }); - it('sets previewInitialized to true, ref', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - Object.assign(fullAPI, api); + api.setIndex({ v: 4, entries: mockEntries }); - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'refId', stories: { 'a--1': { args: { a: 'b' } } } }, } as any); - await init(); - fullAPI.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); - + provider.channel.emit(CONFIG_ERROR, { message: 'Failed to run configure' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); }); }); - describe('STORY_MISSING', () => { it('sets previewInitialized to true, local', async () => { - const navigate = jest.fn(); - const store = createMockStore(); - const fullAPI = Object.assign(new EventEmitter(), {}); - - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api); - - await init(); - - fullAPI.emit(STORY_MISSING, { message: 'Failed to run configure' }); + const moduleArgs = createMockModuleArgs({}); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; + provider.channel.emit(STORY_MISSING, { message: 'Failed to run configure' }); const { previewInitialized } = store.getState(); expect(previewInitialized).toBe(true); }); - it('sets previewInitialized to true, ref', async () => { - const navigate = jest.fn(); - const fullAPI = Object.assign(new EventEmitter(), { - updateRef: jest.fn(), - }); - const store = createMockStore(); - const { api, init } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - Object.assign(fullAPI, api); + const fullAPI = { updateRef: jest.fn() }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'refId', stories: { 'a--1': { args: { a: 'b' } } } }, } as any); - await init(); - fullAPI.emit(STORY_MISSING, { message: 'Failed to run configure' }); - + provider.channel.emit(STORY_MISSING, { message: 'Failed to run configure' }); expect(fullAPI.updateRef.mock.calls.length).toBe(1); expect(fullAPI.updateRef.mock.calls[0][1]).toEqual({ previewInitialized: true, }); }); }); - describe('v2 SET_STORIES event', () => { it('normalizes parameters and calls setRef for external stories', () => { - const fullAPI = Object.assign(new EventEmitter(), {}); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - const finalAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), + const fullAPI = { findRef: jest.fn(), setRef: jest.fn(), - }); - init(); + }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' }, } as any); @@ -1639,10 +1155,9 @@ describe('stories API', () => { kindParameters: { a: { kind: 'kind' } }, stories: { 'a--1': { kind: 'a', parameters: { story: 'story' } } }, }; - finalAPI.emit(SET_STORIES, setStoriesPayload); - - expect(finalAPI.setIndex).not.toHaveBeenCalled(); - expect(finalAPI.setRef).toHaveBeenCalledWith( + provider.channel.emit(SET_STORIES, setStoriesPayload); + expect(store.getState().index).toBeUndefined(); + expect(fullAPI.setRef).toHaveBeenCalledWith( 'ref', { id: 'ref', @@ -1656,28 +1171,23 @@ describe('stories API', () => { }); describe('legacy (v1) SET_STORIES event', () => { it('calls setRef with stories', () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - Object.assign(fullAPI, api, { - setIndex: jest.fn(), + const fullAPI = { findRef: jest.fn(), setRef: jest.fn(), - }); - init(); + }; + const moduleArgs = createMockModuleArgs({ fullAPI }); + initStories(moduleArgs as unknown as ModuleArgs); + const { provider, store } = moduleArgs; - getEventMetadataMock.mockReturnValueOnce({ + getEventMetadata.mockReturnValueOnce({ sourceType: 'external', ref: { id: 'ref' }, } as any); const setStoriesPayload = { stories: { 'a--1': {} }, }; - fullAPI.emit(SET_STORIES, setStoriesPayload); - - expect(fullAPI.setIndex).not.toHaveBeenCalled(); + provider.channel.emit(SET_STORIES, setStoriesPayload); + expect(store.getState().index).toBeUndefined(); expect(fullAPI.setRef).toHaveBeenCalledWith( 'ref', { @@ -1690,47 +1200,33 @@ describe('stories API', () => { ); }); }); +}); +describe('experimental_updateStatus', () => { + it('is included in the initial state', () => { + const moduleArgs = createMockModuleArgs({}); + const { state } = initStories(moduleArgs as unknown as ModuleArgs); - describe('experimental_updateStatus', () => { - it('is included in the initial state', () => { - const { state } = initStoriesAndSetState({ - storyId: 'id', - viewMode: 'story', - } as ModuleArgs); - - expect(state).toEqual( - expect.objectContaining({ - status: {}, - }) - ); - }); - - it('updates a story', async () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const API: SubAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), - findRef: jest.fn(), - setRef: jest.fn(), - }); - - await init(); - - await expect( - API.experimental_updateStatus('a-addon-id', { - 'a-story-id': { - status: 'pending', - title: 'an addon title', - description: 'an addon description', - }, - }) - ).resolves.not.toThrow(); - - expect(store.getState().status).toMatchInlineSnapshot(` + expect(state).toEqual( + expect.objectContaining({ + status: {}, + }) + ); + }); + it('updates a story', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + }) + ).resolves.not.toThrow(); + expect(store.getState().status).toMatchInlineSnapshot(` Object { "a-story-id": Object { "a-addon-id": Object { @@ -1741,35 +1237,23 @@ describe('stories API', () => { }, } `); - }); - - it('updates multiple stories', async () => { - const fullAPI = Object.assign(new EventEmitter()); - const navigate = jest.fn(); - const store = createMockStore(); - - const { init, api } = initStoriesAndSetState({ store, navigate, provider, fullAPI } as any); - - const API: SubAPI = Object.assign(fullAPI, api, { - setIndex: jest.fn(), - findRef: jest.fn(), - setRef: jest.fn(), - }); - - await init(); - - await expect( - API.experimental_updateStatus('a-addon-id', { - 'a-story-id': { - status: 'pending', - title: 'an addon title', - description: 'an addon description', - }, - 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, - }) - ).resolves.not.toThrow(); - - expect(store.getState().status).toMatchInlineSnapshot(` + }); + it('updates multiple stories', async () => { + const moduleArgs = createMockModuleArgs({}); + const { api } = initStories(moduleArgs as unknown as ModuleArgs); + const { store } = moduleArgs; + + await expect( + api.experimental_updateStatus('a-addon-id', { + 'a-story-id': { + status: 'pending', + title: 'an addon title', + description: 'an addon description', + }, + 'another-story-id': { status: 'success', title: 'a addon title', description: '' }, + }) + ).resolves.not.toThrow(); + expect(store.getState().status).toMatchInlineSnapshot(` Object { "a-story-id": Object { "a-addon-id": Object { @@ -1787,6 +1271,5 @@ describe('stories API', () => { }, } `); - }); }); }); diff --git a/code/lib/manager-api/src/tests/url.test.js b/code/lib/manager-api/src/tests/url.test.js index c269331b1c77..33cf4a1872c1 100644 --- a/code/lib/manager-api/src/tests/url.test.js +++ b/code/lib/manager-api/src/tests/url.test.js @@ -2,6 +2,7 @@ import qs from 'qs'; import { SET_CURRENT_STORY, GLOBALS_UPDATED, UPDATE_QUERY_PARAMS } from '@storybook/core-events'; +import EventEmitter from 'events'; import { init as initURL } from '../modules/url'; jest.mock('@storybook/client-logger'); @@ -17,7 +18,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ isFullscreen: true }); }); @@ -28,7 +29,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ showNav: false }); }); @@ -39,7 +40,7 @@ describe('initial state', () => { const { state: { ui }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(ui).toEqual({ enableShortcuts: false }); }); @@ -50,7 +51,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ panelPosition: 'bottom' }); }); @@ -61,7 +62,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ panelPosition: 'right' }); }); @@ -72,7 +73,7 @@ describe('initial state', () => { const { state: { layout }, - } = initURL({ navigate, state: { location } }); + } = initURL({ navigate, state: { location }, provider: { channel: new EventEmitter() } }); expect(layout).toEqual({ showPanel: false }); }); @@ -88,18 +89,23 @@ describe('queryParams', () => { }, getState: () => state, }; - const fullAPI = { emit: jest.fn() }; + const channel = new EventEmitter(); const { api } = initURL({ state: { location: { search: '' } }, navigate: jest.fn(), store, - fullAPI, + provider: { channel }, }); + const listener = jest.fn(); + + channel.on(UPDATE_QUERY_PARAMS, listener); + api.setQueryParams({ foo: 'bar' }); expect(api.getQueryParam('foo')).toEqual('bar'); - expect(fullAPI.emit).toHaveBeenCalledWith(UPDATE_QUERY_PARAMS, { foo: 'bar' }); + + expect(listener).toHaveBeenCalledWith({ foo: 'bar' }); }); }); @@ -120,14 +126,6 @@ describe('initModule', () => { }); const fullAPI = { - callbacks: {}, - on(event, fn) { - this.callbacks[event] = this.callbacks[event] || []; - this.callbacks[event].push(fn); - }, - emit(event, ...args) { - this.callbacks[event]?.forEach((cb) => cb(...args)); - }, showReleaseNotesOnLaunch: jest.fn(), }; @@ -140,19 +138,22 @@ describe('initModule', () => { store.setState(storyState('test--story')); const navigate = jest.fn(); - - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api, { - getCurrentStoryData: () => ({ - type: 'story', - args: { a: 1, b: 2 }, - initialArgs: { a: 1, b: 1 }, - isLeaf: true, + const channel = new EventEmitter(); + initURL({ + store, + provider: { channel }, + state: { location: {} }, + navigate, + fullAPI: Object.assign(fullAPI, { + getCurrentStoryData: () => ({ + type: 'story', + args: { a: 1, b: 2 }, + initialArgs: { a: 1, b: 1 }, + isLeaf: true, + }), }), }); - init(); - - fullAPI.emit(SET_CURRENT_STORY); + channel.emit(SET_CURRENT_STORY); expect(navigate).toHaveBeenCalledWith( '/story/test--story&args=b:2', expect.objectContaining({ replace: true }) @@ -164,12 +165,10 @@ describe('initModule', () => { store.setState(storyState('test--story')); const navigate = jest.fn(); + const channel = new EventEmitter(); + initURL({ store, provider: { channel }, state: { location: {} }, navigate, fullAPI }); - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api); - init(); - - fullAPI.emit(GLOBALS_UPDATED, { globals: { a: 2 }, initialGlobals: { a: 1, b: 1 } }); + channel.emit(GLOBALS_UPDATED, { globals: { a: 2 }, initialGlobals: { a: 1, b: 1 } }); expect(navigate).toHaveBeenCalledWith( '/story/test--story&globals=a:2;b:!undefined', expect.objectContaining({ replace: true }) @@ -180,20 +179,24 @@ describe('initModule', () => { it('adds url params alphabetically', async () => { store.setState({ ...storyState('test--story'), customQueryParams: { full: 1 } }); const navigate = jest.fn(); - - const { api, init } = initURL({ store, state: { location: {} }, navigate, fullAPI }); - Object.assign(fullAPI, api, { - getCurrentStoryData: () => ({ type: 'story', args: { a: 1 }, isLeaf: true }), + const channel = new EventEmitter(); + const { api } = initURL({ + store, + provider: { channel }, + state: { location: {} }, + navigate, + fullAPI: Object.assign(fullAPI, { + getCurrentStoryData: () => ({ type: 'story', args: { a: 1 }, isLeaf: true }), + }), }); - init(); - fullAPI.emit(GLOBALS_UPDATED, { globals: { g: 2 } }); + channel.emit(GLOBALS_UPDATED, { globals: { g: 2 } }); expect(navigate).toHaveBeenCalledWith( '/story/test--story&full=1&globals=g:2', expect.objectContaining({ replace: true }) ); - fullAPI.emit(SET_CURRENT_STORY); + channel.emit(SET_CURRENT_STORY); expect(navigate).toHaveBeenCalledWith( '/story/test--story&args=a:1&full=1&globals=g:2', expect.objectContaining({ replace: true }) diff --git a/code/lib/types/src/modules/addons.ts b/code/lib/types/src/modules/addons.ts index f55efcd29983..7c6a7987a2e3 100644 --- a/code/lib/types/src/modules/addons.ts +++ b/code/lib/types/src/modules/addons.ts @@ -10,6 +10,7 @@ import type { } from 'react'; import type { RenderData as RouterData } from '../../../router/src/types'; import type { ThemeVars } from '../../../theming/src/types'; +import type { API_SidebarOptions } from './api'; import type { Args, ArgsStoryFn as ArgsStoryFnForFramework, @@ -477,6 +478,7 @@ export interface Addon_Config { toolbar?: { [id: string]: Addon_ToolbarConfig; }; + sidebar?: API_SidebarOptions; [key: string]: any; } diff --git a/code/lib/types/src/modules/api-stories.ts b/code/lib/types/src/modules/api-stories.ts index 414f1384d761..04edc820e2fc 100644 --- a/code/lib/types/src/modules/api-stories.ts +++ b/code/lib/types/src/modules/api-stories.ts @@ -130,7 +130,7 @@ export interface API_IndexHash { } // We used to received a bit more data over the channel on the SET_STORIES event, including // the full parameters for each story. -type API_PreparedIndexEntry = IndexEntry & { +export type API_PreparedIndexEntry = IndexEntry & { parameters?: Parameters; argTypes?: ArgTypes; args?: Args; From 5fefe7c79831dc65550ad59cee5bd823f8a3aaf1 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 11 Aug 2023 12:06:56 +0200 Subject: [PATCH 09/58] cleanup --- code/lib/manager-api/src/modules/stories.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index db003e0cba6b..2a725892c70b 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -21,7 +21,6 @@ import type { API_ViewMode, API_StatusState, API_StatusUpdate, - API_FilterFunction, } from '@storybook/types'; import { PRELOAD_ENTRIES, @@ -40,7 +39,6 @@ import { STORY_MISSING, DOCS_PREPARED, SET_CURRENT_STORY, - SET_CONFIG, } from '@storybook/core-events'; import { logger } from '@storybook/client-logger'; From 251d95ef9a2c66c31e17f6a137e7a2eb09439d9c Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 11 Aug 2023 12:20:52 +0200 Subject: [PATCH 10/58] cleanup --- code/lib/manager-api/src/tests/stories.test.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index 10916ebe512d..c77c01db2167 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -16,7 +16,7 @@ import { import { EventEmitter } from 'events'; import { global } from '@storybook/global'; -import type { API_IndexHash, API_StoryEntry } from '@storybook/types'; +import type { API_StoryEntry } from '@storybook/types'; import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; import { init as initStories } from '../modules/stories'; @@ -25,8 +25,6 @@ import type { API, State } from '..'; import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; import type { ModuleArgs } from '../lib/types'; -import { getAncestorIds } from '../../../../ui/manager/src/utils/tree'; - const mockGetEntries = jest.fn(); const fetch = global.fetch as jest.Mock>; const getEventMetadata = getEventMetadataOriginal as unknown as jest.Mock< From 6e4428dc1437b3d2c8212957ec8e294fb48c389b Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 11 Aug 2023 12:22:58 +0200 Subject: [PATCH 11/58] Discard changes to code/lib/manager-api/src/lib/events.ts --- code/lib/manager-api/src/lib/events.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/lib/manager-api/src/lib/events.ts b/code/lib/manager-api/src/lib/events.ts index 5bdce13eae23..34038585f3ba 100644 --- a/code/lib/manager-api/src/lib/events.ts +++ b/code/lib/manager-api/src/lib/events.ts @@ -18,6 +18,7 @@ interface Meta { export const getEventMetadata = (context: Meta, fullAPI: API) => { const { source, refId, type } = context; const [sourceType, sourceLocation] = getSourceType(source, refId); + const ref = refId && fullAPI.getRefs()[refId] ? fullAPI.getRefs()[refId] : fullAPI.findRef(sourceLocation); From de23161ecfff38ce56dc41ae2433320c6f1cce1f Mon Sep 17 00:00:00 2001 From: Vanessa Yuen <6842965+vanessayuenn@users.noreply.github.com> Date: Fri, 11 Aug 2023 17:25:24 +0200 Subject: [PATCH 12/58] Reword PR template - Made testing section mandatory - Moved some sections around to clarify things - Added description for each PR label --- .github/PULL_REQUEST_TEMPLATE.md | 54 ++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f24147199aeb..0228aa268cd2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,12 +1,32 @@ -Closes # + +Thank you for contributing to Storybook! Please submit all PRs to the `next` branch unless they are specific to the current release. Storybook maintainers cherry-pick bug and documentation fixes into the `main` branch as part of the release process, so you shouldn't need to worry about this. For additional guidance: https://storybook.js.org/docs/react/contribute/how-to-contribute + +--> ## What I did -## How to test + + +Closes # + +## Checklist for Contributors + +### Testing + + + +#### The changes in this PR are covered in the following automated tests: +- [ ] stories +- [ ] unit tests +- [ ] integration tests +- [ ] end-to-end tests + +#### Manual testing + +_This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!_ -## Checklist +### Documentation - + -- [ ] Make sure your changes are tested (stories and/or unit, integration, or end-to-end tests) -- [ ] Make sure to add/update documentation regarding your changes +- [ ] Add or update documentation reflecting your changes - [ ] If you are deprecating/removing a feature, make sure to update [MIGRATION.MD](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md) -#### Maintainers +## Checklist for Maintainers - [ ] When this PR is ready for testing, make sure to add `ci:normal`, `ci:merged` or `ci:daily` GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in `code/lib/cli/src/sandbox-templates.ts` -- [ ] Make sure this PR contains **one** of the labels below. - -`["cleanup", "BREAKING CHANGE", "feature request", "bug", "build", "documentation", "maintenance", "dependencies", "other"]` - - +- [ ] Make sure this PR contains **one** of the labels below: +- `cleanup`: Minor cleanup style change. Will not show up in release changelog. +- `build`: Internal-facing build tooling & test updates. Will not show up in release changelog. +- `documentation`: Documentation **only** changes. Will not show up in release changelog. +- `maintenance`: User-facing maintenance tasks. +- `dependencies`: Upgrading (sometimes downgrading) dependencies. +- `BREAKING CHANGE`: Changes that break compatibility in some way with current major version. +- `feature request`: Introducing a new feature. +- `bug`: Internal changes that fixes incorrect behavior. +- `other`: Changes that don't fit in the above categories. ### 🦋 Canary release From c0b2a48250c964a957a4945c710dc2a2095953ed Mon Sep 17 00:00:00 2001 From: jonniebigodes Date: Mon, 14 Aug 2023 14:51:12 +0100 Subject: [PATCH 13/58] Updates documentation and examples for Highlight --- code/addons/highlight/README.md | 144 ++++++++++++++---- code/addons/highlight/docs/highlight.png | Bin 0 -> 191518 bytes docs/essentials/highlight.md | 35 +++-- docs/essentials/highlight.png | Bin 533020 -> 191518 bytes .../angular/addon-highlight-reset.ts.mdx | 33 ++++ .../component-story-highlight-addon.ts.mdx | 32 ++-- .../highlight-addon-custom-style.ts.mdx | 35 +++++ .../common/addon-highlight-customize.js.mdx | 9 -- .../common/addon-highlight-reset.js.mdx | 5 - .../react/addon-highlight-reset.js.mdx | 26 ++++ .../react/addon-highlight-reset.ts-4-9.mdx | 31 ++++ .../react/addon-highlight-reset.ts.mdx | 31 ++++ .../component-story-highlight-addon.js.mdx | 36 +++-- ...component-story-highlight-addon.ts-4-9.mdx | 30 ++++ .../component-story-highlight-addon.ts.mdx | 30 ++++ .../react/highlight-addon-custom-style.js.mdx | 28 ++++ .../highlight-addon-custom-style.ts-4-9.mdx | 33 ++++ .../react/highlight-addon-custom-style.ts.mdx | 33 ++++ .../snippets/vue/addon-highlight-reset.js.mdx | 28 ++++ .../vue/addon-highlight-reset.ts-4-9.mdx | 34 +++++ .../snippets/vue/addon-highlight-reset.ts.mdx | 34 +++++ .../component-story-highlight-addon.js.mdx | 43 +++--- ...component-story-highlight-addon.ts-4-9.mdx | 33 ++++ .../component-story-highlight-addon.ts.mdx | 33 ++++ .../vue/highlight-addon-custom-style.js.mdx | 30 ++++ .../highlight-addon-custom-style.ts-4-9.mdx | 36 +++++ .../vue/highlight-addon-custom-style.ts.mdx | 36 +++++ .../addon-highlight-reset.js.mdx | 24 +++ .../addon-highlight-reset.ts.mdx | 26 ++++ .../component-story-highlight-addon.js.mdx | 32 ++-- .../component-story-highlight-addon.ts.mdx | 25 +++ .../highlight-addon-custom-style.js.mdx | 26 ++++ .../highlight-addon-custom-style.ts.mdx | 28 ++++ 33 files changed, 911 insertions(+), 128 deletions(-) create mode 100644 code/addons/highlight/docs/highlight.png create mode 100644 docs/snippets/angular/addon-highlight-reset.ts.mdx create mode 100644 docs/snippets/angular/highlight-addon-custom-style.ts.mdx delete mode 100644 docs/snippets/common/addon-highlight-customize.js.mdx delete mode 100644 docs/snippets/common/addon-highlight-reset.js.mdx create mode 100644 docs/snippets/react/addon-highlight-reset.js.mdx create mode 100644 docs/snippets/react/addon-highlight-reset.ts-4-9.mdx create mode 100644 docs/snippets/react/addon-highlight-reset.ts.mdx create mode 100644 docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx create mode 100644 docs/snippets/react/component-story-highlight-addon.ts.mdx create mode 100644 docs/snippets/react/highlight-addon-custom-style.js.mdx create mode 100644 docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx create mode 100644 docs/snippets/react/highlight-addon-custom-style.ts.mdx create mode 100644 docs/snippets/vue/addon-highlight-reset.js.mdx create mode 100644 docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx create mode 100644 docs/snippets/vue/addon-highlight-reset.ts.mdx create mode 100644 docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx create mode 100644 docs/snippets/vue/component-story-highlight-addon.ts.mdx create mode 100644 docs/snippets/vue/highlight-addon-custom-style.js.mdx create mode 100644 docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx create mode 100644 docs/snippets/vue/highlight-addon-custom-style.ts.mdx create mode 100644 docs/snippets/web-components/addon-highlight-reset.js.mdx create mode 100644 docs/snippets/web-components/addon-highlight-reset.ts.mdx create mode 100644 docs/snippets/web-components/component-story-highlight-addon.ts.mdx create mode 100644 docs/snippets/web-components/highlight-addon-custom-style.js.mdx create mode 100644 docs/snippets/web-components/highlight-addon-custom-style.ts.mdx diff --git a/code/addons/highlight/README.md b/code/addons/highlight/README.md index 4713f3aae058..814a914cd802 100644 --- a/code/addons/highlight/README.md +++ b/code/addons/highlight/README.md @@ -4,61 +4,149 @@ Storybook addon allows for highlighting specific DOM nodes within your story. Use it to call attention to particular parts of the story. Or use it to enhance other addons that you might be building. For example, [Accessibility](https://storybook.js.org/addons/@storybook/addon-a11y/) addon uses it to highlight DOM nodes that are failing accessibility checks. -![](https://user-images.githubusercontent.com/42671/160146801-179eaa79-fff8-4bff-b17c-9262fdc94918.png) +![Story with highlight](./docs/highlight.png) ## Usage -This addon requires Storybook 6.5 or later. Highlight is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run: +This addon requires Storybook 6.5 or later. Highlight is part of [essentials](https://storybook.js.org/docs/react/essentials/introduction) and so is installed in all new Storybooks by default. If you need to add it to your Storybook, you can run the following command: + +yarn: + +```sh +yarn add --dev @storybook/addon-highlight +``` + +npm: ```sh -npm i -D @storybook/addon-highlight +npm install --save-dev @storybook/addon-highlight --save-dev ``` -Add `"@storybook/addon-highlight"` to the addons array in your `.storybook/main.js`: +pnpm: + +```sh +pnpm add --save-dev @storybook/addon-highlight +``` + +Add `"@storybook/addon-highlight"` to the addons array in your `.storybook/main.js|ts`: + +```ts +// .storybook/main.ts -```js -export default { +// 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 = { addons: ['@storybook/addon-highlight'], }; + +export default config; ``` -### Apply or clear highlights +### Highlighting DOM Elements Highlight DOM nodes by emitting the `HIGHLIGHT` event from within a story or an addon. The event payload must contain a list of selectors you want to highlight. -```js -import React, { useEffect } from 'react'; +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/react'; + import { useChannel } from '@storybook/preview-api'; -import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; -import { MyComponent } from './MyComponent'; -export default { component: MyComponent }; +import { HIGHLIGHT } from '@storybook/addon-highlight'; -export const MyStory = () => { - const emit = useChannel({}); +import { MyComponent } from './MyComponent'; - useEffect(() => { - emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - }); - }, []); +const meta: Meta = { + component: MyComponent, +}; - return ; +export default meta; +type Story = StoryObj; + +export const Highlighted: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['.title', '.subtitle'], + }); + return storyFn(); + }, + ], }; ``` +### Reset highlighted elements + Highlights are automatically cleared when the story changes. You can also manually clear them by emitting the `RESET_HIGHLIGHT` event. -```js -emit(RESET_HIGHLIGHT); +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return storyFn(); + }, + ], +}; ``` ### Customize style -```js -emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - color: 'red', - style: 'solid', // 'dotted' | 'dashed' | 'solid' | 'double' -}); +The addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the configuration object and providing a `color` and `style` option. For example: + +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['.title', '.subtitle'], + color: 'red', + style: 'solid', // 'dotted' | 'dashed' | 'solid' | 'double' + }); + return storyFn(); + }, + ], +}; ``` diff --git a/code/addons/highlight/docs/highlight.png b/code/addons/highlight/docs/highlight.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1aef2f56eae3a61b265afaf126c00adce20f4d GIT binary patch literal 191518 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%0DL)Qk~^O-Dv=|*~3m-3CMA{y2DWBOQFWppUB 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

!%QiIb^yu>~ByW_FXSb2v%X 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 literal 0 HcmV?d00001 diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index 926f1a9589e4..44a8cba7d7da 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -2,36 +2,45 @@ title: 'Highlight' --- -Storybook's [Highlight](https://storybook.js.org/addons/@storybook/addon-highlight/) addon allows you to highlight specific DOM nodes within your story. You can use it to call attention to particular parts of the story. +Storybook's [Highlight](https://storybook.js.org/addons/@storybook/addon-highlight/) addon is a helpful tool for visually debugging your components, allowing you to highlight specific DOM nodes within your story when used as a standalone addon or enhancing other addons such as the [Accessibility addon](https://storybook.js.org/addons/@storybook/addon-a11y/) to inform you of accessibility issues within your components. -![](highlight.png) +![Story with highlighted elements](./highlight.png) -This addon can be used to enhance other addons. For example, [Accessibility](https://storybook.js.org/addons/@storybook/addon-a11y/) addon uses it to highlight DOM nodes that are failing accessibility checks. +## Highlighting DOM Elements -## Apply or clear highlights - -Highlight DOM nodes by emitting the `HIGHLIGHT` event from within a story or an addon. The event payload must contain a list of selectors you want to highlight. +To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` event from within a story or an addon. The event payload must contain a list of selectors you want to highlight. For example: -Highlights are automatically cleared when the story changes. You can also manually clear them by emitting the `RESET_HIGHLIGHT` event. +### Reset highlighted elements + +Out of the box, Storybook automatically removes highlighted elements when transitioning between stories. However, if you need to clear them manually, you can emit the `RESET_HIGHLIGHT` event from within a story or an addon. For example: @@ -39,11 +48,19 @@ Highlights are automatically cleared when the story changes. You can also manual ## Customize style +By default, the addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the configuration object and providing a `color` and `style` option. For example: + diff --git a/docs/essentials/highlight.png b/docs/essentials/highlight.png index 616e42e388b54906ec048b147065524cd45987ef..2d1aef2f56eae3a61b265afaf126c00adce20f4d 100644 GIT binary patch literal 191518 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%0DL)Qk~^O-Dv=|*~3m-3CMA{y2DWBOQFWppUB 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

!%QiIb^yu>~ByW_FXSb2v%X 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 literal 533020 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∈iM^?A3ztf*KD=R}+OAzQKp`=eck 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

ar`DawkQ(WB<)F znW;DM%=n~~6{})s)#~S}c-*Qd?nI%0XR2rKd{e6@$(^H|ec>*y4K++Zn%3y!4lMC4 z2MPw@_Dc^Nu`CxwQJznActOZJuo$l;`9*d7xh7)I4QpWi?~ig={o+Nlng{xEmygbc zd#Y}h_`KPB5m{9iA1hfq6>Y+Z!;Xi z5cB&lzss#%SNcwG3HWSMd^<0AfIS}T|MZ4^>vj5#)dJ6&U`ajZ^!uKdDeaXfKu!$`i znIz@S>e383V>P|kZsU#*-%h1r%&6{F%UDkSp4sVDOq3rLt|Bq5bc<#UB%D ze8TB~J-t!LW|ieG<@tvtGj=3Pww#%9 zF_xjx0_OV!pLUPhU@rhwPER`CcmHPQwEj9sHS+dY ziMmAA-Pt9o9Rg-PouEfu00+rdxvx5j_aj`;^lm#Rd`~y!oJ-i_(p^c=WTkblh@wM z_3N0>6rFe~SKMNjF|27f9aqqrCf6W3CD1zi)Euq(=<~r;>PrSygyl4z+16W1;{mGU zhf-k+$m4KC@r6#$WmAiYgfMRHCqUEKhYFOO6at6B9J<&J`#ecD423FP|K<(hcaGQo z`)*I&(^q^aZ$4+1tl%=GMqf*F$LBqtC!6%!3%|+Wbe% z=07&17AW(T+Rkm&4>x!fZ@#Otq=zviuKI1MmZs=j{>T=%=B{-5@&|p?Lq6;3tP-u{ zcUl+Q<&EpGH~agF_!}PHESPR4fNiHHvXc^%ZJ(tSMYu`-M?HoPsmHv!RlD(HX<}zEpZm*gu`z6kKA{a`(RuB zGu>hTuM!H;?9y|z+@cm}0r+{{EH9L_2Pzs@kxy8&a`L=nCt<;6VW{GroXm~-0#prs z)n*>W*JV~t3-ikPD1JEiSa{CoL-A*974x{qssQVMZ$;Q{C!1rgM8cE{lL(HmqQ!k= zR?;Wi^vSxu<7w4MRNd?s^(IAud%BTekIl(CQLrF&awRSMg8T!r!iFCib-9&R?;V}$ z&h2ck>H&>XBF(O9dxiYV?5uP5U-RG}uil!;*oIn|?k-LA`lV(E@`x3-5Zqx7WUG15 zPn#8{c(}qGW1DvJxM8cE{-sM{g3X;5t|<-d3QOd_q_7`x?5+v^ZJV>VCG5Xbd$g z+Ka)VRAjP<8NERiyYkm`_s1*q`*EgL`;$I%z>U(sR4!YazK+*pQhFP!8r!ND2Nl9m zVRbIu^z0Sa8_Qp*S#;2JN%S>2!daD9D%vD#Qz~0%N+o6;tY#hR(|9_t*_COF7n|O) z!5kFQ_F(PfJ*T(}<+HY+-hY>CR8|@$Vl^R7UJ} z3H5Axj~6F6Jhfg4ZyuG4*ye)NWoJF~=fYd^@{}VkHQSqz@Je}7s9maTZ867kvbNgJ z4%-;gJPusJ%6dqFo+$mrx>LOw^BnnoPk5m$cD{6DJ74jV=k66?2Oc`GdEnb{CIg_} z1Htr22Mz9((QFXa0_mD4Y@2XVgVQjupg`^Z_wHj&r^HUMC^8+(-${vm{4#kpUgd6QPGxBKGV_B{9Mc&fM?*X*!wy3P?pVYA^tRT&K=2u&!;{pTc@pwrGvAsjgU zkZkPysQNA?+vm?WCO*$M%Oz0wwj{sgJ8hMCSr|jAgHMj|KsH}cQM$`I)4d9gMh|Z# zhTTnB@O2xuoKCB(uL!*kLlD_tfn9T`M%9HgG&nouiMgX{8C!DEtA&j;1(kkH<2yrX zy@yhHSa0@gHaQlc&C!+ujJbwd=?rS)JacIS1G5H-M|Foc2PJ0hh|ZsBXvs5{ZdUmb zdYF5(BHxUC6MIVHKoiB{mxmpJB^y|E=Behg%El)V^Ts;4>sEKH4+`y~_rEW+RhrBN zd>o~2(U*zvh8LI2SBiyqUh)$c?<`9dcRP28F_VAoAm9CZPk+R79CC

oEgDcEkQ6 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 eulM;s&%%E$` = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + componentWrapperDecorator((story) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return story; + }), + ], +}; +``` diff --git a/docs/snippets/angular/component-story-highlight-addon.ts.mdx b/docs/snippets/angular/component-story-highlight-addon.ts.mdx index 1786f86192e0..ff928d492784 100644 --- a/docs/snippets/angular/component-story-highlight-addon.ts.mdx +++ b/docs/snippets/angular/component-story-highlight-addon.ts.mdx @@ -1,34 +1,32 @@ ```ts -// Card.stories.ts +// MyComponent.stories.ts -import { componentWrapperDecorator } from '@storybook/angular'; import type { Meta, StoryObj } from '@storybook/angular'; + +import { componentWrapperDecorator } from '@storybook/angular'; + import { useChannel } from '@storybook/preview-api'; -import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; -import { Card } from './card.component'; - -const meta: Meta = { - /* 👇 The title prop is optional. - * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading - * to learn how to generate automatic titles - */ - title: 'Card', - component: Card, + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent.component'; + +const meta: Meta = { + component: MyComponent, }; export default meta; -type Story = StoryObj; +type Story = StoryObj; -export const Default: Story = (args) => ({ - template: '', +export const Highlighted: Story = { decorators: [ componentWrapperDecorator((story) => { const emit = useChannel({}); emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], + elements: ['h2', 'a', '.storybook-button'], }); return story; }), ], -}); +}; ``` diff --git a/docs/snippets/angular/highlight-addon-custom-style.ts.mdx b/docs/snippets/angular/highlight-addon-custom-style.ts.mdx new file mode 100644 index 000000000000..d30466ecd461 --- /dev/null +++ b/docs/snippets/angular/highlight-addon-custom-style.ts.mdx @@ -0,0 +1,35 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/angular'; + +import { componentWrapperDecorator } from '@storybook/angular'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent.component'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + componentWrapperDecorator((story) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return story; + }), + ], +}; +``` diff --git a/docs/snippets/common/addon-highlight-customize.js.mdx b/docs/snippets/common/addon-highlight-customize.js.mdx deleted file mode 100644 index 45d07886f32e..000000000000 --- a/docs/snippets/common/addon-highlight-customize.js.mdx +++ /dev/null @@ -1,9 +0,0 @@ -```js -// MyComponent.stories.js - -emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - color: 'red', - style: 'solid', // 'dotted' | 'dashed' | 'solid' | 'double' -}); -``` diff --git a/docs/snippets/common/addon-highlight-reset.js.mdx b/docs/snippets/common/addon-highlight-reset.js.mdx deleted file mode 100644 index 54d5252ed60b..000000000000 --- a/docs/snippets/common/addon-highlight-reset.js.mdx +++ /dev/null @@ -1,5 +0,0 @@ -```js -// MyComponent.stories.js - -emit(RESET_HIGHLIGHT); -``` diff --git a/docs/snippets/react/addon-highlight-reset.js.mdx b/docs/snippets/react/addon-highlight-reset.js.mdx new file mode 100644 index 000000000000..e7a2922db2ed --- /dev/null +++ b/docs/snippets/react/addon-highlight-reset.js.mdx @@ -0,0 +1,26 @@ +```js +// MyComponent.stories.js|jsx + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +export default { + component: MyComponent, +}; + +export const ResetHighlight = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx b/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx new file mode 100644 index 000000000000..87f3ce8626ce --- /dev/null +++ b/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx @@ -0,0 +1,31 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/addon-highlight-reset.ts.mdx b/docs/snippets/react/addon-highlight-reset.ts.mdx new file mode 100644 index 000000000000..f27256f2055e --- /dev/null +++ b/docs/snippets/react/addon-highlight-reset.ts.mdx @@ -0,0 +1,31 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/component-story-highlight-addon.js.mdx b/docs/snippets/react/component-story-highlight-addon.js.mdx index b4779176d2c5..cfb875956ebb 100644 --- a/docs/snippets/react/component-story-highlight-addon.js.mdx +++ b/docs/snippets/react/component-story-highlight-addon.js.mdx @@ -1,27 +1,25 @@ ```js -// Card.stories.js|jsx +// MyComponent.stories.js|jsx -import React, { useEffect } from 'react'; import { useChannel } from '@storybook/preview-api'; -import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; -import { Card } from './Card'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; export default { - /* 👇 The title prop is optional. - * See https://storybook.js.org/docs/react/configure/overview#configure-story-loading - * to learn how to generate automatic titles - */ - title: 'Card', - component: Card, + component: MyComponent, }; -export const Default = () => ; -Default.decorators = [ - (storyFn) => { - emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - }); - return storyFn(); - }, -]; +export const Highlighted = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return storyFn(); + }, + ], +}; ``` diff --git a/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx b/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx new file mode 100644 index 000000000000..c67b184b2944 --- /dev/null +++ b/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx @@ -0,0 +1,30 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Highlighted: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/component-story-highlight-addon.ts.mdx b/docs/snippets/react/component-story-highlight-addon.ts.mdx new file mode 100644 index 000000000000..1a191fc0bf6d --- /dev/null +++ b/docs/snippets/react/component-story-highlight-addon.ts.mdx @@ -0,0 +1,30 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const Highlighted: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/highlight-addon-custom-style.js.mdx b/docs/snippets/react/highlight-addon-custom-style.js.mdx new file mode 100644 index 000000000000..9d1fa116215c --- /dev/null +++ b/docs/snippets/react/highlight-addon-custom-style.js.mdx @@ -0,0 +1,28 @@ +```js +// MyComponent.stories.js|jsx + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +export default { + component: MyComponent, +}; + +export const StyledHighlight = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx b/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx new file mode 100644 index 000000000000..56b38bdcf909 --- /dev/null +++ b/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/react/highlight-addon-custom-style.ts.mdx b/docs/snippets/react/highlight-addon-custom-style.ts.mdx new file mode 100644 index 000000000000..1be32dac9080 --- /dev/null +++ b/docs/snippets/react/highlight-addon-custom-style.ts.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts|tsx + +import type { Meta, StoryObj } from '@storybook/react'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import { MyComponent } from './MyComponent'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + (storyFn) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return storyFn(); + }, + ], +}; +``` diff --git a/docs/snippets/vue/addon-highlight-reset.js.mdx b/docs/snippets/vue/addon-highlight-reset.js.mdx new file mode 100644 index 000000000000..ee4123337abd --- /dev/null +++ b/docs/snippets/vue/addon-highlight-reset.js.mdx @@ -0,0 +1,28 @@ +```js +// MyComponent.stories.js + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +export default { + component: MyComponent, +}; + +export const ResetHighlight = { + decorators: [ + () => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx b/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx new file mode 100644 index 000000000000..e1573ae922d3 --- /dev/null +++ b/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx @@ -0,0 +1,34 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/addon-highlight-reset.ts.mdx b/docs/snippets/vue/addon-highlight-reset.ts.mdx new file mode 100644 index 000000000000..ae73e80b132a --- /dev/null +++ b/docs/snippets/vue/addon-highlight-reset.ts.mdx @@ -0,0 +1,34 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const ResetHighlight: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/component-story-highlight-addon.js.mdx b/docs/snippets/vue/component-story-highlight-addon.js.mdx index 693c23ee9c1c..3d5a1d0b5c66 100644 --- a/docs/snippets/vue/component-story-highlight-addon.js.mdx +++ b/docs/snippets/vue/component-story-highlight-addon.js.mdx @@ -1,32 +1,27 @@ ```js -// Card.stories.js +// MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; -import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; -import { Card } from './Card.vue'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; export default { - /* 👇 The title prop is optional. - * See https://storybook.js.org/docs/angular/configure/overview#configure-story-loading - * to learn how to generate automatic titles - */ - title: 'Card', - component: Card, + component: MyComponent, }; -export const Default: Story = (args) => ({ - template: '', -}); -Default.decorators = [ - (story) => { - const emit = useChannel({}); - emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - }); - return { - components: { story }, - template: '', - }; - }, -]; +export const Highlighted = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return { + template: '', + }; + }, + ], +}; ``` diff --git a/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx b/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx new file mode 100644 index 000000000000..382988c28242 --- /dev/null +++ b/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Highlighted: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/component-story-highlight-addon.ts.mdx b/docs/snippets/vue/component-story-highlight-addon.ts.mdx new file mode 100644 index 000000000000..626f8924e69f --- /dev/null +++ b/docs/snippets/vue/component-story-highlight-addon.ts.mdx @@ -0,0 +1,33 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const Highlighted: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/highlight-addon-custom-style.js.mdx b/docs/snippets/vue/highlight-addon-custom-style.js.mdx new file mode 100644 index 000000000000..a8feb1e7a1ed --- /dev/null +++ b/docs/snippets/vue/highlight-addon-custom-style.js.mdx @@ -0,0 +1,30 @@ +```js +// MyComponent.stories.js + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +export default { + component: MyComponent, +}; + +export const StyledHighlight = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx b/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx new file mode 100644 index 000000000000..04491e4a6d75 --- /dev/null +++ b/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx @@ -0,0 +1,36 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta = { + component: MyComponent, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/vue/highlight-addon-custom-style.ts.mdx b/docs/snippets/vue/highlight-addon-custom-style.ts.mdx new file mode 100644 index 000000000000..9822f5cbb5aa --- /dev/null +++ b/docs/snippets/vue/highlight-addon-custom-style.ts.mdx @@ -0,0 +1,36 @@ +```ts +// MyComponent.stories.ts + +// Replace vue3 with vue if you are using Storybook for Vue 2 +import type { Meta, StoryObj } from '@storybook/vue3'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import MyComponent from './MyComponent.vue'; + +const meta: Meta = { + component: MyComponent, +}; + +export default meta; +type Story = StoryObj; + +export const StyledHighlight: Story = { + decorators: [ + () => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return { + template: '', + }; + }, + ], +}; +``` diff --git a/docs/snippets/web-components/addon-highlight-reset.js.mdx b/docs/snippets/web-components/addon-highlight-reset.js.mdx new file mode 100644 index 000000000000..9c78e5065065 --- /dev/null +++ b/docs/snippets/web-components/addon-highlight-reset.js.mdx @@ -0,0 +1,24 @@ +```js +// MyComponent.stories.js + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +export default { + component: 'my-component', +}; + +export const ResetHighlight = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return story(); + }, + ], +}; +``` diff --git a/docs/snippets/web-components/addon-highlight-reset.ts.mdx b/docs/snippets/web-components/addon-highlight-reset.ts.mdx new file mode 100644 index 000000000000..941a28759ca0 --- /dev/null +++ b/docs/snippets/web-components/addon-highlight-reset.ts.mdx @@ -0,0 +1,26 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/web-components'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; + +export default { + component: 'my-component', +}; + +export const ResetHighlight: Story = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(RESET_HIGHLIGHT); //👈 Remove previously highlighted elements + emit(HIGHLIGHT, { + elements: ['header', 'section', 'footer'], + }); + return story(); + }, + ], +}; +``` diff --git a/docs/snippets/web-components/component-story-highlight-addon.js.mdx b/docs/snippets/web-components/component-story-highlight-addon.js.mdx index 936b9fdf9b41..70ed9e359ab6 100644 --- a/docs/snippets/web-components/component-story-highlight-addon.js.mdx +++ b/docs/snippets/web-components/component-story-highlight-addon.js.mdx @@ -1,25 +1,23 @@ ```js -// card-component.stories.js +// MyComponent.stories.js -import { html } from 'lit'; import { useChannel } from '@storybook/preview-api'; -import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; -import './card-component'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; export default { - title: 'Card', + component: 'my-component', }; -export const Default: Story = (args) => ({ - template: html``, -}); -Default.decorators = [ - (story) => { - const emit = useChannel({}); - emit(HIGHLIGHT, { - elements: ['.title', '.subtitle'], - }); - return story(); - }, -]; +export const Highlighted = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return story(); + }, + ], +}; ``` diff --git a/docs/snippets/web-components/component-story-highlight-addon.ts.mdx b/docs/snippets/web-components/component-story-highlight-addon.ts.mdx new file mode 100644 index 000000000000..7a83723b4c8b --- /dev/null +++ b/docs/snippets/web-components/component-story-highlight-addon.ts.mdx @@ -0,0 +1,25 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/web-components'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +export default { + component: 'my-component', +}; + +export const Highlighted: Story = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + }); + return story(); + }, + ], +}; +``` diff --git a/docs/snippets/web-components/highlight-addon-custom-style.js.mdx b/docs/snippets/web-components/highlight-addon-custom-style.js.mdx new file mode 100644 index 000000000000..f37e56fdfbb5 --- /dev/null +++ b/docs/snippets/web-components/highlight-addon-custom-style.js.mdx @@ -0,0 +1,26 @@ +```js +// MyComponent.stories.js + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +export default { + component: 'my-component', +}; + +export const StyledHighlight = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return story(); + }, + ], +}; +``` diff --git a/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx b/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx new file mode 100644 index 000000000000..c1b977ae7602 --- /dev/null +++ b/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx @@ -0,0 +1,28 @@ +```ts +// MyComponent.stories.ts + +import type { Meta, StoryObj } from '@storybook/web-components'; + +import { useChannel } from '@storybook/preview-api'; + +import { HIGHLIGHT } from '@storybook/addon-highlight'; + +export default { + component: 'my-component', +}; + +export const StyledHighlight: Story = { + decorators: [ + (story) => { + const emit = useChannel({}); + emit(HIGHLIGHT, { + elements: ['h2', 'a', '.storybook-button'], + color: 'blue', + // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' + style: 'double', + }); + return story(); + }, + ], +}; +``` From a5a990218404c73a75c473d03bbae910c9ba9207 Mon Sep 17 00:00:00 2001 From: Shaun Lloyd Date: Tue, 15 Aug 2023 08:43:07 -0400 Subject: [PATCH 14/58] CLI: exclude addon-styling from upgrade --- code/lib/cli/src/upgrade.test.ts | 2 ++ code/lib/cli/src/upgrade.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/code/lib/cli/src/upgrade.test.ts b/code/lib/cli/src/upgrade.test.ts index 5e16a20ae938..0c70a5ad2e22 100644 --- a/code/lib/cli/src/upgrade.test.ts +++ b/code/lib/cli/src/upgrade.test.ts @@ -34,6 +34,8 @@ describe.each([ ['@storybook/preset-create-react-app', false], ['@storybook/linter-config', false], ['@storybook/design-system', false], + ['@storybook/addon-styling', false], + ['@storybook/addon-styling-webpack', false], ['@nx/storybook', false], ['@nrwl/storybook', false], ])('isCorePackage', (input, output) => { diff --git a/code/lib/cli/src/upgrade.ts b/code/lib/cli/src/upgrade.ts index af8e53ce6a95..a125e77a950f 100644 --- a/code/lib/cli/src/upgrade.ts +++ b/code/lib/cli/src/upgrade.ts @@ -29,6 +29,8 @@ const excludeList = [ '@storybook/addon-bench', '@storybook/addon-console', '@storybook/addon-postcss', + '@storybook/addon-styling', + '@storybook/addon-styling-webpack', '@storybook/babel-plugin-require-context-hook', '@storybook/bench', '@storybook/builder-vite', From c7bffac080023f24f52fc8f0f29bdf6f832421eb Mon Sep 17 00:00:00 2001 From: jonniebigodes Date: Wed, 16 Aug 2023 11:55:32 +0100 Subject: [PATCH 15/58] Initial feedback addressed --- code/addons/highlight/README.md | 12 +++--------- docs/essentials/highlight.md | 4 ++-- .../angular/component-story-highlight-addon.ts.mdx | 3 --- .../angular/highlight-addon-custom-style.ts.mdx | 6 +----- .../react/component-story-highlight-addon.js.mdx | 1 - .../react/component-story-highlight-addon.ts-4-9.mdx | 2 -- .../react/component-story-highlight-addon.ts.mdx | 2 -- .../react/highlight-addon-custom-style.js.mdx | 4 +--- .../react/highlight-addon-custom-style.ts-4-9.mdx | 5 +---- .../react/highlight-addon-custom-style.ts.mdx | 5 +---- .../vue/component-story-highlight-addon.js.mdx | 1 - .../vue/component-story-highlight-addon.ts-4-9.mdx | 2 -- .../vue/component-story-highlight-addon.ts.mdx | 2 -- .../snippets/vue/highlight-addon-custom-style.js.mdx | 5 +---- .../vue/highlight-addon-custom-style.ts-4-9.mdx | 5 +---- .../snippets/vue/highlight-addon-custom-style.ts.mdx | 5 +---- .../component-story-highlight-addon.js.mdx | 1 - .../component-story-highlight-addon.ts.mdx | 2 -- .../highlight-addon-custom-style.js.mdx | 4 +--- .../highlight-addon-custom-style.ts.mdx | 5 +---- 20 files changed, 14 insertions(+), 62 deletions(-) diff --git a/code/addons/highlight/README.md b/code/addons/highlight/README.md index 814a914cd802..e8c1b6aae09b 100644 --- a/code/addons/highlight/README.md +++ b/code/addons/highlight/README.md @@ -19,7 +19,7 @@ yarn add --dev @storybook/addon-highlight npm: ```sh -npm install --save-dev @storybook/addon-highlight --save-dev +npm install @storybook/addon-highlight --save-dev ``` pnpm: @@ -45,15 +45,13 @@ export default config; ### Highlighting DOM Elements -Highlight DOM nodes by emitting the `HIGHLIGHT` event from within a story or an addon. The event payload must contain a list of selectors you want to highlight. +Highlight DOM nodes by emitting the `HIGHLIGHT` event from within a story or an addon. The event payload must contain an `elements` property assigned to an array of selectors matching the elements you want to highlight. ```ts // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; @@ -86,9 +84,7 @@ Highlights are automatically cleared when the story changes. You can also manual // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; @@ -116,15 +112,13 @@ export const ResetHighlight: Story = { ### Customize style -The addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the configuration object and providing a `color` and `style` option. For example: +The addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the payload object and providing a `color` and/or `style` properties. For example: ```ts // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index 44a8cba7d7da..a70ed284d252 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -8,7 +8,7 @@ Storybook's [Highlight](https://storybook.js.org/addons/@storybook/addon-highlig ## Highlighting DOM Elements -To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` event from within a story or an addon. The event payload must contain a list of selectors you want to highlight. For example: +To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` event from within a story or an addon. The event payload must contain an `elements` property assigned to an array of selectors matching the elements you want to highlight. For example: @@ -48,7 +48,7 @@ Out of the box, Storybook automatically removes highlighted elements when transi ## Customize style -By default, the addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the configuration object and providing a `color` and `style` option. For example: +By default, the addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the payload object and providing a `color` and/or `style` properties. For example: diff --git a/docs/snippets/angular/component-story-highlight-addon.ts.mdx b/docs/snippets/angular/component-story-highlight-addon.ts.mdx index ff928d492784..b64a6c96bac7 100644 --- a/docs/snippets/angular/component-story-highlight-addon.ts.mdx +++ b/docs/snippets/angular/component-story-highlight-addon.ts.mdx @@ -2,11 +2,8 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/angular'; - import { componentWrapperDecorator } from '@storybook/angular'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent.component'; diff --git a/docs/snippets/angular/highlight-addon-custom-style.ts.mdx b/docs/snippets/angular/highlight-addon-custom-style.ts.mdx index d30466ecd461..193a4387e614 100644 --- a/docs/snippets/angular/highlight-addon-custom-style.ts.mdx +++ b/docs/snippets/angular/highlight-addon-custom-style.ts.mdx @@ -2,11 +2,8 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/angular'; - import { componentWrapperDecorator } from '@storybook/angular'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent.component'; @@ -25,8 +22,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return story; }), diff --git a/docs/snippets/react/component-story-highlight-addon.js.mdx b/docs/snippets/react/component-story-highlight-addon.js.mdx index cfb875956ebb..9d0f8b146d17 100644 --- a/docs/snippets/react/component-story-highlight-addon.js.mdx +++ b/docs/snippets/react/component-story-highlight-addon.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js|jsx import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx b/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx index c67b184b2944..1d43de9ca1c6 100644 --- a/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx +++ b/docs/snippets/react/component-story-highlight-addon.ts-4-9.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/react/component-story-highlight-addon.ts.mdx b/docs/snippets/react/component-story-highlight-addon.ts.mdx index 1a191fc0bf6d..bed23c3c4ba2 100644 --- a/docs/snippets/react/component-story-highlight-addon.ts.mdx +++ b/docs/snippets/react/component-story-highlight-addon.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/react/highlight-addon-custom-style.js.mdx b/docs/snippets/react/highlight-addon-custom-style.js.mdx index 9d1fa116215c..18e410be4e1d 100644 --- a/docs/snippets/react/highlight-addon-custom-style.js.mdx +++ b/docs/snippets/react/highlight-addon-custom-style.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js|jsx import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; @@ -18,8 +17,7 @@ export const StyledHighlight = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return storyFn(); }, diff --git a/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx b/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx index 56b38bdcf909..969e2ea13e6e 100644 --- a/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx +++ b/docs/snippets/react/highlight-addon-custom-style.ts-4-9.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; @@ -23,8 +21,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return storyFn(); }, diff --git a/docs/snippets/react/highlight-addon-custom-style.ts.mdx b/docs/snippets/react/highlight-addon-custom-style.ts.mdx index 1be32dac9080..ea4534dd16a5 100644 --- a/docs/snippets/react/highlight-addon-custom-style.ts.mdx +++ b/docs/snippets/react/highlight-addon-custom-style.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; @@ -23,8 +21,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return storyFn(); }, diff --git a/docs/snippets/vue/component-story-highlight-addon.js.mdx b/docs/snippets/vue/component-story-highlight-addon.js.mdx index 3d5a1d0b5c66..3781ac9d3fc5 100644 --- a/docs/snippets/vue/component-story-highlight-addon.js.mdx +++ b/docs/snippets/vue/component-story-highlight-addon.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx b/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx index 382988c28242..462c54498449 100644 --- a/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx +++ b/docs/snippets/vue/component-story-highlight-addon.ts-4-9.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/component-story-highlight-addon.ts.mdx b/docs/snippets/vue/component-story-highlight-addon.ts.mdx index 626f8924e69f..94ad9f9c0a0f 100644 --- a/docs/snippets/vue/component-story-highlight-addon.ts.mdx +++ b/docs/snippets/vue/component-story-highlight-addon.ts.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/highlight-addon-custom-style.js.mdx b/docs/snippets/vue/highlight-addon-custom-style.js.mdx index a8feb1e7a1ed..698347ab3dc9 100644 --- a/docs/snippets/vue/highlight-addon-custom-style.js.mdx +++ b/docs/snippets/vue/highlight-addon-custom-style.js.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; - import MyComponent from './MyComponent.vue'; export default { @@ -18,8 +16,7 @@ export const StyledHighlight = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return { template: '', diff --git a/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx b/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx index 04491e4a6d75..eec2829fc50c 100644 --- a/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx +++ b/docs/snippets/vue/highlight-addon-custom-style.ts-4-9.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; @@ -24,8 +22,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return { template: '', diff --git a/docs/snippets/vue/highlight-addon-custom-style.ts.mdx b/docs/snippets/vue/highlight-addon-custom-style.ts.mdx index 9822f5cbb5aa..34dd55cebca5 100644 --- a/docs/snippets/vue/highlight-addon-custom-style.ts.mdx +++ b/docs/snippets/vue/highlight-addon-custom-style.ts.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; @@ -24,8 +22,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return { template: '', diff --git a/docs/snippets/web-components/component-story-highlight-addon.js.mdx b/docs/snippets/web-components/component-story-highlight-addon.js.mdx index 70ed9e359ab6..cfa00a6804a7 100644 --- a/docs/snippets/web-components/component-story-highlight-addon.js.mdx +++ b/docs/snippets/web-components/component-story-highlight-addon.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; export default { diff --git a/docs/snippets/web-components/component-story-highlight-addon.ts.mdx b/docs/snippets/web-components/component-story-highlight-addon.ts.mdx index 7a83723b4c8b..ce3194d54795 100644 --- a/docs/snippets/web-components/component-story-highlight-addon.ts.mdx +++ b/docs/snippets/web-components/component-story-highlight-addon.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/web-components'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; export default { diff --git a/docs/snippets/web-components/highlight-addon-custom-style.js.mdx b/docs/snippets/web-components/highlight-addon-custom-style.js.mdx index f37e56fdfbb5..0f2ffb53cb41 100644 --- a/docs/snippets/web-components/highlight-addon-custom-style.js.mdx +++ b/docs/snippets/web-components/highlight-addon-custom-style.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; export default { @@ -16,8 +15,7 @@ export const StyledHighlight = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return story(); }, diff --git a/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx b/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx index c1b977ae7602..97967c3a6d1f 100644 --- a/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx +++ b/docs/snippets/web-components/highlight-addon-custom-style.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/web-components'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT } from '@storybook/addon-highlight'; export default { @@ -18,8 +16,7 @@ export const StyledHighlight: Story = { emit(HIGHLIGHT, { elements: ['h2', 'a', '.storybook-button'], color: 'blue', - // 👇 Specify the style of the highlighted elements acccepted values are: 'double', 'solid', 'dotted', 'dashed' - style: 'double', + style: 'double', // 'dotted' | 'dashed' | 'solid' | 'double' }); return story(); }, From b358aa2e2aabad2deb32d996a5fda5eb3a0d929b Mon Sep 17 00:00:00 2001 From: jonniebigodes Date: Fri, 18 Aug 2023 16:04:04 +0100 Subject: [PATCH 16/58] Cleanup snippets --- docs/essentials/highlight.md | 6 ++++++ docs/snippets/angular/addon-highlight-reset.ts.mdx | 3 --- docs/snippets/react/addon-highlight-reset.js.mdx | 1 - docs/snippets/react/addon-highlight-reset.ts-4-9.mdx | 2 -- docs/snippets/react/addon-highlight-reset.ts.mdx | 2 -- docs/snippets/vue/addon-highlight-reset.js.mdx | 1 - docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx | 2 -- docs/snippets/vue/addon-highlight-reset.ts.mdx | 2 -- docs/snippets/vue/highlight-addon-custom-style.js.mdx | 1 + docs/snippets/web-components/addon-highlight-reset.js.mdx | 1 - docs/snippets/web-components/addon-highlight-reset.ts.mdx | 2 -- 11 files changed, 7 insertions(+), 16 deletions(-) diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index a70ed284d252..c1f8222a9885 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -26,6 +26,12 @@ To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` ev +

+ +💡 We recommend choosing the most specific selector possible to avoid highlighting elements other addons use. This is because the addon tries to match selectors against the entire DOM tree. + +
+ ### Reset highlighted elements Out of the box, Storybook automatically removes highlighted elements when transitioning between stories. However, if you need to clear them manually, you can emit the `RESET_HIGHLIGHT` event from within a story or an addon. For example: diff --git a/docs/snippets/angular/addon-highlight-reset.ts.mdx b/docs/snippets/angular/addon-highlight-reset.ts.mdx index e39994ecc138..04fe5864f9fe 100644 --- a/docs/snippets/angular/addon-highlight-reset.ts.mdx +++ b/docs/snippets/angular/addon-highlight-reset.ts.mdx @@ -2,11 +2,8 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/angular'; - import { componentWrapperDecorator } from '@storybook/angular'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent.component'; diff --git a/docs/snippets/react/addon-highlight-reset.js.mdx b/docs/snippets/react/addon-highlight-reset.js.mdx index e7a2922db2ed..f969cce998a4 100644 --- a/docs/snippets/react/addon-highlight-reset.js.mdx +++ b/docs/snippets/react/addon-highlight-reset.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js|jsx import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx b/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx index 87f3ce8626ce..07e9f341c064 100644 --- a/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx +++ b/docs/snippets/react/addon-highlight-reset.ts-4-9.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/react/addon-highlight-reset.ts.mdx b/docs/snippets/react/addon-highlight-reset.ts.mdx index f27256f2055e..7ff20b0a39e5 100644 --- a/docs/snippets/react/addon-highlight-reset.ts.mdx +++ b/docs/snippets/react/addon-highlight-reset.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import { MyComponent } from './MyComponent'; diff --git a/docs/snippets/vue/addon-highlight-reset.js.mdx b/docs/snippets/vue/addon-highlight-reset.js.mdx index ee4123337abd..18cbab4e2dc6 100644 --- a/docs/snippets/vue/addon-highlight-reset.js.mdx +++ b/docs/snippets/vue/addon-highlight-reset.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx b/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx index e1573ae922d3..0a80a0f6c9ab 100644 --- a/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx +++ b/docs/snippets/vue/addon-highlight-reset.ts-4-9.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/addon-highlight-reset.ts.mdx b/docs/snippets/vue/addon-highlight-reset.ts.mdx index ae73e80b132a..c0b777d21590 100644 --- a/docs/snippets/vue/addon-highlight-reset.ts.mdx +++ b/docs/snippets/vue/addon-highlight-reset.ts.mdx @@ -3,9 +3,7 @@ // Replace vue3 with vue if you are using Storybook for Vue 2 import type { Meta, StoryObj } from '@storybook/vue3'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; import MyComponent from './MyComponent.vue'; diff --git a/docs/snippets/vue/highlight-addon-custom-style.js.mdx b/docs/snippets/vue/highlight-addon-custom-style.js.mdx index 698347ab3dc9..443a8476a384 100644 --- a/docs/snippets/vue/highlight-addon-custom-style.js.mdx +++ b/docs/snippets/vue/highlight-addon-custom-style.js.mdx @@ -3,6 +3,7 @@ import { useChannel } from '@storybook/preview-api'; import { HIGHLIGHT } from '@storybook/addon-highlight'; + import MyComponent from './MyComponent.vue'; export default { diff --git a/docs/snippets/web-components/addon-highlight-reset.js.mdx b/docs/snippets/web-components/addon-highlight-reset.js.mdx index 9c78e5065065..120eb341e106 100644 --- a/docs/snippets/web-components/addon-highlight-reset.js.mdx +++ b/docs/snippets/web-components/addon-highlight-reset.js.mdx @@ -2,7 +2,6 @@ // MyComponent.stories.js import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; export default { diff --git a/docs/snippets/web-components/addon-highlight-reset.ts.mdx b/docs/snippets/web-components/addon-highlight-reset.ts.mdx index 941a28759ca0..a226b045580f 100644 --- a/docs/snippets/web-components/addon-highlight-reset.ts.mdx +++ b/docs/snippets/web-components/addon-highlight-reset.ts.mdx @@ -2,9 +2,7 @@ // MyComponent.stories.ts import type { Meta, StoryObj } from '@storybook/web-components'; - import { useChannel } from '@storybook/preview-api'; - import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; export default { From 85ed45fed813e1ddd9994cfb48415085a82d7d07 Mon Sep 17 00:00:00 2001 From: stilt0n Date: Sat, 19 Aug 2023 01:22:51 -0400 Subject: [PATCH 17/58] Core: Fix regression caused by defaultName invariant --- code/lib/core-server/src/utils/StoryIndexGenerator.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index 2f95114113ad..d2a195a31463 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -338,8 +338,7 @@ export class StoryIndexGenerator { autodocs === true || (autodocs === 'tag' && hasAutodocsTag) || isStoriesMdx; if (createDocEntry) { - const name = this.options.docs.defaultName; - invariant(name, 'expected a defaultName property in options.docs'); + const name = this.options.docs.defaultName ?? 'Docs'; const { metaId } = indexInputs[0]; const { title } = entries[0]; const tags = indexInputs[0].tags || []; @@ -407,8 +406,7 @@ export class StoryIndexGenerator { // a) it is a stories.mdx transpiled to CSF, OR // b) we have docs page enabled for this file if (componentTags.includes(STORIES_MDX_TAG) || autodocsOptedIn) { - const name = this.options.docs.defaultName; - invariant(name, 'expected a defaultName property in options.docs'); + const name = this.options.docs.defaultName ?? 'Docs'; invariant(csf.meta.title, 'expected a title property in csf.meta'); const id = toId(csf.meta.id || csf.meta.title, name); entries.unshift({ @@ -511,8 +509,7 @@ export class StoryIndexGenerator { title, "makeTitle created an undefined title. This happens when a specifier's doesn't have any matches in its fileName" ); - const { defaultName } = this.options.docs; - invariant(defaultName, 'expected a defaultName property in options.docs'); + const defaultName = this.options.docs.defaultName ?? 'Docs'; const name = result.name || From eee06005ab54c697724382e8840a51dcda58ad02 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Fri, 28 Jul 2023 18:27:52 +0200 Subject: [PATCH 18/58] add new errors framework --- code/lib/core-events/package.json | 42 +++++- code/lib/core-events/src/errors/README.md | 137 ++++++++++++++++++ .../src/errors/define-error.test.ts | 115 +++++++++++++++ .../core-events/src/errors/define-error.ts | 77 ++++++++++ .../core-events/src/errors/manager-errors.ts | 19 +++ .../src/errors/message-reference.png | Bin 0 -> 156646 bytes .../core-events/src/errors/preview-errors.ts | 22 +++ .../core-events/src/errors/server-errors.ts | 16 ++ code/lib/core-events/src/index.ts | 2 + code/yarn.lock | 1 + 10 files changed, 430 insertions(+), 1 deletion(-) create mode 100644 code/lib/core-events/src/errors/README.md create mode 100644 code/lib/core-events/src/errors/define-error.test.ts create mode 100644 code/lib/core-events/src/errors/define-error.ts create mode 100644 code/lib/core-events/src/errors/manager-errors.ts create mode 100644 code/lib/core-events/src/errors/message-reference.png create mode 100644 code/lib/core-events/src/errors/preview-errors.ts create mode 100644 code/lib/core-events/src/errors/server-errors.ts diff --git a/code/lib/core-events/package.json b/code/lib/core-events/package.json index 711937e16a78..ccd673c3eb2b 100644 --- a/code/lib/core-events/package.json +++ b/code/lib/core-events/package.json @@ -20,6 +20,22 @@ }, "license": "MIT", "sideEffects": false, + "typesVersions": { + "*": { + "*": [ + "dist/index.d.ts" + ], + "preview-errors": [ + "dist/errors/preview-errors.d.ts" + ], + "manager-errors": [ + "dist/errors/manager-errors.d.ts" + ], + "server-errors": [ + "dist/errors/server-errors.d.ts" + ] + } + }, "exports": { ".": { "types": "./dist/index.d.ts", @@ -27,6 +43,24 @@ "require": "./dist/index.js", "import": "./dist/index.mjs" }, + "./preview-errors": { + "types": "./dist/errors/preview-errors.d.ts", + "node": "./dist/errors/preview-errors.js", + "require": "./dist/errors/preview-errors.js", + "import": "./dist/errors/preview-errors.mjs" + }, + "./manager-errors": { + "types": "./dist/errors/manager-errors.d.ts", + "node": "./dist/errors/manager-errors.js", + "require": "./dist/errors/manager-errors.js", + "import": "./dist/errors/manager-errors.mjs" + }, + "./server-errors": { + "types": "./dist/errors/server-errors.d.ts", + "node": "./dist/errors/server-errors.js", + "require": "./dist/errors/server-errors.js", + "import": "./dist/errors/server-errors.mjs" + }, "./package.json": "./package.json" }, "main": "./dist/index.js", @@ -43,6 +77,9 @@ "check": "../../../scripts/prepare/check.ts", "prep": "../../../scripts/prepare/bundle.ts" }, + "dependencies": { + "ts-dedent": "^2.0.0" + }, "devDependencies": { "typescript": "~4.9.3" }, @@ -51,7 +88,10 @@ }, "bundler": { "entries": [ - "./src/index.ts" + "./src/index.ts", + "./src/errors/preview-errors.ts", + "./src/errors/manager-errors.ts", + "./src/errors/server-errors.ts" ] }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" diff --git a/code/lib/core-events/src/errors/README.md b/code/lib/core-events/src/errors/README.md new file mode 100644 index 000000000000..bea8eea63b6f --- /dev/null +++ b/code/lib/core-events/src/errors/README.md @@ -0,0 +1,137 @@ +# Storybook Errors + +Storybook provides a utility to manage errors thrown from it. Storybook errors reside in this package and are categorized into: + +1. **[Preview errors](./preview-errors.ts)** + - Errors which occur in the preview area of Storybook + - e.g. Rendering issues, etc. + - available in `@storybook/core-events/preview-errors` +2. **[Manager errors](./manager-errors.ts)** + - Errors which occur in the manager area of Storybook + - e.g. Sidebar, addons, Storybook UI, Storybook router, etc. + - available in `@storybook/core-events/manager-errors` +3. **[Server errors](./server-errors.ts)** + - Any Errors that happen in node + - e.g. Storybook init command, building in prod, building in dev, etc. + - available in `@storybook/core-events/server-errors` + +## How to create errors + +First, find which file your error should be part of, based on the criteria above. +Second use the `defineError` function to define custom errors with specific codes and categories for use within the Storybook codebase. Below is the detailed API documentation for this function: + +### Function Signature + +```typescript +export function defineError