MCPcopy Index your code
hub / github.com/processing/p5.js / generateVisualReport

Function generateVisualReport

visual-report.js:5–418  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3const SLASH_REGEX = /\//g;
4
5async function generateVisualReport() {
6 const expectedDir = path.join(process.cwd(), 'test/unit/visual/screenshots');
7 const actualDir = path.join(process.cwd(), 'test/unit/visual/actual-screenshots');
8 const outputFile = path.join(process.cwd(), 'test/unit/visual/visual-report.html');
9
10 // Make sure the output directory exists
11 const outputDir = path.dirname(outputFile);
12 if (!fs.existsSync(outputDir)) {
13 fs.mkdirSync(outputDir, { recursive: true });
14 }
15
16 // Function to read image file and convert to data URL
17 function imageToDataURL(filePath) {
18 try {
19 const data = fs.readFileSync(filePath);
20 const base64 = data.toString('base64');
21 return `data:image/png;base64,${base64}`;
22 } catch (error) {
23 console.error(`Failed to read image: ${filePath}`, error);
24 return null;
25 }
26 }
27
28 // Create a lookup map for actual screenshots
29 function createActualScreenshotMap() {
30 const actualMap = new Map();
31 if (!fs.existsSync(actualDir)) {
32 console.warn(`Actual screenshots directory does not exist: ${actualDir}`);
33 return actualMap;
34 }
35
36 const files = fs.readdirSync(actualDir);
37 for (const file of files) {
38 if (file.endsWith('.png') && !file.endsWith('-diff.png')) {
39 actualMap.set(file, path.join(actualDir, file));
40 }
41 }
42
43 return actualMap;
44 }
45
46 const actualScreenshotMap = createActualScreenshotMap();
47
48 // Recursively find all test cases
49 function findTestCases(dir, prefix = '') {
50 const testCases = [];
51
52 if (!fs.existsSync(path.join(dir, prefix))) {
53 console.warn(`Directory does not exist: ${path.join(dir, prefix)}`);
54 return testCases;
55 }
56
57 const entries = fs.readdirSync(path.join(dir, prefix), { withFileTypes: true });
58
59 for (const entry of entries) {
60 const fullPath = path.join(prefix, entry.name);
61
62 if (entry.isDirectory()) {

Callers 1

visual-report.jsFile · 0.85

Calls 3

findTestCasesFunction · 0.85
filterMethod · 0.45

Tested by

no test coverage detected