@@ -173,13 +173,23 @@ describe('theme-listing', () => {
173173 await mkdir ( joinPath ( listingsRoot , 'modern' ) , { recursive : true } )
174174 await mkdir ( joinPath ( listingsRoot , 'classic' ) , { recursive : true } )
175175
176- // When / Then
177- await expect ( ensureListingExists ( themeDir , 'unknown' ) ) . rejects . toThrow (
178- 'Listing preset "unknown" was not found.' ,
179- )
176+ // When
177+ let errorMessage = ''
178+ try {
179+ await ensureListingExists ( themeDir , 'unknown' )
180+ } catch ( error ) {
181+ if ( error instanceof Error ) {
182+ errorMessage = error . message
183+ } else {
184+ throw error
185+ }
186+ }
180187
181- await expect ( ensureListingExists ( themeDir , 'unknown' ) ) . rejects . toThrow ( 'Available presets: "Modern"' )
182- await expect ( ensureListingExists ( themeDir , 'unknown' ) ) . rejects . toThrow ( '"Classic"' )
188+ // Then
189+ expect ( errorMessage ) . toContain ( 'Listing preset "unknown" was not found.' )
190+ expect ( errorMessage ) . toContain ( 'Available presets:' )
191+ expect ( errorMessage ) . toContain ( '"Modern"' )
192+ expect ( errorMessage ) . toContain ( '"Classic"' )
183193 } )
184194 } )
185195
@@ -192,5 +202,17 @@ describe('theme-listing', () => {
192202 await expect ( ensureListingExists ( themeDir , 'unknown' ) ) . rejects . toThrow ( 'No presets found under "listings/"' )
193203 } )
194204 } )
205+
206+ test ( 'throws with no presets message when listings directory exists but is empty' , async ( ) => {
207+ await inTemporaryDirectory ( async ( tmpDir ) => {
208+ // Given
209+ const themeDir = joinPath ( tmpDir , 'theme' )
210+ const listingsRoot = joinPath ( themeDir , 'listings' )
211+ await mkdir ( listingsRoot , { recursive : true } )
212+
213+ // When / Then
214+ await expect ( ensureListingExists ( themeDir , 'unknown' ) ) . rejects . toThrow ( 'No presets found under "listings/"' )
215+ } )
216+ } )
195217 } )
196218} )
0 commit comments