def METHOD_NAME(mocker, peewee_db):
    mocker.patch(
        "robotoff.insights.annotate.get_product",
        return_value={"categories_tags": ["en:Salmons"]},
    )
    mock = mocker.patch("robotoff.off.update_product")
    with peewee_db:
        # an insight to be processed but already there
        id1, code1 = _create_insight(type="category", value_tag="en:Salmons")
        # a new category
        id2, code2 = _create_insight(type="category", value_tag="en:Big fish")
        # another new category
        id3, code3 = _create_insight(type="category", value_tag="en:Smoked Salmon")
    # run process
    process_insights()
    # insights processed
    with peewee_db:
        for id_ in [id1, id2, id3]:
            insight = ProductInsight.get(id=id_)
            assert insight.completed_at is not None
            assert insight.completed_at <= datetime.utcnow()
            assert insight.annotation == 1
    # update_product was called twice
    assert mock.call_count == 2
    mock.assert_any_call(
        {
            "code": code2,
            "add_categories": "en:Big fish",
            "comment": f"[robotoff] Adding category 'en:Big fish', ID: {id2} (automated edit)",
        },
        server_type=DEFAULT_SERVER_TYPE,
        auth=None,
    )
    mock.assert_any_call(
        {
            "code": code3,
            "add_categories": "en:Smoked Salmon",
            "comment": f"[robotoff] Adding category 'en:Smoked Salmon', ID: {id3} (automated edit)",
        },
        server_type=DEFAULT_SERVER_TYPE,
        auth=None,
    )