@@ -8,54 +8,66 @@ function createMockOperation(overrides: Partial<BulkOperation> = {}): BulkOperat
88 return {
99 id : 'gid://shopify/BulkOperation/123' ,
1010 status : 'CREATED' ,
11+ type : 'QUERY' ,
1112 errorCode : null ,
1213 createdAt : '2024-01-01T00:00:00Z' ,
1314 completedAt : null ,
1415 objectCount : '0' ,
1516 url : null ,
17+ partialDataUrl : null ,
1618 ...overrides ,
1719 }
1820}
1921
2022describe ( 'formatBulkOperationStatus' , ( ) => {
21- test ( 'formats RUNNING status with object count' , ( ) => {
22- const result = formatBulkOperationStatus ( createMockOperation ( { status : 'RUNNING' , objectCount : 42 } ) )
23- expect ( result . value ) . toContain ( 'Bulk operation in progress...' )
24- expect ( result . value ) . toContain ( '(42 objects)' )
23+ test ( 'formats RUNNING status for query with object count' , ( ) => {
24+ const result = formatBulkOperationStatus ( createMockOperation ( { status : 'RUNNING' , type : 'QUERY' , objectCount : '42' } ) )
25+ expect ( result . value ) . toContain ( 'Bulk operation in progress' )
26+ expect ( result . value ) . toContain ( '(42 objects read)' )
27+ } )
28+
29+ test ( 'formats RUNNING status for mutation with object count' , ( ) => {
30+ const result = formatBulkOperationStatus (
31+ createMockOperation ( { status : 'RUNNING' , type : 'MUTATION' , objectCount : '42' } ) ,
32+ )
33+ expect ( result . value ) . toContain ( 'Bulk operation in progress' )
34+ expect ( result . value ) . toContain ( '(42 objects written)' )
2535 } )
2636
2737 test ( 'formats CREATED status' , ( ) => {
2838 const result = formatBulkOperationStatus ( createMockOperation ( { status : 'CREATED' } ) )
29- expect ( result . value ) . toBe ( 'Starting... ' )
39+ expect ( result . value ) . toBe ( 'Starting' )
3040 } )
3141
3242 test ( 'formats COMPLETED status' , ( ) => {
33- const result = formatBulkOperationStatus ( createMockOperation ( { status : 'COMPLETED' , objectCount : 100 } ) )
43+ const result = formatBulkOperationStatus ( createMockOperation ( { status : 'COMPLETED' , objectCount : ' 100' } ) )
3444 expect ( result . value ) . toContain ( 'Bulk operation succeeded:' )
3545 expect ( result . value ) . toContain ( '100 objects' )
3646 } )
3747
3848 test ( 'formats FAILED status with error code' , ( ) => {
3949 const result = formatBulkOperationStatus (
40- createMockOperation ( { status : 'FAILED' , objectCount : 10 , errorCode : 'ACCESS_DENIED' } ) ,
50+ createMockOperation ( { status : 'FAILED' , objectCount : '10' , errorCode : 'ACCESS_DENIED' } ) ,
4151 )
4252 expect ( result . value ) . toContain ( 'Bulk operation failed.' )
4353 expect ( result . value ) . toContain ( 'Error: ACCESS_DENIED' )
4454 } )
4555
4656 test ( 'formats FAILED status without error code' , ( ) => {
47- const result = formatBulkOperationStatus ( createMockOperation ( { status : 'FAILED' , objectCount : 10 , errorCode : null } ) )
57+ const result = formatBulkOperationStatus (
58+ createMockOperation ( { status : 'FAILED' , objectCount : '10' , errorCode : null } ) ,
59+ )
4860 expect ( result . value ) . toContain ( 'Bulk operation failed.' )
4961 expect ( result . value ) . toContain ( 'Error: unknown' )
5062 } )
5163
5264 test ( 'formats CANCELING status' , ( ) => {
53- const result = formatBulkOperationStatus ( createMockOperation ( { status : 'CANCELING' , objectCount : 5 } ) )
65+ const result = formatBulkOperationStatus ( createMockOperation ( { status : 'CANCELING' , objectCount : '5' } ) )
5466 expect ( result . value ) . toBe ( 'Bulk operation canceling...' )
5567 } )
5668
5769 test ( 'formats CANCELED status' , ( ) => {
58- const result = formatBulkOperationStatus ( createMockOperation ( { status : 'CANCELED' , objectCount : 5 } ) )
70+ const result = formatBulkOperationStatus ( createMockOperation ( { status : 'CANCELED' , objectCount : '5' } ) )
5971 expect ( result . value ) . toBe ( 'Bulk operation canceled.' )
6072 } )
6173
0 commit comments