11import { describe , it , expect } from '@jest/globals' ;
2- import type { BumpInfo } from '../../types/BumpInfo' ;
32import { cloneObject } from '../../object/cloneObject' ;
4- import { makePackageInfos } from '../../__fixtures__/packageInfos' ;
5- import { getChange } from '../../__fixtures__/changeFiles' ;
63
74describe ( 'cloneObject' , ( ) => {
85 it . each < [ string , object | unknown [ ] ] > ( [
@@ -12,8 +9,6 @@ describe('cloneObject', () => {
129 [ 'object with null prototype' , Object . assign ( Object . create ( null ) , { a : 1 , b : '2' , c : true } ) ] ,
1310 [ 'empty array' , [ ] ] ,
1411 [ 'array' , [ 1 , '2' , true ] ] ,
15- [ 'set' , new Set ( [ 1 , 2 , 3 ] ) ] ,
16- [ 'object of sets' , { a : new Set ( [ 1 , 2 , 3 ] ) , b : new Set ( [ 'a' , 'b' , 'c' ] ) } ] ,
1712 ] ) ( 'clones %s' , ( desc , val ) => {
1813 const cloned = cloneObject ( val ) ;
1914 expect ( cloned ) . toEqual ( val ) ;
@@ -44,35 +39,6 @@ describe('cloneObject', () => {
4439 expect ( ( ) => cloneObject ( new Map ( ) ) ) . toThrow ( 'Unsupported object type found while cloning bump info: Map' ) ;
4540 class Foo { }
4641 expect ( ( ) => cloneObject ( new Foo ( ) ) ) . toThrow ( 'Unsupported object type found while cloning bump info: Foo' ) ;
47- } ) ;
48-
49- it ( 'clones bump info structure' , ( ) => {
50- const original : BumpInfo = {
51- // There's no attempt at consistency because it doesn't matter here
52- calculatedChangeTypes : { pkgA : 'minor' , pkgB : 'patch' } ,
53- packageInfos : makePackageInfos ( { a : { dependencies : { b : '^1.0.0' } } , b : { } } ) ,
54- changeFileChangeInfos : [
55- { change : getChange ( 'a' ) , changeFile : '' } ,
56- { change : getChange ( 'b' ) , changeFile : '' } ,
57- ] ,
58- packageGroups : { group1 : { packageNames : [ 'a' , 'b' ] , disallowedChangeTypes : null } } ,
59- dependentChangedBy : { a : new Set ( [ 'b' ] ) } ,
60- modifiedPackages : new Set ( [ 'a' ] ) ,
61- scopedPackages : new Set ( [ 'a' , 'b' ] ) ,
62- } ;
63-
64- const cloned = cloneObject ( original ) ;
65- expect ( cloned ) . toEqual ( original ) ;
66- expect ( cloned ) . not . toBe ( original ) ;
67- expect ( cloned . packageInfos ) . not . toBe ( original . packageInfos ) ;
68- expect ( cloned . packageInfos . a ) . not . toBe ( original . packageInfos . a ) ;
69- expect ( cloned . changeFileChangeInfos ) . not . toBe ( original . changeFileChangeInfos ) ;
70- expect ( cloned . changeFileChangeInfos [ 0 ] ) . not . toBe ( original . changeFileChangeInfos [ 0 ] ) ;
71- expect ( cloned . changeFileChangeInfos [ 0 ] . change ) . not . toBe ( original . changeFileChangeInfos [ 0 ] . change ) ;
72- expect ( cloned . packageGroups ) . not . toBe ( original . packageGroups ) ;
73- expect ( cloned . dependentChangedBy ) . not . toBe ( original . dependentChangedBy ) ;
74- expect ( cloned . dependentChangedBy . a ) . not . toBe ( original . dependentChangedBy . a ) ;
75- expect ( cloned . modifiedPackages ) . not . toBe ( original . modifiedPackages ) ;
76- expect ( cloned . scopedPackages ) . not . toBe ( original . scopedPackages ) ;
42+ expect ( ( ) => cloneObject ( new Set ( ) ) ) . toThrow ( 'Unsupported object type found while cloning bump info: Set' ) ;
7743 } ) ;
7844} ) ;
0 commit comments