1919//! `MockCookieUser` and `MockTokenUser` provide an `as_model` function which returns a reference
2020//! to the underlying database model value (`User` and `ApiToken` respectively).
2121
22- use crate :: models:: { ApiToken , CreatedApiToken , User } ;
22+ use crate :: models:: { ApiToken , User } ;
2323use crate :: tests:: {
2424 CategoryListResponse , CategoryResponse , CrateList , CrateResponse , GoodCrate , OwnerResp ,
2525 OwnersResponse , VersionResponse ,
@@ -28,7 +28,7 @@ use std::future::Future;
2828
2929use http:: { Method , Request } ;
3030
31- use crate :: models:: token:: { CrateScope , EndpointScope } ;
31+ use crate :: models:: token:: { CrateScope , EndpointScope , NewApiToken } ;
3232use crate :: util:: token:: PlainToken ;
3333use axum:: body:: { Body , Bytes } ;
3434use axum:: extract:: connect_info:: MockConnectInfo ;
@@ -50,6 +50,7 @@ mod mock_request;
5050mod response;
5151mod test_app;
5252
53+ use crate :: controllers:: token:: CreatedApiToken ;
5354use mock_request:: MockRequest ;
5455pub use mock_request:: MockRequestExt ;
5556pub use response:: Response ;
@@ -320,16 +321,21 @@ impl MockCookieUser {
320321 ) -> MockTokenUser {
321322 let mut conn = self . app ( ) . db_conn ( ) . await ;
322323
323- let token = ApiToken :: insert_with_scopes (
324- & mut conn,
325- self . user . id ,
326- name,
327- crate_scopes,
328- endpoint_scopes,
329- expired_at,
330- )
331- . await
332- . unwrap ( ) ;
324+ let plaintext = PlainToken :: generate ( ) ;
325+
326+ let new_token = NewApiToken :: builder ( )
327+ . user_id ( self . user . id )
328+ . name ( name)
329+ . token ( plaintext. hashed ( ) )
330+ . maybe_crate_scopes ( crate_scopes)
331+ . maybe_endpoint_scopes ( endpoint_scopes)
332+ . maybe_expired_at ( expired_at)
333+ . build ( ) ;
334+
335+ let token = CreatedApiToken {
336+ plaintext,
337+ model : new_token. insert ( & mut conn) . await . unwrap ( ) ,
338+ } ;
333339
334340 MockTokenUser {
335341 app : self . app . clone ( ) ,
0 commit comments