File tree Expand file tree Collapse file tree 2 files changed +15
-12
lines changed
specifyweb/frontend/js_src/lib/components/DataModel Expand file tree Collapse file tree 2 files changed +15
-12
lines changed Original file line number Diff line number Diff line change @@ -191,14 +191,15 @@ describe('Collection Object business rules', () => {
191
191
await collectionObject . businessRuleManager ?. pendingPromise ;
192
192
} ) ;
193
193
194
- test ( 'CollectionObject -> catalogNumber is reset whenever existing CollectionObject -> collectionObjectType changes' , async ( ) => {
194
+ test ( 'CollectionObject -> catalogNumber is not reset whenever existing CollectionObject -> collectionObjectType changes' , async ( ) => {
195
195
const collectionObject = getBaseCollectionObject ( ) ;
196
- expect ( collectionObject . get ( 'catalogNumber' ) ) . toBe ( '123' ) ;
196
+ const expectedCatNumber = '123' ;
197
+ expect ( collectionObject . get ( 'catalogNumber' ) ) . toBe ( expectedCatNumber ) ;
197
198
collectionObject . set (
198
199
'collectionObjectType' ,
199
200
getResourceApiUrl ( 'CollectionObjectType' , 2 )
200
201
) ;
201
- expect ( collectionObject . get ( 'catalogNumber' ) ) . toBe ( '2022-######' ) ;
202
+ expect ( collectionObject . get ( 'catalogNumber' ) ) . toBe ( expectedCatNumber ) ;
202
203
// Wait for any pending promise to complete before test finishes
203
204
await collectionObject . businessRuleManager ?. pendingPromise ;
204
205
} ) ;
Original file line number Diff line number Diff line change @@ -182,15 +182,17 @@ export const businessRuleDefs: MappedBusinessRuleDefs = {
182
182
} ,
183
183
fieldChecks : {
184
184
collectionObjectType : async ( resource ) : Promise < undefined > => {
185
- const parser = resolveParser (
186
- resource . specifyTable . strictGetLiteralField ( 'catalogNumber' ) ,
187
- undefined ,
188
- resource
189
- ) ;
190
- // REFACTOR: non-silent set causes infinite loop and silent set still triggers save blocker when parser value is empty string
191
- resource . set ( 'catalogNumber' , parser . value as never , {
192
- silent : ( parser . value ?? '' ) === '' ,
193
- } ) ;
185
+ if ( resource . isNew ( ) ) {
186
+ const parser = resolveParser (
187
+ resource . specifyTable . strictGetLiteralField ( 'catalogNumber' ) ,
188
+ undefined ,
189
+ resource
190
+ ) ;
191
+ // REFACTOR: non-silent set causes infinite loop and silent set still triggers save blocker when parser value is empty string
192
+ resource . set ( 'catalogNumber' , parser . value as never , {
193
+ silent : ( parser . value ?? '' ) === '' ,
194
+ } ) ;
195
+ }
194
196
195
197
const determinations = resource . getDependentResource ( 'determinations' ) ;
196
198
if ( determinations === undefined || determinations . models . length === 0 )
You can’t perform that action at this time.
0 commit comments