Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# IDE / Editor
.idea/
.vscode/

# Dependency directories
node_modules/

# File systems
.DS_Store
Thumbs.db
node_modules/
1 change: 0 additions & 1 deletion report/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
]
},
"devDependencies": {
"@socialgouv/eslint-config-strict": "^1.0.0-beta.5",
"@types/jest": "^30.0.0",
"@types/lodash.omit": "^4.5.9",
"@types/lodash.pick": "^4.4.9",
Expand Down
14 changes: 5 additions & 9 deletions report/src/__snapshots__/generateUrlReport.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`generateUrlReport should allow empty/invalid reports 1`] = `
{
Expand All @@ -24,9 +24,6 @@ exports[`generateUrlReport should allow empty/invalid reports 1`] = `
"stats": null,
"summary": {
"codescanCount": 42,
"codescanGrade": undefined,
"declaration-a11y": undefined,
"declaration-rgpd": undefined,
},
"testssl": null,
"thirdparties": null,
Expand Down Expand Up @@ -144,12 +141,11 @@ exports[`generateUrlReport should generate latest report for a valid url 1`] = `
},
"summary": {
"404Count": 3,
"404Grade": "A",
"404Grade": "B",
"codescanCount": 42,
"codescanGrade": undefined,
"declaration-a11y": "F",
"declaration-rgpd-ml": "D",
"declaration-rgpd-pc": "D",
"declaration_a11yGrade": "F",
"declaration_rgpd-mlGrade": "D",
"declaration_rgpd-pcGrade": "D",
"sonarcloudGrade": "F",
},
"testssl": [
Expand Down
2 changes: 1 addition & 1 deletion report/src/__snapshots__/utils.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`getUrls should parse dashlord.yaml file correctly 1`] = `
[
Expand Down
6 changes: 1 addition & 5 deletions report/src/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
const fs = require("fs");
const path = require("path");
const YAML = require("yaml");
const core = require("@actions/core");

const { getUrls, writeFile, getConfig } = require("./utils");
Expand All @@ -15,11 +13,9 @@ const DASHLORD_REPO_PATH = process.env.DASHLORD_REPO_PATH || ".";
* @returns {DashLordReport} Full DashLoard report as JSON
*/
const generateReport = () => {
const urls = getUrls()
return getUrls()
.map((url) => generateUrlReport(url))
.filter(Boolean);
/** @ts-expect-error #TODO #WTH */
return urls;
};

const generateJsons = async () => {
Expand Down
29 changes: 24 additions & 5 deletions report/src/summary/404.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,31 @@
/** @param {number} count */
const getGrade = (count) => {
if (count > 20) {
return "F";
} else if (count > 15) {
return "E";
} else if (count > 10) {
return "D";
} else if (count > 5) {
return "C";
} else if (count > 0) {
return "B";
} else {
return "A";
}
};

/** @param {Wget404Report} report */
const summary = (report) => {
if (report) {
const links = report.map((item) => item.link);
const grade = links.length > 20 ? "F" : links.length > 10 ? "D" : "A";
return {
"404Grade": grade,
"404Count": links.length,
};
const grade = getGrade(links.length);
if (grade) {
return {
"404Grade": grade,
"404Count": links.length,
};
}
}
};

Expand Down
6 changes: 3 additions & 3 deletions report/src/summary/__snapshots__/index.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`should compute summary for some URL report 1`] = `
{
"404Count": 5,
"404Grade": "A",
"404Grade": "B",
"apdex": 1,
"apdexGrade": "A",
"codescanCount": 0,
"codescanGrade": "A",
"cookiesCount": 2,
"cookiesGrade": "B",
"declaration-a11y": "F",
"declaration_a11yGrade": "F",
"dependabotCount": 4,
"dependabotGrade": "D",
"httpGrade": "A+",
Expand Down
8 changes: 4 additions & 4 deletions report/src/summary/budget_page.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
/** @param {PageReport} report */
const summary = (report) => {
if (report) {
const budgetPageGrade = report.grade;
if (budgetPageGrade) {
const { grade } = report;
if (grade) {
return {
budgetPageGrade
budgetPageGrade: grade,
};
}
}
};

module.exports = summary;
module.exports = summary;
19 changes: 15 additions & 4 deletions report/src/summary/codescan.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
/** @param {CodescanReport} report */
const summary = (report) => {
if (report) {
return {
codescanCount: report.totalCount,
codescanGrade: report.grade,
};
const { grade, totalCount } = report;
if (grade && totalCount !== undefined && totalCount !== null) {
return {
codescanGrade: grade,
codescanCount: totalCount,
};
} else if (grade) {
return {
codescanGrade: grade,
};
} else if (totalCount !== undefined && totalCount !== null) {
return {
codescanCount: totalCount,
};
}
}
};

Expand Down
44 changes: 19 additions & 25 deletions report/src/summary/declaration-a11y.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,34 +6,28 @@ const grades = {

/** @param {DeclarationA11yReport} report */
const summary = (report) => {
// not known
let grade = undefined;
if (!report) {
return {
"declaration-a11y": undefined,
};
}
const mentionIndex = report.mention
? Object.values(grades).indexOf(report.mention)
: -1;
if (report) {
const { mention, declarationUrl } = report;
const mentionIndex = mention ? Object.values(grades).indexOf(mention) : -1;

let grade = undefined;
if (mention !== undefined && mention !== null)
if (mentionIndex > -1) {
if (declarationUrl) {
grade = Object.keys(grades)[mentionIndex];
} else if (mention === "Accessibilité : non conforme") {
grade = "D";
} else {
grade = "F";
}
}

if (report.mention === null) {
// not detected
grade = "F";
} else if (mentionIndex > -1) {
if (report.declarationUrl) {
// @ts-ignore
grade = Object.keys(grades)[mentionIndex];
} else if (report.mention === "Accessibilité : non conforme") {
grade = "D";
} else {
grade = "F";
if (grade) {
return {
"declaration_a11yGrade": grade,
};
}
}

return {
"declaration-a11y": grade,
};
};

module.exports = summary;
16 changes: 8 additions & 8 deletions report/src/summary/declaration-a11y.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,38 @@ const summary = require("./declaration-a11y");
const tests = [
{
mention: undefined,
expected: { "declaration-a11y": undefined },
expected: undefined,
},
{
mention: null,
expected: { "declaration-a11y": "F" },
expected: undefined,
},
{
mention: "Accessibilité : totalement conforme",
expected: { "declaration-a11y": "F" },
expected: { "declaration_a11yGrade": "F" },
},
{
mention: "Accessibilité : partiellement conforme",
expected: { "declaration-a11y": "F" },
expected: { "declaration_a11yGrade": "F" },
},
{
mention: "Accessibilité : non conforme",
expected: { "declaration-a11y": "D" },
expected: { "declaration_a11yGrade": "D" },
},
{
mention: "Accessibilité : totalement conforme",
declarationUrl: "https://declaration.url",
expected: { "declaration-a11y": "A" },
expected: { "declaration_a11yGrade": "A" },
},
{
mention: "Accessibilité : partiellement conforme",
declarationUrl: "https://declaration.url",
expected: { "declaration-a11y": "B" },
expected: { "declaration_a11yGrade": "B" },
},
{
mention: "Accessibilité : non conforme",
declarationUrl: "https://declaration.url",
expected: { "declaration-a11y": "C" },
expected: { "declaration_a11yGrade": "C" },
},
];

Expand Down
31 changes: 12 additions & 19 deletions report/src/summary/declaration-rgpd.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,22 @@
const grades = ["F", "D", "A"];

/** @param {DeclarationRgpdReport} report */
const summary = (report) => {
// not known
if (!report || !report.map) {
return {
"declaration-rgpd": undefined,
};
}
if (report && report.length) {
const summaryMap = report.map((result) => {
let grade = "F";

const tmpSummary = report.map((result) => {
let grade = 0;
if (result.declarationUrl) {
grade = "D";

if (result.declarationUrl) {
grade += 1;

if (result.score === result.maxScore) {
grade += 1;
if (result.score === result.maxScore) {
grade = "A";
}
}
}

return [`declaration-rgpd-${result.slug}`, grades[grade]];
});
return [`declaration_rgpd-${result.slug}Grade`, grade];
});

return Object.fromEntries(tmpSummary);
return Object.fromEntries(summaryMap);
}
};

module.exports = summary;
Loading
Loading