Skip to content

Commit ce7bcea

Browse files
committed
add more tests for ensureListingExists
1 parent 457145a commit ce7bcea

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

packages/theme/src/cli/utilities/theme-listing.test.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)