File tree Expand file tree Collapse file tree 3 files changed +111
-0
lines changed
crates/syn2mas/src/synapse_reader Expand file tree Collapse file tree 3 files changed +111
-0
lines changed Original file line number Diff line number Diff line change
1
+ INSERT INTO access_tokens
2
+ (
3
+ id,
4
+ user_id,
5
+ device_id,
6
+ token,
7
+ refresh_token_id,
8
+ used
9
+ )
10
+ VALUES
11
+ (
12
+ 42 ,
13
+ ' @alice:example.com' ,
14
+ ' ADEVICE' ,
15
+ ' syt_aaaaaaaaaaaaaa_aaaa' ,
16
+ 7 ,
17
+ TRUE
18
+ ),
19
+ (
20
+ 43 ,
21
+ ' @alice:example.com' ,
22
+ ' ADEVICE' ,
23
+ ' syt_AAAAAAAAAAAAAA_AAAA' ,
24
+ 8 ,
25
+ FALSE
26
+ );
27
+
28
+ INSERT INTO refresh_tokens
29
+ (
30
+ id,
31
+ user_id,
32
+ device_id,
33
+ token,
34
+ next_token_id,
35
+ expiry_ts,
36
+ ultimate_session_expiry_ts
37
+ )
38
+ VALUES
39
+ (
40
+ 7 ,
41
+ ' @alice:example.com' ,
42
+ ' ADEVICE' ,
43
+ ' syr_bbbbbbbbbbbbb_bbbb' ,
44
+ 8 ,
45
+ 1738096199000 ,
46
+ 1778096199000
47
+ ),
48
+ (
49
+ 8 ,
50
+ ' @alice:example.com' ,
51
+ ' ADEVICE' ,
52
+ ' syr_cccccccccccc_cccc' ,
53
+ NULL ,
54
+ 1748096199000 ,
55
+ 1778096199000
56
+ );
Original file line number Diff line number Diff line change @@ -608,4 +608,33 @@ mod test {
608
608
) ;
609
609
assert_debug_snapshot ! ( refresh_tokens) ;
610
610
}
611
+
612
+ #[ sqlx:: test(
613
+ migrator = "MIGRATOR" ,
614
+ fixtures( "user_alice" , "access_token_alice_with_unused_refresh_token" )
615
+ ) ]
616
+ async fn test_read_access_and_unused_refresh_tokens ( pool : PgPool ) {
617
+ let mut conn = pool. acquire ( ) . await . expect ( "failed to get connection" ) ;
618
+ let mut reader = SynapseReader :: new ( & mut conn, false )
619
+ . await
620
+ . expect ( "failed to make SynapseReader" ) ;
621
+
622
+ let access_tokens: BTreeSet < SynapseAccessToken > = reader
623
+ . read_unrefreshable_access_tokens ( )
624
+ . try_collect ( )
625
+ . await
626
+ . expect ( "failed to read Synapse access tokens" ) ;
627
+
628
+ let refresh_tokens: BTreeSet < SynapseRefreshableTokenPair > = reader
629
+ . read_refreshable_token_pairs ( )
630
+ . try_collect ( )
631
+ . await
632
+ . expect ( "failed to read Synapse refresh tokens" ) ;
633
+
634
+ assert ! (
635
+ access_tokens. is_empty( ) ,
636
+ "there are no unrefreshable access tokens"
637
+ ) ;
638
+ assert_debug_snapshot ! ( refresh_tokens) ;
639
+ }
611
640
}
Original file line number Diff line number Diff line change
1
+ -- -
2
+ source : crates / syn2mas / src / synapse_reader / mod .rs
3
+ expression : refresh_tokens
4
+ -- -
5
+ {
6
+ SynapseRefreshableTokenPair {
7
+ user_id : FullUserId (
8
+ " @alice:example.com" ,
9
+ ),
10
+ device_id : " ADEVICE" ,
11
+ access_token : " syt_AAAAAAAAAAAAAA_AAAA" ,
12
+ refresh_token : " syr_cccccccccccc_cccc" ,
13
+ valid_until_ms : None ,
14
+ last_validated : None ,
15
+ },
16
+ SynapseRefreshableTokenPair {
17
+ user_id : FullUserId (
18
+ " @alice:example.com" ,
19
+ ),
20
+ device_id : " ADEVICE" ,
21
+ access_token : " syt_aaaaaaaaaaaaaa_aaaa" ,
22
+ refresh_token : " syr_bbbbbbbbbbbbb_bbbb" ,
23
+ valid_until_ms : None ,
24
+ last_validated : None ,
25
+ },
26
+ }
You can’t perform that action at this time.
0 commit comments