Build 94e09889a5e682159002ca48053b8ad544fdb100 on Debian Node.js v24.18.0 at 2026-07-23 20:20
npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
added 105 packages, and audited 106 packages in 3s
30 packages are looking for funding
run `npm fund` for details
5 vulnerabilities (1 low, 1 moderate, 3 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
> uncovered-highlight@1.0.1 build
> tsc
> uncovered-highlight@1.0.1 cloudtest
> mocha
CLI
✔ should create CLI instance
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
✔ should process file successfully
=== /workspace/testprogs/test1.ts ===
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
=== /workspace/testprogs/test2.ts ===
13 if (!user.name) [31m{[0m
14 [31m console.log("name validation failed - NOT visible");[0m
15 [31m return false;[0m
16 [31m }[0m
18 if (user.age < 0) [31m{[0m
19 [31m console.log("negative age - NOT visible");[0m
20 [31m return false;[0m
21 [31m }[0m else if (user.age < 18) {
24 } else if (user.age > 120) [31m{[0m
25 [31m console.log("age > 120 - NOT visible");[0m
26 [31m return false;[0m
27 [31m }[0m
29 if (user.country === "禁止国") [31m{[0m
30 [31m console.log("restricted country - NOT visible");[0m
31 [31m return false;[0m
32 [31m }[0m
53 } [31mcatch (error) {[0m
54 [31m console.log(`Error processing user ${user.name} - NOT visible`);[0m
55 [31m if (error instanceof Error) {[0m
56 [31m console.log(`Error message: ${error.message} - NOT visible`);[0m
57 [31m }[0m
58 [31m }[0m
67 if (users.length === 0) [31m{[0m
68 [31m console.log("no users to format - NOT visible");[0m
69 [31m return "No valid users found";[0m
70 [31m }[0m
72 if (users.length === 1) [31m{[0m
73 [31m console.log("single user - NOT visible");[0m
74 [31m return `Found 1 user: ${users[0].name}`;[0m
75 [31m }[0m
✔ should handle multiple files
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
✔ should handle line numbers option
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
10 } else if (language === "spanish") [32m{[0m
11 [32m console.log("spanish branch - NOT visible");[0m
12 [32m return `¡Hola, ${name}!`;[0m
13 [32m }[0m else if (language === "chinese") [32m{[0m
14 [32m console.log("chinese branch - NOT visible");[0m
15 [32m return `你好, ${name}!`;[0m
16 [32m }[0m else {
32 } else if (operation === "multiply") [32m{[0m
33 [32m console.log("multiply operation - NOT visible");[0m
34 [32m return a * b;[0m
35 [32m }[0m else if (operation === "divide") {
37 if (b === 0) [32m{[0m
38 [32m console.log("division by zero - NOT visible");[0m
39 [32m throw new Error("Division by zero");[0m
40 [32m }[0m
10 } else if (language === "spanish") [1m{[0m
11 [1m console.log("spanish branch - NOT visible");[0m
12 [1m return `¡Hola, ${name}!`;[0m
13 [1m }[0m else if (language === "chinese") [1m{[0m
14 [1m console.log("chinese branch - NOT visible");[0m
15 [1m return `你好, ${name}!`;[0m
16 [1m }[0m else {
32 } else if (operation === "multiply") [1m{[0m
33 [1m console.log("multiply operation - NOT visible");[0m
34 [1m return a * b;[0m
35 [1m }[0m else if (operation === "divide") {
37 if (b === 0) [1m{[0m
38 [1m console.log("division by zero - NOT visible");[0m
39 [1m throw new Error("Division by zero");[0m
40 [1m }[0m
✔ should handle different highlight colors
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
9 return `Hello, ${name}!`;
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
17 console.log("default language branch - NOT visible");
31 return a - b;
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
36 console.log("divide operation - should be visible");
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
41 return a / b;
5 console.log("greet() called - always visible");
6
7 if (language === "english") {
8 console.log("english branch - should be visible");
9 return `Hello, ${name}!`;
10 } else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m else if (language === "chinese") [31m{[0m
14 [31m console.log("chinese branch - NOT visible");[0m
15 [31m return `你好, ${name}!`;[0m
16 [31m }[0m else {
17 console.log("default language branch - NOT visible");
18 return `Greetings, ${name}!`;
19 }
20 }
21
27 console.log("add operation - should be visible");
28 return a + b;
29 } else if (operation === "subtract") {
30 console.log("subtract operation - should be visible");
31 return a - b;
32 } else if (operation === "multiply") [31m{[0m
33 [31m console.log("multiply operation - NOT visible");[0m
34 [31m return a * b;[0m
35 [31m }[0m else if (operation === "divide") {
36 console.log("divide operation - should be visible");
37 if (b === 0) [31m{[0m
38 [31m console.log("division by zero - NOT visible");[0m
39 [31m throw new Error("Division by zero");[0m
40 [31m }[0m
41 return a / b;
42 } else {
43 console.log("unknown operation - should be visible");
44 throw new Error(`Unknown operation: ${operation}`);
45 }
✔ should handle context setting
10 else if (language === "spanish") [31m{[0m
11 [31m console.log("spanish branch - NOT visible");[0m
12 [31m return `¡Hola, ${name}!`;[0m
13 [31m }[0m
14 else if (language === "chinese") [31m{[0m
15 [31m console.log("chinese branch - NOT visible");[0m
16 [31m return `你好, ${name}!`;[0m
17 [31m }[0m
34 else if (operation === "multiply") [31m{[0m
35 [31m console.log("multiply operation - NOT visible");[0m
36 [31m return a * b;[0m
37 [31m }[0m
40 if (b === 0) [31m{[0m
41 [31m console.log("division by zero - NOT visible");[0m
42 [31m throw new Error("Division by zero");[0m
43 [31m }[0m
✔ should handle JavaScript files
Coverage Subdirectories
- should load coverage from subdirectories when main directory is empty
✔ should prioritize coverage files in main directory over subdirectories
HighlightProcessor
✔ should process JavaScript source with coverage
✔ should process TypeScript source with mapped coverage
✔ should identify uncovered lines in test1.ts
✔ should handle multi-byte characters correctly
✔ should filter context lines correctly
✔ should merge overlapping highlights
Integration Tests
End-to-end TypeScript coverage
✔ should process test1.ts from coverage to highlighted output
✔ should process test2.ts with multi-byte characters
✔ should process test3.ts with classes
Context line filtering
✔ should filter lines based on context setting
JavaScript file processing
✔ should process JavaScript files directly without source maps
Coverage accuracy
✔ should show covered code paths are not highlighted
✔ should show uncovered code paths are highlighted
SourceMapProcessor
✔ should load source map for test1.js
✔ should load source map for test2.js
✔ should load source map for test3.js
✔ should convert JS offset to position
✔ should map JavaScript coverage ranges to TypeScript source
✔ should map ranges for test2.js
✔ should map ranges for test3.js
✔ should find source file from JS file path
V8CoverageReader
✔ should load coverage data from directory
✔ should find coverage for test1.js
✔ should find coverage for test2.js
✔ should find coverage for test3.js
✔ should return coverage ranges for test1.js
✔ should merge overlapping ranges
✔ should identify uncovered ranges
36 passing (209ms)
1 pending
Test exit code: 0