Repository navigation
fix(build): объявить рабочие параметры сниппетов в snippets.php (#799) - #836
Open
Ibochkarev wants to merge 1 commit into
Open
Ibochkarev wants to merge 1 commit into
Ibochkarev wants to merge 1 commit into
Conversation
Четыре параметра msProducts (includeOptions, withCurrency, usePackages, tplWrapper) работали, но не были объявлены — в админке их не предложить, а resolver_08 не проставляет desc. По результатам сверки остальных сниппетов добавлены msGallery.thumbnails, msCustomer.service/return, msOrder.includeCustomerAddresses, msGetOrder.payStatus, msProductOptions.return и описания для formatPrices/hideOnThanks. Новый smoke-тест не даёт объявлениям и лексикону разойтись снова.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
Четыре рабочих параметра
msProductsобъявлены в_build/elements/snippets.phpи получили описания из лексикона. Заодно сделана сверка остальных сниппетов — как и просили в issue, четыре расхождения нашлись не при целенаправленном поиске.msProducts(из issue):includeOptions''withCurrencyfalseusePackages''tplWrapper''Значения совпадают с дефолтами в коде (
$scriptProperties['withCurrency'],getOption('payStatus', $scriptProperties, '1')и т.д.), поэтому поведение вызовов не меняется — меняется только их видимость в админке. ДляwithCurrencyтип взят у уже объявленногоmsOrderTotal.withCurrency.Сверка остальных сниппетов — добавлено:
msGallery.thumbnails— фильтр размеров превью;msCustomer.service(list: profile/addresses/orders) иmsCustomer.return— у этого сниппета массивpropertiesбыл вообще пуст, то есть сетка свойств в админке была пустой;msOrder.includeCustomerAddresses(combo-boolean,true);msGetOrder.payStatus('1');msProductOptions.return('').Сверка описаний:
formatPricesиhideOnThanksбыли объявлены, но без ключейms3_prop_format_prices/ms3_prop_hide_on_thanks— в сетке показывался сырой ключ. Ключи добавлены.Новый smoke-тест
tests/SnippetPropertiesDeclaredTest.phpзакрывает класс ошибки: у каждого объявленного свойства есть ключms3_prop_<snake_case>в en и ru, и каждый параметр, который сниппет читает из$scriptProperties/getOption(..., $scriptProperties, ...), объявлен (кроме явного allowlist). 87 объявлений × 2 языка.Всего 10 новых ключей лексикона в обоих языках:
include_options,with_currency,use_packages,tpl_wrapper,thumbnails,include_customer_addresses,pay_status,service,format_prices,hide_on_thanks.Тип изменений
Связанные Issues
Closes #799
Как это было протестировано?
Опишите тесты, которые вы провели для проверки изменений.
core/components/minishop3/tests/SnippetPropertiesDeclaredTest.php: пары ключей ru/en, покрытие всех$scriptProperties-чтений, allowlist с объяснениями. Во время разработки тест поймал необъявленныйmsProductOptions.return, который сразу добавлен..github/workflows/ci.yml):cd core/components/minishop3 composer install composer ci:php composer stancomposer ci:php—OK smoke tests (122), PHPUnitTests: 738, Assertions: 2625. В прогоне остаются 3 падения вtests/Integration/WebApi/HeadlessStorefrontErrorsTest.php(testCartAddOptionsJsonString,testChangeOptionJsonStringOptionsReturns200,testCartWithoutTokenAndFailedAutoMintReturns500) — они воспроизводятся и на чистомbetaбез этого изменения, к правке отношения не имеют.composer stan—[OK] No errors. JS/Vue не затрагивался,npm run lint:ciдля этой правки не требуется.composer ci:php/composer test,npm run lint:ci,composer stan/ GitHub Actions CI)Конфигурация тестирования:
ad7da5fb, веткаbeta)Скриншоты (если применимо)
msProducts30 параметров,withCurrency/tplWrapper/includeOptions/usePackagesне видныmsCustomerвместо пустой сеткиserviceиreturnЧеклист
composer stan/ CI jobPHPStan)npm run lint:ciдля Vue) — JS не менялсяДополнительные заметки
Три момента, найденных при сверке, намеренно не трогал — они меняют поведение, а не только метаданные:
msGallery.returnобъявлен со значениемtpl, а код при отсутствии свойства берётdata(ms3_gallery.php:77). Объявленное значение побеждает, поэтому фактический дефолт сейчасtpl. «Исправлять» наdataнельзя без обсуждения — это сломает сайты, полагающиеся на текущее поведение. Нужен отдельный issue.msGetOrder.idобъявлен быть не может:$orderIdentifier = $scriptProperties['id'] ?? $_GET['msorder'] ?? null, и объявленный дефолт''перекрыл бы фолбэк на query-параметр. Оставлено в allowlist теста с комментарием.msCustomer.tpl,orderTpl,detailTpl,addressTpl,formTpl,limitчитаются сервисами страниц, и дефолтtplу них свой для каждого раздела (tpl.msCustomer.profile/.orders/.addresses). Одно объявлениеtplна весь сниппет сделало бы дефолтом чанк чужого раздела, поэтому не объявлял; при желании — отдельная задача на раздельные имена видаtplProfile.Также в
lexicon/properties.inc.phpосталось 15 ключей miniShop2, не соответствующих ни одному объявленному свойству и ни разу не читаемых кодом (ms3_prop_tpl_row,ms3_prop_option_name,ms3_prop_fast_modeи др.). Удаление — отдельная задача по лексикону, здесь не делал, чтобы не мешать с правкой объявлений.