Из списка каталога к сохранённой цене

Ответы получены от MySQL через X Protocol. Учебные коллекции после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Карточек в списке2
Цена до сохранения1200
Цена после сохранения1390
Остаток сохранён4
Отрицательная цена отклоненада
После отказа цена прежняя1390
Неизвестная карточка отсутствуетда
HTML в названии экранированда
Документы и дополнительные наблюдения
{
    "list": [
        {
            "_id": "KIT-2",
            "name": "Набор <стойка> & крепёж",
            "price": 850,
            "stock": 2,
            "category": "workshop"
        },
        {
            "_id": "LED-1",
            "name": "Лампа «Тёплый свет»",
            "price": 1200,
            "stock": 4,
            "category": "workshop"
        }
    ],
    "before": {
        "_id": "LED-1",
        "name": "Лампа «Тёплый свет»",
        "price": 1200,
        "stock": 4,
        "category": "workshop"
    },
    "after": {
        "_id": "LED-1",
        "name": "Лампа «Тёплый свет»",
        "price": 1390,
        "stock": 4,
        "category": "workshop"
    },
    "invalid_input": "-7",
    "after_invalid": {
        "_id": "LED-1",
        "name": "Лампа «Тёплый свет»",
        "price": 1390,
        "stock": 4,
        "category": "workshop"
    },
    "missing": null,
    "escaped_name": "Набор &lt;стойка&gt; &amp; крепёж"
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.