@@ -4,7 +4,13 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
44import { cache } from 'storybook/internal/common' ;
55
66import type { CacheEntry } from './event-cache.ts' ;
7- import { getLastEvents , getPrecedingUpgrade , set } from './event-cache.ts' ;
7+ import {
8+ flushAiPreparePending ,
9+ getAiPreparePending ,
10+ getLastEvents ,
11+ getPrecedingUpgrade ,
12+ set ,
13+ } from './event-cache.ts' ;
814import type { TelemetryEvent } from './types.ts' ;
915
1016vi . mock ( 'storybook/internal/common' , { spy : true } ) ;
@@ -347,4 +353,40 @@ describe('event-cache', () => {
347353 expect ( result ) . toEqual ( afterDev ) ;
348354 } ) ;
349355 } ) ;
356+
357+ describe ( 'ai-prepare pending cache' , ( ) => {
358+ let cacheGetMock : MockInstance ;
359+ let cacheRemoveMock : MockInstance ;
360+
361+ beforeEach ( ( ) => {
362+ vi . clearAllMocks ( ) ;
363+ cacheGetMock = vi . mocked ( cache . get ) ;
364+ cacheRemoveMock = vi . mocked ( cache . remove ) ;
365+ } ) ;
366+
367+ it ( 'returns cached ai-prepare pending record when present' , async ( ) => {
368+ const pending = {
369+ timestamp : 123 ,
370+ sessionId : 'session-1' ,
371+ configDir : '/tmp/.storybook' ,
372+ previewPath : '/tmp/.storybook/preview.ts' ,
373+ previewHash : 'abc123' ,
374+ } ;
375+
376+ cacheGetMock . mockResolvedValueOnce ( pending ) ;
377+
378+ await expect ( getAiPreparePending ( ) ) . resolves . toEqual ( pending ) ;
379+ expect ( cacheGetMock ) . toHaveBeenCalledWith ( 'ai-prepare-pending' ) ;
380+ } ) ;
381+
382+ it ( 'removes the cached ai-prepare pending record and returns undefined' , async ( ) => {
383+ cacheRemoveMock . mockResolvedValueOnce ( undefined ) ;
384+ cacheGetMock . mockResolvedValueOnce ( undefined ) ;
385+
386+ await expect ( flushAiPreparePending ( ) ) . resolves . toBeUndefined ( ) ;
387+ expect ( cacheRemoveMock ) . toHaveBeenCalledWith ( 'ai-prepare-pending' ) ;
388+ await expect ( getAiPreparePending ( ) ) . resolves . toBeUndefined ( ) ;
389+ expect ( cacheGetMock ) . toHaveBeenCalledWith ( 'ai-prepare-pending' ) ;
390+ } ) ;
391+ } ) ;
350392} ) ;
0 commit comments