@@ -2,6 +2,15 @@ import { type MetadataTemplateField } from '@box/metadata-editor';
22import { act , renderHook } from '../../../test-utils/testing-library' ;
33import useMetadataFieldSelection from '../hooks/useMetadataFieldSelection' ;
44
5+ const mockTargetLocation = [
6+ {
7+ itemId : 'item-1' ,
8+ page : 0 ,
9+ text : 'test text' ,
10+ boundingBox : { left : 0.1 , top : 0.2 , right : 0.5 , bottom : 0.6 } ,
11+ } ,
12+ ] ;
13+
514const createMockField = ( overrides : Partial < MetadataTemplateField > = { } ) : MetadataTemplateField => ( {
615 id : 'field-1' ,
716 key : 'testField' ,
@@ -34,7 +43,7 @@ describe('useMetadataFieldSelection', () => {
3443 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
3544
3645 act ( ( ) => {
37- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
46+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
3847 } ) ;
3948
4049 expect ( result . current . selectedMetadataFieldId ) . toBe ( 'field-1' ) ;
@@ -70,21 +79,22 @@ describe('useMetadataFieldSelection', () => {
7079 ] ) ;
7180 } ) ;
7281
73- test ( 'should not call showBoundingBoxHighlights when field has no targetLocation' , ( ) => {
82+ test ( 'should not select field or show highlights when field has no targetLocation' , ( ) => {
7483 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
7584
7685 act ( ( ) => {
7786 result . current . handleSelectMetadataField ( createMockField ( ) ) ;
7887 } ) ;
7988
89+ expect ( result . current . selectedMetadataFieldId ) . toBeNull ( ) ;
8090 expect ( mockShowBoundingBoxHighlights ) . not . toHaveBeenCalled ( ) ;
8191 } ) ;
8292
8393 test ( 'should deselect field and hide highlights when handleSelectMetadataField is called with null' , ( ) => {
8494 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
8595
8696 act ( ( ) => {
87- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
97+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
8898 } ) ;
8999
90100 expect ( result . current . selectedMetadataFieldId ) . toBe ( 'field-1' ) ;
@@ -101,7 +111,7 @@ describe('useMetadataFieldSelection', () => {
101111 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
102112
103113 act ( ( ) => {
104- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
114+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
105115 } ) ;
106116
107117 act ( ( ) => {
@@ -114,44 +124,24 @@ describe('useMetadataFieldSelection', () => {
114124 expect ( mockHideBoundingBoxHighlights ) . toHaveBeenCalled ( ) ;
115125 } ) ;
116126
117- test ( 'should not crash when getPreview is undefined' , ( ) => {
118- const { result } = renderHook ( ( ) => useMetadataFieldSelection ( undefined ) ) ;
119-
120- act ( ( ) => {
121- result . current . handleSelectMetadataField (
122- createMockField ( {
123- targetLocation : [
124- {
125- itemId : 'item-1' ,
126- page : 0 ,
127- text : 'test text' ,
128- boundingBox : { left : 0.1 , top : 0.2 , right : 0.5 , bottom : 0.6 } ,
129- } ,
130- ] ,
131- } ) ,
132- ) ;
133- } ) ;
134-
135- expect ( result . current . selectedMetadataFieldId ) . toBe ( 'field-1' ) ;
136- } ) ;
137-
138- test ( 'should not crash when getPreview returns undefined' , ( ) => {
127+ test ( 'should not select field or crash when getPreview returns undefined' , ( ) => {
139128 const getPreviewReturningUndefined = jest . fn ( ) . mockReturnValue ( undefined ) ;
140129 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreviewReturningUndefined ) ) ;
141130
142131 act ( ( ) => {
143- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
132+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
144133 } ) ;
145134
146- expect ( result . current . selectedMetadataFieldId ) . toBe ( 'field-1' ) ;
135+ expect ( result . current . selectedMetadataFieldId ) . toBeNull ( ) ;
136+ expect ( mockShowBoundingBoxHighlights ) . not . toHaveBeenCalled ( ) ;
147137 } ) ;
148138
149139 describe ( 'click outside behavior' , ( ) => {
150140 test ( 'should deselect when clicking outside metadata field and bounding box elements' , ( ) => {
151141 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
152142
153143 act ( ( ) => {
154- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
144+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
155145 } ) ;
156146
157147 expect ( result . current . selectedMetadataFieldId ) . toBe ( 'field-1' ) ;
@@ -169,7 +159,7 @@ describe('useMetadataFieldSelection', () => {
169159 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
170160
171161 act ( ( ) => {
172- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
162+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
173163 } ) ;
174164
175165 const metadataFieldElement = document . createElement ( 'div' ) ;
@@ -190,7 +180,7 @@ describe('useMetadataFieldSelection', () => {
190180 const { result } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
191181
192182 act ( ( ) => {
193- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
183+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
194184 } ) ;
195185
196186 const boundingBoxElement = document . createElement ( 'div' ) ;
@@ -222,7 +212,7 @@ describe('useMetadataFieldSelection', () => {
222212 const { result, unmount } = renderHook ( ( ) => useMetadataFieldSelection ( getPreview ) ) ;
223213
224214 act ( ( ) => {
225- result . current . handleSelectMetadataField ( createMockField ( ) ) ;
215+ result . current . handleSelectMetadataField ( createMockField ( { targetLocation : mockTargetLocation } ) ) ;
226216 } ) ;
227217
228218 unmount ( ) ;
0 commit comments