Tilpasset JavaScript
Tilpasset er et tjek, du selv opretter. Du skriver et uddrag af JavaScript, Silktide kører det i browseren på hver side, det tester, og det, dit uddrag rapporterer, bliver til fund på disse sider.
Det gør det muligt at teste alt, som din organisation går op i, og som Silktide ikke tester som standard: en intern stilregel, et påkrævet sporingsuddrag, en forældet komponent, der ikke længere bør vises, og så videre.
Sådan løser du det
Fund fra dette tjek betyder det, dit uddrag afgør, at de betyder, så løsningen defineres af dig. Skriv message for hvert fund, så en kollega, der aldrig har set uddraget, ved, hvad der skal ændres.
Sådan tester Silktide dette
- Dit uddrag køres i browseren på hver side, Silktide tester, efter siden er
indlæst, som brødteksten i en
asyncJavaScript-funktion – så du kan brugeawaitogreturndirekte. - Det, dit uddrag returnerer, bliver omdannet til fund:
- Returner et array af objekter for at rapportere flere fund, som hver fremhæver et element på siden:
// Rapporter hvert billede, der er over 500px bredt, som et fund
const wide = [...document.querySelectorAll('img')].filter(img => img.width > 500);
return wide.map(img => ({
selector: 'img[src="' + img.getAttribute('src') + '"]',
text: img.getAttribute('src'),
severity: 'medium',
message: 'Billedet er bredere end 500px',
}));
- Hvert objekt kan indeholde en
selector(en CSS-vælger for det element, der skal fremhæves),text(det, der skal vises for fundet),severity(low,mediumellerhigh) og enmessage, der forklarer problemet. - Returner en almindelig streng for at rapportere ét fund med lav alvorlighedsgrad for siden.
- Returner et tomt array eller ingenting for at rapportere, at siden er i orden.
- Hvis uddraget udløser en fejl eller returnerer noget, der ikke understøttes, rapporterer tjekket fejlen på siden, så du kan fejlfinde uddraget.
Da uddraget køres i browseren, når siden downloades, træder ændringer af uddraget i kraft, næste gang siderne testes igen, ikke med det samme.
Fejlfinding
Mit uddrag virker i browserkonsollen, men ikke her
Uddraget er brødteksten i en funktion, så sætninger som return forventes på øverste niveau. Sørg for, at uddraget returnerer sine fund i stedet for at logge dem med console.log, som ikke indsamles.
Fund fremhæver ikke det rigtige element
Den selector, du returnerer, skal entydigt matche elementet på siden på det tidspunkt, hvor siden blev testet. Foretræk stabile attributter (id'er, data-*-attributter) frem for positionsvælgere som :nth-child, der ikke virker, når indhold flytter sig.