def METHOD_NAME(
    permission_manage_apps,
    staff_api_client,
    app_with_token,
    permission_manage_products,
):
    """Ensure user can't delete app token with wider scope of permissions."""
    query = APP_TOKEN_DELETE_MUTATION
    token = app_with_token.tokens.get()
    app_with_token.permissions.add(permission_manage_products)
    id = graphene.Node.to_global_id("AppToken", token.id)
    variables = {"id": id}
    # for staff user
    response = staff_api_client.post_graphql(
        query, variables=variables, permissions=(permission_manage_apps,)
    )
    content = get_graphql_content(response)
    data = content["data"]["appTokenDelete"]
    errors = data["errors"]
    assert not data["appToken"]
    assert len(errors) == 1
    error = errors[0]
    assert error["code"] == AppErrorCode.OUT_OF_SCOPE_APP.name
    assert error["field"] == "id"
    assert AppToken.objects.filter(id=token.id).exists()