@@ -17,7 +17,7 @@ import {FunctionConfigType} from '../extensions/specifications/function.js'
1717import { ExtensionBuildOptions } from '../../services/build/extension.js'
1818import { DeveloperPlatformClient } from '../../utilities/developer-platform-client.js'
1919import { joinPath } from '@shopify/cli-kit/node/path'
20- import { describe , expect , test } from 'vitest'
20+ import { describe , expect , test , vi } from 'vitest'
2121import { inTemporaryDirectory , readFile , mkdir , writeFile , fileExistsSync } from '@shopify/cli-kit/node/fs'
2222import { slugify } from '@shopify/cli-kit/common/string'
2323import { hashString , nonRandomUUID } from '@shopify/cli-kit/node/crypto'
@@ -232,6 +232,39 @@ describe('build', async () => {
232232 expect ( outputFileContent ) . toEqual ( '(()=>{})();' )
233233 } )
234234 } )
235+
236+ test ( 'does not copy shopify.extension.toml file when bundling theme extensions' , async ( ) => {
237+ await inTemporaryDirectory ( async ( tmpDir ) => {
238+ // Given
239+ const extension = await testThemeExtensions ( tmpDir )
240+
241+ const blocksDir = joinPath ( tmpDir , 'blocks' )
242+ await mkdir ( blocksDir )
243+
244+ await writeFile ( joinPath ( blocksDir , 'product.liquid' ) , '<div>Product block</div>' )
245+ await writeFile ( joinPath ( tmpDir , 'shopify.extension.toml' ) , '[extensions]' )
246+
247+ const bundleDirectory = joinPath ( tmpDir , 'bundle' )
248+ await mkdir ( bundleDirectory )
249+
250+ const options : ExtensionBuildOptions = {
251+ stdout : new Writable ( { write : vi . fn ( ) } ) ,
252+ stderr : new Writable ( { write : vi . fn ( ) } ) ,
253+ app : testApp ( ) ,
254+ environment : 'production' ,
255+ }
256+
257+ // When
258+ await extension . copyIntoBundle ( options , bundleDirectory )
259+
260+ // Then
261+ const outputTomlPath = joinPath ( extension . outputPath , 'shopify.extension.toml' )
262+ expect ( fileExistsSync ( outputTomlPath ) ) . toBe ( false )
263+
264+ const outputProductPath = joinPath ( extension . outputPath , 'blocks' , 'product.liquid' )
265+ expect ( fileExistsSync ( outputProductPath ) ) . toBe ( true )
266+ } )
267+ } )
235268} )
236269
237270describe ( 'deployConfig' , async ( ) => {
0 commit comments