@@ -418,4 +418,65 @@ public static function invalidTokenDataProvider(): array
418418 ['Bearer 1ABC| ' ],
419419 ];
420420 }
421+
422+ public function test_last_used_at_is_not_tracked_when_disabled ()
423+ {
424+ $ factory = Mockery::mock (AuthFactory::class);
425+
426+ $ guard = new Guard ($ factory , null , 'users ' , false );
427+
428+ $ webGuard = Mockery::mock (stdClass::class);
429+
430+ $ factory ->shouldReceive ('guard ' )
431+ ->with ('web ' )
432+ ->andReturn ($ webGuard );
433+
434+ $ webGuard ->shouldReceive ('user ' )->once ()->andReturn (null );
435+
436+ $ request = Request::create ('/ ' , 'GET ' );
437+ $ request ->headers ->set ('Authorization ' , 'Bearer test ' );
438+
439+ $ token = PersonalAccessTokenFactory::new ()->for (
440+ $ user = UserFactory::new ()->create (), 'tokenable '
441+ )->create ([
442+ 'name ' => 'Test ' ,
443+ 'last_used_at ' => null ,
444+ ]);
445+
446+ $ returnedUser = $ guard ->__invoke ($ request );
447+
448+ $ this ->assertEquals ($ user ->id , $ returnedUser ->id );
449+ $ this ->assertEquals ($ token ->id , $ returnedUser ->currentAccessToken ()->id );
450+ $ this ->assertNull ($ returnedUser ->currentAccessToken ()->last_used_at );
451+ }
452+
453+ public function test_last_used_at_is_tracked_when_enabled ()
454+ {
455+ $ factory = Mockery::mock (AuthFactory::class);
456+
457+ $ guard = new Guard ($ factory , null , 'users ' , true );
458+
459+ $ webGuard = Mockery::mock (stdClass::class);
460+
461+ $ factory ->shouldReceive ('guard ' )
462+ ->with ('web ' )
463+ ->andReturn ($ webGuard );
464+
465+ $ webGuard ->shouldReceive ('user ' )->once ()->andReturn (null );
466+
467+ $ request = Request::create ('/ ' , 'GET ' );
468+ $ request ->headers ->set ('Authorization ' , 'Bearer test ' );
469+
470+ $ token = PersonalAccessTokenFactory::new ()->for (
471+ $ user = UserFactory::new ()->create (), 'tokenable '
472+ )->create ([
473+ 'name ' => 'Test ' ,
474+ ]);
475+
476+ $ returnedUser = $ guard ->__invoke ($ request );
477+
478+ $ this ->assertEquals ($ user ->id , $ returnedUser ->id );
479+ $ this ->assertEquals ($ token ->id , $ returnedUser ->currentAccessToken ()->id );
480+ $ this ->assertInstanceOf (DateTimeInterface::class, $ returnedUser ->currentAccessToken ()->last_used_at );
481+ }
421482}
0 commit comments