def METHOD_NAME(
    staff_api_client,
    warehouse_no_shipping_zone,
    shipping_zone,
    permission_manage_products,
    channel_PLN,
):
    # given
    assert not warehouse_no_shipping_zone.shipping_zones.all()
    staff_api_client.user.user_permissions.add(permission_manage_products)
    # remove all channels from the shipping zone
    shipping_zone.channels.clear()
    zone_id = graphene.Node.to_global_id("ShippingZone", shipping_zone.pk)
    variables = {
        "id": graphene.Node.to_global_id("Warehouse", warehouse_no_shipping_zone.pk),
        "shippingZoneIds": [
            graphene.Node.to_global_id("ShippingZone", shipping_zone.pk)
        ],
    }
    # when
    response = staff_api_client.post_graphql(
        MUTATION_ASSIGN_SHIPPING_ZONE_WAREHOUSE, variables=variables
    )
    # then
    content = get_graphql_content(response)
    errors = content["data"]["assignWarehouseShippingZone"]["errors"]
    assert len(errors) == 1
    assert errors[0]["code"] == WarehouseErrorCode.INVALID.name
    assert errors[0]["field"] == "shippingZones"
    assert errors[0]["shippingZones"] == [zone_id]