Skip to content

How to unimock using delegate_by #38

@rsfunc

Description

@rsfunc

For example, I have two delegates,

#[cfg_attr(feature = "lets_mock", entrait(pub TsTraitImpl, delegate_by = DelegateByTsTrait, unimock=true, mock_api=TsTraitUnimock
))]
#[async_trait]
pub trait TsTrait {
async fn get_projects(&self) -> GetIssueResult<Vec>;
}

and

#[cfg_attr(feature = "lets_mock", entrait(pub TsEventImpl, delegate_by = DelegateByTsEvent, unimock=true, mock_api=TsEventUnimock
#[async_trait]
pub trait TsEventTrait {
async fn start_ticket_event(&self, ticket_id: Uuid, event: EventStart) -> PutIssueResult;
}

I have some starter code I want to call
pub async fn create_test_ts_server<A: Send + Sync + 'static>(app: Impl) -> anyhow::Result
where
Impl: TsTrait + TsEventTrait,
{
// start webserver via poem and inject Impl as extensions, etc
}

How can I mock this ?

let clauses = (
TsTraitUnimock::get_projects.next_call(matching!()).returns(Ok(vec![TsProject::example()])),
);
let app = Unimock::new(clauses);

    let server = create_test_ts_server(Impl::new(app)).await?;

Fails due missing DelegateByTsTrait and DelegateByTsEvent

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions