import unittest from admin_app.db.models import StaffSession class StaffSessionModelTests(unittest.TestCase): def test_staff_session_declares_expected_table_and_columns(self): self.assertEqual(StaffSession.__tablename__, "staff_sessions") self.assertIn("staff_account_id", StaffSession.__table__.columns) self.assertIn("refresh_token_hash", StaffSession.__table__.columns) self.assertIn("expires_at", StaffSession.__table__.columns) self.assertIn("last_used_at", StaffSession.__table__.columns) self.assertIn("revoked_at", StaffSession.__table__.columns) self.assertIn("ip_address", StaffSession.__table__.columns) self.assertIn("user_agent", StaffSession.__table__.columns) def test_staff_session_uses_staff_account_foreign_key(self): foreign_keys = list(StaffSession.__table__.columns["staff_account_id"].foreign_keys) self.assertEqual(len(foreign_keys), 1) self.assertEqual(str(foreign_keys[0].target_fullname), "staff_accounts.id") if __name__ == "__main__": unittest.main()