Un altro task in cerca di volontari: la test suite per la user interface

Fatemi fare una premessa: ho lavorato all’ IO-SDK da solo per quasi un anno e mi piace codificare e non avrei problemi a scrivere io il codice, ma sto cercando di ampliare il progetto e quindi ritengo il mo tempo meglio impiegato a… attivare e supportare nuovi contributor. Ci sto andando piano ma visto che i task aperti hanno gia’ trovato un volontario, eccone uno nuovo.

IO-SDK ha 3 test suite, uno per il launcher, uno per le azioni, e un test di integrazione.

Mancano dei test per la User Interface, quella che dicono che non si puo’ testare, ma non e’. vero si possono fare. Ho aggiunto recentemente il supporto per testare pure quella, usando Playwright ma c’e’ per ora un solo test. Non e’ per nulla difficile, si tratta di simulare delle interazioni dell’ utente con l’interfaccia.

E’ una roba da fare in javascript con playwright, e per un frontendista una skill preziosa.

I test da “arricchire” stanno qui: admin/test/playwright

Volontari sono benvenuti.

1 Mi Piace

Io non so programmare.
Ma posso propormi come UTONTO per delle prove…ed eventuali spunti di miglioramento funzionale.

1 Mi Piace

Buongiorno,

prendo in carica io il task :slight_smile:

ti consiglio (come ha fatto @pierluigi.dilorenzo) di usare il registratore di eventi e poi di ‘raffinarlo’

Ho iniziato con 3 test sulla pagina Home, Import Url e Single Message

Mi è arrivato un’email che la build fallisce, credo sia proprio per i test. Alcuni volutamente falliscono.

Sulla Single message fallisce il controllo di validità sul campo Markdown anche se richiesto lo accetta vuoto.

Sulla Import Url ho impostato un controllo di validità required sul campo Url, ma ovviamente ancora non è gestito.

Credo quindi la build fallisca per questo.

Playwright non è male fa un ottimo lavoro, ma ancora non ho ovviamente capito bene tutto. Quando non riesce a matchare un selettore va in timeout (questo perché rimane in attesa nel caso di cambi di stato degli elementi) e all’inzio capire come recuperare i selettori e capire cosa non va non è immediato.

Devo anche trovare un modo per non duplicare il codice di fill delle input che sono tutte uguali.

E’ un inizio

Purtroppo le “attese” in una User Interface sono… tutto.

I timeout nella mia esperienza avvengono quando aspetti per qualcosa che non arriva…

1 Mi Piace

Sì infatti per ora ogni volta che va in timeout vuol dire che avevo sbagliato a recuperare il selettore. Devo trovare se c’è un modo su Playwright per fare una lettura volutamente sincrona, statica del valore, ma mi pare che non c’è.

Devo capire però nel caso sono certo che c’è, tipo per verificare se all’inizio compare il messaggio “loading…” so che c’è, se faccio lo screenshot vedo che in quel momento c’è, ma il selettore va in timeout… non dovrebbe far troppo presto ed essere già stato tolto perché altrimenti non lo dovrei vedere sullo screenshot… devo capire e fare altre prove.

In ogni caso sì, la stragrande maggioranza delle volte è perché qualcosa non arriva, non c’è in quel momento. Lo documento nel readme dei test così chi viene dopo di me con i test non ci perde tempo e sa già :slight_smile: