@@ -11,10 +11,11 @@ import {describe, expect, test, vi, beforeEach, afterEach} from 'vitest'
1111import { buildTheme } from '@shopify/cli-kit/node/themes/factories'
1212import { createEvent } from 'h3'
1313import * as output from '@shopify/cli-kit/node/output'
14+ import { fetchChecksums } from '@shopify/cli-kit/node/themes/api'
1415import { IncomingMessage , ServerResponse } from 'node:http'
1516import { Socket } from 'node:net'
1617
17- vi . mock ( '@shopify/cli-kit/node/themes/api' , ( ) => ( { fetchChecksums : ( ) => Promise . resolve ( [ ] ) } ) )
18+ vi . mock ( '@shopify/cli-kit/node/themes/api' , ( ) => ( { fetchChecksums : vi . fn ( ( ) => Promise . resolve ( [ ] ) ) } ) )
1819vi . mock ( './remote-theme-watcher.js' )
1920vi . mock ( './storefront-renderer.js' )
2021vi . spyOn ( output , 'outputDebug' )
@@ -187,6 +188,22 @@ describe('setupDevServer', () => {
187188 } )
188189 } )
189190
191+ test ( 'should catch errors from fetchChecksums and reject backgroundJobPromise' , async ( ) => {
192+ // Given
193+ const context : DevServerContext = {
194+ ...defaultServerContext ,
195+ }
196+ const expectedError = new Error ( 'Failed to fetch checksums from API' )
197+
198+ vi . mocked ( fetchChecksums ) . mockRejectedValueOnce ( expectedError )
199+
200+ // When
201+ const { backgroundJobPromise} = setupDevServer ( developmentTheme , context )
202+
203+ // Then
204+ await expect ( backgroundJobPromise ) . rejects . toThrow ( 'Failed to fetch checksums from API' )
205+ } )
206+
190207 describe ( 'request handling' , async ( ) => {
191208 const context = { ...defaultServerContext }
192209 const server = setupDevServer ( developmentTheme , context )
0 commit comments