def METHOD_NAME(
    mocked_notify,
    user_api_client,
    channel_PLN,
    site_settings,
):
    # given
    redirect_url = "https://www.example.com"
    variables = {
        "redirectUrl": redirect_url,
        "channel": channel_PLN.slug,
    }
    user = user_api_client.user
    user.is_confirmed = False
    user.save(update_fields=["is_confirmed"])
    # when
    response = user_api_client.post_graphql(SEND_CONFIRMATION_EMAIL_MUTATION, variables)
    content = get_graphql_content(response)
    # then
    data = content["data"]["sendConfirmationEmail"]
    assert not data["errors"]
    token = default_token_generator.make_token(user)
    params = urlencode({"email": user.email, "token": token})
    confirm_url = prepare_url(params, redirect_url)
    expected_payload = {
        "user": get_default_user_payload(user),
        "token": token,
        "confirm_url": confirm_url,
        "recipient_email": user.email,
        "channel_slug": channel_PLN.slug,
        **get_site_context_payload(site_settings.site),
    }
    mocked_notify.assert_called_once_with(
        NotifyEventType.ACCOUNT_CONFIRMATION,
        payload=expected_payload,
        channel_slug=channel_PLN.slug,
    )
    user.refresh_from_db()
    assert user.last_confirm_email_request == timezone.now()