@@ -297,6 +297,39 @@ class UserDBSpec {
297297 expect ( result . some ( ( t ) => t . tokenHash === token . tokenHash ) ) . to . be . true ;
298298 expect ( result . some ( ( t ) => t . tokenHash === token2 . tokenHash ) ) . to . be . true ;
299299 }
300+
301+ @test ( timeout ( 10000 ) )
302+ public async findUserIdsNotYetMigratedToFgaVersion ( ) {
303+ let user1 = await this . db . newUser ( ) ;
304+ user1 . name = "ABC" ;
305+ user1 . fgaRelationshipsVersion = 0 ;
306+ user1 = await this . db . storeUser ( user1 ) ;
307+
308+ let user2 = await this . db . newUser ( ) ;
309+ user2 . name = "ABC2" ;
310+ user2 . fgaRelationshipsVersion = 1 ;
311+ user2 = await this . db . storeUser ( user2 ) ;
312+
313+ let user3 = await this . db . newUser ( ) ;
314+ user3 . name = "ABC3" ;
315+ user3 . fgaRelationshipsVersion = 0 ;
316+ user3 = await this . db . storeUser ( user3 ) ;
317+
318+ const result = await this . db . findUserIdsNotYetMigratedToFgaVersion ( 1 , 10 ) ;
319+ expect ( result ) . to . not . be . undefined ;
320+ expect ( result . length ) . to . eq ( 2 ) ;
321+ expect ( result . some ( ( id ) => id === user1 . id ) ) . to . be . true ;
322+ expect ( result . some ( ( id ) => id === user2 . id ) ) . to . be . false ;
323+ expect ( result . some ( ( id ) => id === user3 . id ) ) . to . be . true ;
324+
325+ const result2 = await this . db . findUserIdsNotYetMigratedToFgaVersion ( 1 , 1 ) ;
326+ expect ( result2 ) . to . not . be . undefined ;
327+ expect ( result2 . length ) . to . eq ( 1 ) ;
328+
329+ const result3 = await this . db . findUserIdsNotYetMigratedToFgaVersion ( 2 , 10 ) ;
330+ expect ( result3 ) . to . not . be . undefined ;
331+ expect ( result3 . length ) . to . eq ( 3 ) ;
332+ }
300333}
301334
302335namespace TestData {
0 commit comments