Skip to content

Commit

Permalink
feat: check for improvement plan (#493)
Browse files Browse the repository at this point in the history
  • Loading branch information
tensor5 authored Jun 6, 2024
1 parent 35fa8fb commit ee1bbc6
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 0 deletions.
43 changes: 43 additions & 0 deletions src/audits/municipality/improvementPlan.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
import lighthouse from "lighthouse";

import { loadPageData } from "../../utils/utils";

const Audit = lighthouse.Audit;

const auditId = "municipality-performance-improvement-plan";

const improvementPlan = /piano di miglioramento del sito/i;

class LoadAudit extends Audit {
static get meta() {
return {
id: auditId,
title: "Il sito ha un link al piano di miglioramento nel footer",
failureTitle:
"Il sito non ha un link al piano di miglioramento nel footer",
description:
"Nel caso in cui il sito comunale presenti livelli di performance (media pesata di 6 metriche standard) inferiori a 50, secondo quanto calcolato e verificato tramite le [librerie Lighthouse](https://web.dev/performance-scoring/), il Comune pubblica sul sito comunale un «Piano di miglioramento del sito» che mostri, per ciascuna voce che impatta negativamente la performance, le azioni future di miglioramento della performance stessa e le relative tempistiche di realizzazione attese. RIFERIMENTI TECNICI E NORMATIVI: [Documentazione del Modello Comuni](https://docs.italia.it/italia/designers-italia/design-comuni-docs/it/versione-corrente/index.html), [Documentazione delle App di valutazione](https://docs.italia.it/italia/designers-italia/app-valutazione-modelli-docs/it/versione-attuale/requisiti-e-modalita-verifica-comuni.html#criterio-c-si-4-1-velocita-e-tempi-di-risposta).",
scoreDisplayMode: Audit.SCORING_MODES.BINARY,
requiredArtifacts: ["origin"],
};
}

static async audit(
artifacts: LH.Artifacts & { origin: string }
): Promise<LH.Audit.ProductBase> {
const url = artifacts.origin;

const $ = await loadPageData(url);
const footer = $("footer").text();

if (footer.match(improvementPlan)) {
return { score: 1 };
} else {
return { score: 0.5 };
}
}
}

module.exports = LoadAudit;
9 changes: 9 additions & 0 deletions src/config/municipality/auditConfig-local.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
import defaultConfig from "lighthouse/lighthouse-core/config/default-config.js";

import {
commonGatherersFolder,
municipalityAuditsFolder,
Expand Down Expand Up @@ -172,6 +176,7 @@ export default {
municipalityAuditsFolder + "/metatagAudit.js",
municipalityAuditsFolder + "/licenseAndAttributionAudit.js",
municipalityAuditsFolder + "/userExperienceEvaluation.js",
municipalityAuditsFolder + "/improvementPlan.js",

municipalityInformativeAuditsFolder +
"/accessibilityDeclarationIsPresentAudit.js",
Expand All @@ -192,6 +197,10 @@ export default {
'Pacchetto Cittadino Informato: criterio "C.SI.4.1 - Velocità e tempi di risposta"',
description:
"CONDIZIONI DI SUCCESSO: il sito presenta livelli di prestazioni (media pesata di 6 metriche standard) pari o superiori a 50. Se il punteggio è inferiore a 50, il Comune deve pubblicare sul sito un “Piano di miglioramento del sito” raggiungibile dal footer che mostri, per ciascuna voce che impatta negativamente le prestazioni, le azioni future di miglioramento e le relative tempistiche di realizzazione attese; RIFERIMENTI TECNICI E NORMATIVI: [Documentazione del Modello Comuni](https://docs.italia.it/italia/designers-italia/design-comuni-docs/).",
auditRefs: [
...defaultConfig.categories.performance.auditRefs,
{ id: "municipality-performance-improvement-plan" },
],
},

modelComplianceInformation: {
Expand Down
9 changes: 9 additions & 0 deletions src/config/municipality/auditConfig-online.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
import defaultConfig from "lighthouse/lighthouse-core/config/default-config.js";

import {
commonGatherersFolder,
commonAuditsFolder,
Expand Down Expand Up @@ -176,6 +180,7 @@ export default {
municipalityAuditsFolder + "/metatagAudit.js",
municipalityAuditsFolder + "/licenseAndAttributionAudit.js",
municipalityAuditsFolder + "/userExperienceEvaluation.js",
municipalityAuditsFolder + "/improvementPlan.js",

municipalityInformativeAuditsFolder + "/cloudInfrastructureAudit.js",
municipalityInformativeAuditsFolder + "/reuseAudit.js",
Expand All @@ -191,6 +196,10 @@ export default {
'Pacchetto Cittadino Informato: criterio "C.SI.4.1 - Velocità e tempi di risposta"',
description:
"CONDIZIONI DI SUCCESSO: il sito presenta livelli di prestazioni (media pesata di 6 metriche standard) pari o superiori a 50. Se il punteggio è inferiore a 50, il Comune deve pubblicare sul sito un “Piano di miglioramento del sito” raggiungibile dal footer che mostri, per ciascuna voce che impatta negativamente le prestazioni, le azioni future di miglioramento e le relative tempistiche di realizzazione attese; RIFERIMENTI TECNICI E NORMATIVI: [Documentazione del Modello Comuni](https://docs.italia.it/italia/designers-italia/design-comuni-docs/).",
auditRefs: [
...defaultConfig.categories.performance.auditRefs,
{ id: "municipality-performance-improvement-plan" },
],
},

modelComplianceInformation: {
Expand Down

0 comments on commit ee1bbc6

Please sign in to comment.