@@ -5,7 +5,7 @@ import {describe, expect, vi, test} from 'vitest'
55vi . mock ( '@shopify/cli-kit/node/ui' )
66
77describe ( 'confirmExportPrompt' , ( ) => {
8- test ( 'returns true when user confirms' , async ( ) => {
8+ test ( 'returns true when user confirms export to new file ' , async ( ) => {
99 const toFile = 'data.sqlite'
1010 const fromStore = 'shop.myshopify.com'
1111 const message = `Export data from ${ fromStore } to ${ toFile } ?`
@@ -14,7 +14,7 @@ describe('confirmExportPrompt', () => {
1414
1515 vi . mocked ( renderConfirmationPrompt ) . mockResolvedValue ( true )
1616
17- const result = await confirmExportPrompt ( fromStore , toFile )
17+ const result = await confirmExportPrompt ( fromStore , toFile , false )
1818
1919 expect ( renderConfirmationPrompt ) . toHaveBeenCalledWith ( {
2020 message,
@@ -24,11 +24,41 @@ describe('confirmExportPrompt', () => {
2424 expect ( result ) . toBe ( true )
2525 } )
2626
27- test ( 'returns false when user cancels' , async ( ) => {
27+ test ( 'returns false when user cancels export to new file ' , async ( ) => {
2828 const toFile = 'export.sqlite'
2929 const fromStore = 'test-shop.myshopify.com'
3030 vi . mocked ( renderConfirmationPrompt ) . mockResolvedValue ( false )
31- const result = await confirmExportPrompt ( fromStore , toFile )
31+ const result = await confirmExportPrompt ( fromStore , toFile , false )
32+ expect ( result ) . toBe ( false )
33+ } )
34+
35+ test ( 'returns true when user confirms export to existing file' , async ( ) => {
36+ const toFile = 'data.sqlite'
37+ const fromStore = 'shop.myshopify.com'
38+ const message = [
39+ `Export data from ${ fromStore } to ${ toFile } ` ,
40+ { warn : `\n"${ toFile } " already exists do you want to overwrite it?` } ,
41+ ]
42+ const confirmationMessage = 'Yes, export and overwrite'
43+ const cancellationMessage = 'Cancel'
44+
45+ vi . mocked ( renderConfirmationPrompt ) . mockResolvedValue ( true )
46+
47+ const result = await confirmExportPrompt ( fromStore , toFile , true )
48+
49+ expect ( renderConfirmationPrompt ) . toHaveBeenCalledWith ( {
50+ message,
51+ confirmationMessage,
52+ cancellationMessage,
53+ } )
54+ expect ( result ) . toBe ( true )
55+ } )
56+
57+ test ( 'returns false when user cancels export to existing file' , async ( ) => {
58+ const toFile = 'export.sqlite'
59+ const fromStore = 'test-shop.myshopify.com'
60+ vi . mocked ( renderConfirmationPrompt ) . mockResolvedValue ( false )
61+ const result = await confirmExportPrompt ( fromStore , toFile , true )
3262 expect ( result ) . toBe ( false )
3363 } )
3464} )
0 commit comments