def METHOD_NAME(
    staff_api_client,
    permission_manage_apps,
    permission_manage_users,
    permission_manage_gift_card,
    gift_card,
):
    # given
    staff_user = staff_api_client.user
    gift_card.expiry_date = date.today() - timedelta(days=1)
    gift_card.save(update_fields=["expiry_date"])
    gift_card_id = graphene.Node.to_global_id("GiftCard", gift_card.id)
    message = "nuclear note"
    variables = {"id": gift_card_id, "message": message}
    # when
    response = staff_api_client.post_graphql(
        GIFT_CARD_ADD_NOTE_MUTATION,
        variables,
        permissions=[
            permission_manage_apps,
            permission_manage_users,
            permission_manage_gift_card,
        ],
    )
    # then
    content = get_graphql_content(response)
    data = content["data"]["giftCardAddNote"]
    assert data["giftCard"]["id"] == gift_card_id
    assert data["event"]["user"]["email"] == staff_user.email
    assert data["event"]["app"] is None
    assert data["event"]["message"] == message
    event = gift_card.events.get()
    assert event.type == GiftCardEvents.NOTE_ADDED
    assert event.user == staff_user
    assert event.parameters == {"message": message}