import pytest from audience_common.auth.account import Account, AccountAccess from campaigns.auth.dtos import User, UserId from campaigns.connectors.db import Database from campaigns.meta.handlers import ( GetFacebookUserPageForLabelHandler, GetFacebookUserPageForLabelRequest, ) from campaigns.meta.models import FacebookPageLabel from campaigns.meta.services import FacebookPageService from tests.unit.types import CreateModel @pytest.fixture def handler( db: Database, facebook_page_service: FacebookPageService, ) -> GetFacebookUserPageForLabelHandler: return GetFacebookUserPageForLabelHandler( db=db, facebook_page_service=facebook_page_service, ) async def test_get_facebook_user_page( handler: GetFacebookUserPageForLabelHandler, create_model: CreateModel, user_id: UserId, ) -> None: page_label = await create_model(FacebookPageLabel, subaccount_id=0) page = page_label.page account_access = AccountAccess(accounts=[page_label.account]) user = User(id=user_id, account_access=account_access) result = await handler.handle( GetFacebookUserPageForLabelRequest( user=user, page_id=page.id, account=Account(vendor_id=page_label.vendor_id, subaccount_id=0), ), ) assert result == page