@@ -23,14 +23,121 @@ describe('useSigningOrder composable', () => {
2323 recalculateSigningOrders ( signers , 0 )
2424 expect ( signers [ 0 ] . signingOrder ) . toBe ( 1 )
2525 } )
26+
27+ it ( 'increments following signers when inserting at start' , ( ) => {
28+ const signers : Signer [ ] = [
29+ { signingOrder : 0 } ,
30+ { signingOrder : 1 } ,
31+ { signingOrder : 2 } ,
32+ ]
33+
34+ recalculateSigningOrders ( signers , 0 )
35+
36+ expect ( signers [ 0 ] . signingOrder ) . toBe ( 1 )
37+ expect ( signers [ 1 ] . signingOrder ) . toBe ( 2 )
38+ expect ( signers [ 2 ] . signingOrder ) . toBe ( 3 )
39+ } )
40+
41+ it ( 'assigns next order when adding at end' , ( ) => {
42+ const signers : Signer [ ] = [
43+ { signingOrder : 1 } ,
44+ { signingOrder : 2 } ,
45+ ]
46+
47+ recalculateSigningOrders ( signers , 1 )
48+
49+ expect ( signers [ 1 ] . signingOrder ) . toBe ( 2 )
50+ } )
51+
52+ it ( 'handles reordering with original orders when moving forward' , ( ) => {
53+ const signers : Signer [ ] = [
54+ { signingOrder : 1 } ,
55+ { signingOrder : 2 } ,
56+ { signingOrder : 3 } ,
57+ ]
58+
59+ recalculateSigningOrders ( signers , 2 , [ 1 , 2 , 3 ] , 0 )
60+
61+ expect ( signers [ 2 ] . signingOrder ) . toBeGreaterThanOrEqual ( 1 )
62+ } )
63+
64+ it ( 'handles reordering with original orders when moving backward' , ( ) => {
65+ const signers : Signer [ ] = [
66+ { signingOrder : 1 } ,
67+ { signingOrder : 2 } ,
68+ { signingOrder : 3 } ,
69+ ]
70+
71+ recalculateSigningOrders ( signers , 1 , [ 1 , 2 , 3 ] , 2 )
72+
73+ expect ( signers [ 1 ] . signingOrder ) . toBeGreaterThanOrEqual ( 1 )
74+ } )
75+
76+ it ( 'handles equal previous and next orders' , ( ) => {
77+ const signers : Signer [ ] = [
78+ { signingOrder : 1 } ,
79+ { signingOrder : 1 } ,
80+ { signingOrder : 1 } ,
81+ ]
82+
83+ recalculateSigningOrders ( signers , 1 )
84+
85+ expect ( signers [ 1 ] . signingOrder ) . toBeGreaterThanOrEqual ( 1 )
86+ } )
87+
88+ it ( 'handles descending orders' , ( ) => {
89+ const signers : Signer [ ] = [
90+ { signingOrder : 3 } ,
91+ { signingOrder : 2 } ,
92+ { signingOrder : 1 } ,
93+ ]
94+
95+ recalculateSigningOrders ( signers , 1 )
96+
97+ expect ( signers [ 1 ] . signingOrder ) . toBeGreaterThanOrEqual ( 1 )
98+ } )
2699 } )
27100
28101 describe ( 'normalizeSigningOrders' , ( ) => {
102+ it ( 'handles empty signers array' , ( ) => {
103+ const signers : Signer [ ] = [ ]
104+
105+ normalizeSigningOrders ( signers )
106+
107+ expect ( signers ) . toEqual ( [ ] )
108+ } )
109+
29110 it ( 'normalizes to start at 1' , ( ) => {
30111 const signers : Signer [ ] = [ { signingOrder : 5 } , { signingOrder : 6 } ]
31112 normalizeSigningOrders ( signers )
32113 expect ( signers [ 0 ] . signingOrder ) . toBe ( 1 )
33114 expect ( signers [ 1 ] . signingOrder ) . toBe ( 2 )
34115 } )
116+
117+ it ( 'handles negative orders' , ( ) => {
118+ const signers : Signer [ ] = [
119+ { signingOrder : - 1 } ,
120+ { signingOrder : 0 } ,
121+ ]
122+
123+ normalizeSigningOrders ( signers )
124+
125+ expect ( signers [ 0 ] . signingOrder ) . toBe ( 1 )
126+ expect ( signers [ 1 ] . signingOrder ) . toBe ( 2 )
127+ } )
128+
129+ it ( 'closes gaps in the sequence' , ( ) => {
130+ const signers : Signer [ ] = [
131+ { signingOrder : 1 } ,
132+ { signingOrder : 5 } ,
133+ { signingOrder : 10 } ,
134+ ]
135+
136+ normalizeSigningOrders ( signers )
137+
138+ expect ( signers [ 0 ] . signingOrder ) . toBe ( 1 )
139+ expect ( signers [ 1 ] . signingOrder ) . toBe ( 2 )
140+ expect ( signers [ 2 ] . signingOrder ) . toBe ( 3 )
141+ } )
35142 } )
36143} )
0 commit comments