@@ -17,8 +17,10 @@ mod tests {
1717 use chrono:: Duration ;
1818 use mas_data_model:: { Clock , Device , clock:: MockClock } ;
1919 use mas_storage:: {
20- RepositoryAccess ,
21- personal:: { PersonalAccessTokenRepository , PersonalSessionRepository } ,
20+ Pagination , RepositoryAccess ,
21+ personal:: {
22+ PersonalAccessTokenRepository , PersonalSessionFilter , PersonalSessionRepository ,
23+ } ,
2224 user:: UserRepository ,
2325 } ;
2426 use oauth2_types:: scope:: { OPENID , PROFILE , Scope } ;
@@ -46,30 +48,30 @@ mod tests {
4648 . await
4749 . unwrap ( ) ;
4850
49- // TODO: Session filters are not implemented for personal sessions yet
50- // let all = PersonalSessionFilter::new().for_user(&user );
51- // let active = all.active_only ();
52- // let finished = all.finished_only( );
53- // let pagination = Pagination::first(10);
54-
55- // assert_eq!(repo.personal_session().count(all ).await.unwrap(), 0);
56- // assert_eq!(repo.personal_session().count(active ).await.unwrap(), 0);
57- // assert_eq!(repo.personal_session().count(finished).await.unwrap(), 0);
58-
59- // let full_list = repo.compat_session ().list(all, pagination).await.unwrap();
60- // assert!(full_list.edges.is_empty());
61- // let active_list = repo
62- // .compat_session ()
63- // .list(active, pagination)
64- // .await
65- // .unwrap();
66- // assert!(active_list.edges.is_empty());
67- // let finished_list = repo
68- // .compat_session ()
69- // .list(finished, pagination)
70- // .await
71- // .unwrap();
72- // assert!(finished_list.edges.is_empty());
51+ let all = PersonalSessionFilter :: new ( ) . for_actor_user ( & bot_user ) ;
52+ let active = all . active_only ( ) ;
53+ let finished = all. finished_only ( ) ;
54+ let pagination = Pagination :: first ( 10 ) ;
55+
56+ assert_eq ! ( repo . personal_session ( ) . count ( all ) . await . unwrap ( ) , 0 ) ;
57+ assert_eq ! ( repo. personal_session( ) . count( active ) . await . unwrap( ) , 0 ) ;
58+ assert_eq ! ( repo. personal_session( ) . count( finished ) . await . unwrap( ) , 0 ) ;
59+
60+ // We start off with no sessions
61+ let full_list = repo. personal_session ( ) . list ( all, pagination) . await . unwrap ( ) ;
62+ assert ! ( full_list. edges. is_empty( ) ) ;
63+ let active_list = repo
64+ . personal_session ( )
65+ . list ( active, pagination)
66+ . await
67+ . unwrap ( ) ;
68+ assert ! ( active_list. edges. is_empty( ) ) ;
69+ let finished_list = repo
70+ . personal_session ( )
71+ . list ( finished, pagination)
72+ . await
73+ . unwrap ( ) ;
74+ assert ! ( finished_list. edges. is_empty( ) ) ;
7375
7476 // Start a personal session for that user
7577 let device = Device :: generate ( & mut rng) ;
@@ -95,27 +97,28 @@ mod tests {
9597 assert ! ( !session. is_revoked( ) ) ;
9698 assert_eq ! ( session. scope, scope) ;
9799
98- // TODO
99- // assert_eq!(repo.compat_session().count(all).await.unwrap(), 1);
100- // assert_eq!(repo.compat_session().count(active).await.unwrap(), 1);
101- // assert_eq!(repo.compat_session().count(finished).await.unwrap(), 0);
102-
103- // let full_list = repo.compat_session().list(all, pagination).await.unwrap();
104- // assert_eq!(full_list.edges.len(), 1);
105- // assert_eq!(full_list.edges[0].0.id, session.id);
106- // let active_list = repo
107- // .compat_session()
108- // .list(active, pagination)
109- // .await
110- // .unwrap();
111- // assert_eq!(active_list.edges.len(), 1);
112- // assert_eq!(active_list.edges[0].0.id, session.id);
113- // let finished_list = repo
114- // .compat_session()
115- // .list(finished, pagination)
116- // .await
117- // .unwrap();
118- // assert!(finished_list.edges.is_empty());
100+ assert_eq ! ( repo. personal_session( ) . count( all) . await . unwrap( ) , 1 ) ;
101+ assert_eq ! ( repo. personal_session( ) . count( active) . await . unwrap( ) , 1 ) ;
102+ assert_eq ! ( repo. personal_session( ) . count( finished) . await . unwrap( ) , 0 ) ;
103+
104+ let full_list = repo. personal_session ( ) . list ( all, pagination) . await . unwrap ( ) ;
105+ assert_eq ! ( full_list. edges. len( ) , 1 ) ;
106+ assert_eq ! ( full_list. edges[ 0 ] . node. id, session. id) ;
107+ assert ! ( full_list. edges[ 0 ] . node. is_valid( ) ) ;
108+ let active_list = repo
109+ . personal_session ( )
110+ . list ( active, pagination)
111+ . await
112+ . unwrap ( ) ;
113+ assert_eq ! ( active_list. edges. len( ) , 1 ) ;
114+ assert_eq ! ( active_list. edges[ 0 ] . node. id, session. id) ;
115+ assert ! ( active_list. edges[ 0 ] . node. is_valid( ) ) ;
116+ let finished_list = repo
117+ . personal_session ( )
118+ . list ( finished, pagination)
119+ . await
120+ . unwrap ( ) ;
121+ assert ! ( finished_list. edges. is_empty( ) ) ;
119122
120123 // Lookup the session and check it didn't change
121124 let session_lookup = repo
@@ -127,18 +130,9 @@ mod tests {
127130 assert_eq ! ( session_lookup. id, session. id) ;
128131 assert_eq ! ( session_lookup. owner_user_id, admin_user. id) ;
129132 assert_eq ! ( session_lookup. actor_user_id, bot_user. id) ;
133+ assert_eq ! ( session_lookup. scope, scope) ;
130134 assert ! ( session_lookup. is_valid( ) ) ;
131135 assert ! ( !session_lookup. is_revoked( ) ) ;
132- assert_eq ! ( session_lookup. scope, scope) ;
133-
134- // TODO
135- // assert_eq!(list.edges.len(), 1);
136- // let session_lookup = &list.edges[0].0;
137- // assert_eq!(session_lookup.id, session.id);
138- // assert_eq!(session_lookup.user_id, user.id);
139- // assert_eq!(session.device.as_ref().unwrap().as_str(), device_str);
140- // assert!(session_lookup.is_valid());
141- // assert!(!session_lookup.is_finished());
142136
143137 // Revoke the session
144138 let session = repo
@@ -149,29 +143,27 @@ mod tests {
149143 assert ! ( !session. is_valid( ) ) ;
150144 assert ! ( session. is_revoked( ) ) ;
151145
152- // TODO
153- // assert_eq!(repo.compat_session().count(all).await.unwrap(), 1);
154- // assert_eq!(repo.compat_session().count(active).await.unwrap(), 0);
155- // assert_eq!(repo.compat_session().count(finished).await.unwrap(), 1);
156-
157- // TODO
158- // let full_list = repo.compat_session().list(all, pagination).await.unwrap();
159- // assert_eq!(full_list.edges.len(), 1);
160- // assert_eq!(full_list.edges[0].0.id, session.id);
161- // let active_list = repo
162- // .compat_session()
163- // .list(active, pagination)
164- // .await
165- // .unwrap();
166- // assert!(active_list.edges.is_empty());
167- // let finished_list = repo
168- // .compat_session()
169- // .list(finished, pagination)
170- // .await
171- // .unwrap();
172- // assert_eq!(finished_list.edges.len(), 1);
173- // assert_eq!(finished_list.edges[0].0.id, session.id);
174- // assert!(session.is_revoked());
146+ assert_eq ! ( repo. personal_session( ) . count( all) . await . unwrap( ) , 1 ) ;
147+ assert_eq ! ( repo. personal_session( ) . count( active) . await . unwrap( ) , 0 ) ;
148+ assert_eq ! ( repo. personal_session( ) . count( finished) . await . unwrap( ) , 1 ) ;
149+
150+ let full_list = repo. personal_session ( ) . list ( all, pagination) . await . unwrap ( ) ;
151+ assert_eq ! ( full_list. edges. len( ) , 1 ) ;
152+ assert_eq ! ( full_list. edges[ 0 ] . node. id, session. id) ;
153+ let active_list = repo
154+ . personal_session ( )
155+ . list ( active, pagination)
156+ . await
157+ . unwrap ( ) ;
158+ assert ! ( active_list. edges. is_empty( ) ) ;
159+ let finished_list = repo
160+ . personal_session ( )
161+ . list ( finished, pagination)
162+ . await
163+ . unwrap ( ) ;
164+ assert_eq ! ( finished_list. edges. len( ) , 1 ) ;
165+ assert_eq ! ( finished_list. edges[ 0 ] . node. id, session. id) ;
166+ assert ! ( finished_list. edges[ 0 ] . node. is_revoked( ) ) ;
175167
176168 // Reload the session and check again
177169 let session_lookup = repo
0 commit comments