@@ -13,7 +13,7 @@ import { TestUtils } from '../../../test-utils';
13
13
import { TestUserKeyPairs } from '../../../test-utils/utils' ;
14
14
15
15
function profilePicture ( ) {
16
- return { key : new Uint8Array ( range ( 0 , 32 ) ) , url : ` ${ Math . random ( ) } ` } ;
16
+ return { url : ` ${ Math . random ( ) * 10000 } ` , key : new Uint8Array ( range ( 0 , 32 ) ) } ;
17
17
}
18
18
19
19
function emptyMember ( pubkeyHex : PubkeyType ) : GroupMemberGet {
@@ -185,6 +185,7 @@ describe('libsession_metagroup', () => {
185
185
'memberStatus' ,
186
186
'nominatedAdmin' ,
187
187
'supplement' ,
188
+ 'profileUpdatedSeconds' ,
188
189
] . sort ( ) , // if you change this value, also make sure you add a test, testing that new field, below
189
190
'this test is designed to fail if you need to add tests to test a new field of libsession'
190
191
) ;
@@ -296,22 +297,39 @@ describe('libsession_metagroup', () => {
296
297
...emptyMember ( member ) ,
297
298
name : 'member name' ,
298
299
memberStatus : 'INVITE_SENDING' ,
300
+ profileUpdatedSeconds : 1 ,
301
+ } ) ;
302
+
303
+ // second change with same timestamp does not get applied
304
+ metaGroupWrapper . memberSetProfileDetails ( member , {
305
+ profilePicture : { key : new Uint8Array ( ) , url : '' } ,
306
+ name : 'new member name' ,
307
+ profileUpdatedSeconds : 1 ,
308
+ } ) ;
309
+ expect ( metaGroupWrapper . memberGetAll ( ) . length ) . to . be . deep . eq ( 1 ) ;
310
+ expect ( metaGroupWrapper . memberGetAll ( ) [ 0 ] ) . to . be . deep . eq ( {
311
+ ...emptyMember ( member ) ,
312
+ name : 'member name' ,
313
+ memberStatus : 'INVITE_SENDING' ,
314
+ profileUpdatedSeconds : 1 ,
299
315
} ) ;
300
316
} ) ;
301
317
302
318
it ( 'can add via profile picture set' , ( ) => {
303
319
const pic = profilePicture ( ) ;
304
320
metaGroupWrapper . memberConstructAndSet ( member ) ;
321
+ metaGroupWrapper . memberSetInviteAccepted ( member ) ;
305
322
metaGroupWrapper . memberSetProfileDetails ( member , {
306
323
profilePicture : pic ,
307
324
name : '' ,
308
- profileUpdatedSeconds : 1 ,
325
+ profileUpdatedSeconds : 1234 ,
309
326
} ) ;
310
327
expect ( metaGroupWrapper . memberGetAll ( ) . length ) . to . be . deep . eq ( 1 ) ;
311
328
const expected = {
312
329
...emptyMember ( member ) ,
313
- profilePicture : pic ,
314
- memberStatus : 'INVITE_SENDING' ,
330
+ profilePicture : { url : pic . url , key : Buffer . from ( pic . key ) } ,
331
+ memberStatus : 'INVITE_ACCEPTED' ,
332
+ profileUpdatedSeconds : 1234 ,
315
333
} ;
316
334
317
335
expect ( metaGroupWrapper . memberGetAll ( ) [ 0 ] ) . to . be . deep . eq ( expected ) ;
@@ -374,6 +392,24 @@ describe('libsession_metagroup', () => {
374
392
} ;
375
393
expect ( metaGroupWrapper . memberGetAll ( ) ) . to . be . deep . eq ( [ expected ] ) ;
376
394
} ) ;
395
+
396
+ it ( 'can set profileUpdatedSeconds' , ( ) => {
397
+ metaGroupWrapper . memberConstructAndSet ( member ) ;
398
+ metaGroupWrapper . memberSetProfileDetails ( member , {
399
+ name : 'member name' ,
400
+ profileUpdatedSeconds : 1234567 ,
401
+ profilePicture : { url : '' , key : new Uint8Array ( ) } ,
402
+ } ) ;
403
+ expect ( metaGroupWrapper . memberGetAll ( ) . length ) . to . be . deep . eq ( 1 ) ;
404
+ const expected : GroupMemberGet = {
405
+ ...emptyMember ( member ) ,
406
+ memberStatus : 'INVITE_SENDING' ,
407
+ name : 'member name' ,
408
+ profileUpdatedSeconds : 1234567 ,
409
+ profilePicture : { url : null , key : null } ,
410
+ } ;
411
+ expect ( metaGroupWrapper . memberGetAll ( ) ) . to . be . deep . eq ( [ expected ] ) ;
412
+ } ) ;
377
413
} ) ;
378
414
379
415
describe ( 'keys' , ( ) => {
0 commit comments