Skip to content

Commit 31d5c3c

Browse files
committed
add the biggest test suite possible
1 parent 13c34e8 commit 31d5c3c

File tree

216 files changed

+247
-24
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+247
-24
lines changed

src/cli/reporters/pretty.ts

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -65,25 +65,19 @@ export function print({ report, context }: Report, params: CliArguments) {
6565

6666
let lines = sheet.text.split('\n')
6767

68-
for (let chunk of sheet.chunks) {
69-
let ls = chunk.css.split('\n')
70-
// TODO FIX ME
71-
for (let l = 0; l < ls.length; l++) {
72-
console.log(styleText('red', line_number(l + chunk.start_line, false)), indent(ls[l]))
73-
}
74-
68+
for (let chunk of sheet.chunks.filter((chunk) => !chunk.is_covered)) {
7569
// Render N leading lines
76-
// for (let x = Math.max(chunk.start_line - NUM_LEADING_LINES, 0); x < chunk.start_line; x++) {
77-
// console.log(styleText('dim', line_number(x)), styleText('dim', indent(lines[x])))
78-
// }
70+
for (let x = Math.max(chunk.start_line - NUM_LEADING_LINES, 0); x < chunk.start_line; x++) {
71+
console.log(styleText('dim', line_number(x)), styleText('dim', indent(lines[x - 1])))
72+
}
7973
// Render the uncovered chunk
80-
// for (let i = chunk.start_line; i <= chunk.end_line; i++) {
81-
// console.log(styleText('red', line_number(i, false)), indent(lines[i]))
82-
// }
74+
for (let i = chunk.start_line; i <= chunk.end_line; i++) {
75+
console.log(styleText('red', line_number(i, false)), indent(lines[i - 1]))
76+
}
8377
// Render N trailing lines
84-
// for (let y = chunk.end_line; Math.min(chunk.end_line + NUM_TRAILING_LINES, lines.length); y++) {
85-
// console.log(styleText('dim', line_number(y)), styleText('dim', indent(lines[y])))
86-
// }
78+
for (let y = chunk.end_line; y < Math.min(chunk.end_line + NUM_TRAILING_LINES, lines.length); y++) {
79+
console.log(styleText('dim', line_number(y)), styleText('dim', indent(lines[y - 1])))
80+
}
8781
// Show empty line between blocks
8882
console.log()
8983
}

src/lib/decuplicate.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Coverage, Range } from './parse-coverage.js'
22

33
// Combine multiple adjecent ranges into a single one
4-
export function concatenate(ranges: Set<Range>): Range[] {
4+
export function concatenate(ranges: Set<Range> | Range[]): Range[] {
55
let result: Range[] = []
66

77
for (let range of ranges) {
@@ -22,13 +22,20 @@ function dedupe_list(ranges: Range[]): Set<Range> {
2222
outer: for (let range of ranges) {
2323
for (let processed_range of new_ranges) {
2424
// Case: an existing range fits within this range -> replace it
25+
// { start: 0, end: 100 },
26+
// { start: 0, end: 200 }
2527
if (range.start <= processed_range.start && range.end >= processed_range.end) {
2628
new_ranges.delete(processed_range)
2729
new_ranges.add(range)
2830
continue outer
2931
}
32+
3033
// Case: this range fits within an existing range -> skip it
34+
// { start: 324, end: 485 }, --> exists
35+
// { start: 364, end: 485 }, --> skip
36+
// { start: 404, end: 485 }, --> skip
3137
if (range.start >= processed_range.start && range.end <= processed_range.end) {
38+
// console.log('skip', range)
3239
continue outer
3340
}
3441
// Case: ranges partially overlap
@@ -40,6 +47,7 @@ function dedupe_list(ranges: Range[]): Set<Range> {
4047
start: processed_range.start,
4148
end: range.end,
4249
})
50+
continue outer
4351
}
4452
}
4553
new_ranges.add(range)
@@ -56,7 +64,7 @@ function dedupe_list(ranges: Range[]): Set<Range> {
5664
* - only bytes of deduplicated stylesheets are counted
5765
*/
5866
export function deduplicate_entries(entries: Coverage[]): Coverage[] {
59-
let checked_stylesheets = new Map<string, { url: string; ranges: Set<Range> }>()
67+
let checked_stylesheets = new Map<string, { url: string; ranges: Range[] }>()
6068

6169
for (let entry of entries) {
6270
let text = entry.text
@@ -77,20 +85,20 @@ export function deduplicate_entries(entries: Coverage[]): Coverage[] {
7785
}
7886

7987
if (!found) {
80-
ranges.add(range)
88+
ranges.push(range)
8189
}
8290
}
8391
} else {
8492
checked_stylesheets.set(text, {
8593
url: entry.url,
86-
ranges: dedupe_list(entry.ranges),
94+
ranges: entry.ranges,
8795
})
8896
}
8997
}
9098

9199
return Array.from(checked_stylesheets, ([text, { url, ranges }]) => ({
92100
text,
93101
url,
94-
ranges: concatenate(ranges).sort((a, b) => a.start - b.start),
102+
ranges: concatenate(dedupe_list(ranges.sort((a, b) => a.start - b.start))).sort((a, b) => a.start - b.start),
95103
}))
96104
}

src/lib/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ export async function calculate_coverage(coverage: Coverage[]): Promise<Coverage
8888

8989
let filtered_coverage: Coverage[] = await filter_coverage(coverage)
9090
let deduplicated: Coverage[] = deduplicate_entries(filtered_coverage)
91+
// console.log(deduplicated.find((s) => s.url.includes('Container')))
9192
let extended: Coverage[] = extend_ranges(deduplicated)
93+
// console.log(extended.find((s) => s.url.includes('Container')))
9294
let chunkified: ChunkedCoverage[] = extended.map((sheet) => chunkify(sheet))
9395
let prettified: PrettifiedCoverage[] = chunkified.map((sheet) => prettify(sheet))
9496
let coverage_per_stylesheet = prettified.map((stylesheet) => calculate_stylesheet_coverage(stylesheet))

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-auto-scrolls-to-the-selected-node.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-autofocus-is-turned-on-by-default.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-location-data-is-not-visible.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-show-location-data-is-turned-off-by-default.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-shows-a-link-a-to-csstree-documentation.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-shows-the-ast-output.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/lib/test/fixtures/lib-components-astexplorer-spec-ts-initial-state-shows-the-css-input.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)