@@ -48,7 +48,7 @@ fn group() -> Result<MozilliansGroup, Error> {
4848}
4949
5050#[ actix_rt:: test]
51- async fn create ( ) -> Result < ( ) , Error > {
51+ async fn import ( ) -> Result < ( ) , Error > {
5252 reset ( ) ?;
5353 let ( service, cis_client) = test_app_and_cis ( ) . await ;
5454 let cis_client = Arc :: new ( cis_client) ;
@@ -60,7 +60,14 @@ async fn create() -> Result<(), Error> {
6060 let members = members ( ) ?;
6161 let connection = get_pool ( ) . get ( ) ?;
6262 import_group ( & connection, group) ?;
63- import_curators ( & connection, "import-test" , curators, cis_client. clone ( ) ) . await ?;
63+ import_curators (
64+ & connection,
65+ "import-test" ,
66+ curators,
67+ false ,
68+ cis_client. clone ( ) ,
69+ )
70+ . await ?;
6471
6572 let res = get ( & mut app, "/groups/api/v1/groups" , & creator) . await ;
6673 assert ! ( res. status( ) . is_success( ) ) ;
@@ -113,7 +120,14 @@ async fn create() -> Result<(), Error> {
113120 Some ( 0 )
114121 ) ;
115122
116- import_members ( & connection, "import-test" , members, cis_client. clone ( ) ) . await ?;
123+ import_members (
124+ & connection,
125+ "import-test" ,
126+ members,
127+ false ,
128+ cis_client. clone ( ) ,
129+ )
130+ . await ?;
117131
118132 let res = get (
119133 & mut app,
@@ -151,3 +165,122 @@ async fn create() -> Result<(), Error> {
151165
152166 Ok ( ( ) )
153167}
168+
169+ #[ actix_rt:: test]
170+ async fn import_staff_only ( ) -> Result < ( ) , Error > {
171+ reset ( ) ?;
172+ let ( service, cis_client) = test_app_and_cis ( ) . await ;
173+ let cis_client = Arc :: new ( cis_client) ;
174+ let app = App :: new ( ) . service ( service) ;
175+ let mut app = test:: init_service ( app) . await ;
176+ let creator = Soa :: from ( & basic_user ( 1 , true ) ) . creator ( ) . aal_medium ( ) ;
177+ let group = group ( ) ?;
178+ let curators = curators ( ) ?;
179+ let members = members ( ) ?;
180+ let connection = get_pool ( ) . get ( ) ?;
181+ import_group ( & connection, group) ?;
182+ import_curators (
183+ & connection,
184+ "import-test" ,
185+ curators,
186+ true ,
187+ cis_client. clone ( ) ,
188+ )
189+ . await ?;
190+
191+ let res = get ( & mut app, "/groups/api/v1/groups" , & creator) . await ;
192+ assert ! ( res. status( ) . is_success( ) ) ;
193+ assert_eq ! ( read_json( res) . await [ "groups" ] [ 0 ] [ "name" ] , "import-test" ) ;
194+
195+ let res = get (
196+ & mut app,
197+ "/groups/api/v1/groups/import-test/details" ,
198+ & creator,
199+ )
200+ . await ;
201+ assert ! ( res. status( ) . is_success( ) ) ;
202+ let j = read_json ( res) . await ;
203+ assert_eq ! ( j[ "group" ] [ "terms" ] , true ) ;
204+ assert_eq ! (
205+ j[ "group" ] [ "description" ] ,
206+ "import test group\n \n **Website:** [https://example.com/](https://example.com/)"
207+ ) ;
208+
209+ let res = get (
210+ & mut app,
211+ "/groups/api/v1/invitations/import-test/email" ,
212+ & creator,
213+ )
214+ . await ;
215+ assert ! ( res. status( ) . is_success( ) ) ;
216+ assert_eq ! ( read_json( res) . await [ "body" ] , "some \n invitation email" ) ;
217+
218+ let res = get (
219+ & mut app,
220+ "/groups/api/v1/members/import-test?r=Curator" ,
221+ & creator,
222+ )
223+ . await ;
224+ assert ! ( res. status( ) . is_success( ) ) ;
225+ assert_eq ! (
226+ read_json( res) . await [ "members" ] . as_array( ) . map( |a| a. len( ) ) ,
227+ Some ( 2 )
228+ ) ;
229+
230+ let res = get (
231+ & mut app,
232+ "/groups/api/v1/members/import-test?r=Member" ,
233+ & creator,
234+ )
235+ . await ;
236+ assert ! ( res. status( ) . is_success( ) ) ;
237+ assert_eq ! (
238+ read_json( res) . await [ "members" ] . as_array( ) . map( |a| a. len( ) ) ,
239+ Some ( 0 )
240+ ) ;
241+
242+ import_members (
243+ & connection,
244+ "import-test" ,
245+ members,
246+ true ,
247+ cis_client. clone ( ) ,
248+ )
249+ . await ?;
250+
251+ let res = get (
252+ & mut app,
253+ "/groups/api/v1/members/import-test?r=Curator" ,
254+ & creator,
255+ )
256+ . await ;
257+ assert ! ( res. status( ) . is_success( ) ) ;
258+ assert_eq ! (
259+ read_json( res) . await [ "members" ] . as_array( ) . map( |a| a. len( ) ) ,
260+ Some ( 2 )
261+ ) ;
262+
263+ let res = get (
264+ & mut app,
265+ "/groups/api/v1/members/import-test?r=Member" ,
266+ & creator,
267+ )
268+ . await ;
269+ assert ! ( res. status( ) . is_success( ) ) ;
270+ assert_eq ! (
271+ read_json( res) . await [ "members" ] . as_array( ) . map( |a| a. len( ) ) ,
272+ Some ( 4 )
273+ ) ;
274+
275+ let res = get (
276+ & mut app,
277+ "/groups/api/v1/groups/import-test/details" ,
278+ & creator,
279+ )
280+ . await ;
281+ assert ! ( res. status( ) . is_success( ) ) ;
282+ let j = read_json ( res) . await ;
283+ assert_eq ! ( j[ "group" ] [ "created" ] , "2019-10-24T17:56:21Z" ) ;
284+
285+ Ok ( ( ) )
286+ }
0 commit comments