Skip to content

Commit 13c34e8

Browse files
committed
clean up and skip cli for now
1 parent c32bea8 commit 13c34e8

File tree

4 files changed

+52
-81
lines changed

4 files changed

+52
-81
lines changed

src/cli/cli.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env node
22

3-
import { validate_arguments, parse_arguments, InvalidArgumentsError } from './arguments.js'
4-
import { program, MissingDataError } from './program.js'
3+
import { validate_arguments, parse_arguments } from './arguments.js'
4+
import { program } from './program.js'
55
import { read } from './file-reader.js'
66
import { print as pretty } from './reporters/pretty.js'
77
import { print as tap } from './reporters/tap.js'

src/cli/reporters/pretty.ts

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -64,30 +64,26 @@ export function print({ report, context }: Report, params: CliArguments) {
6464
console.log(styleText('dim', '─'.repeat(terminal_width)))
6565

6666
let lines = sheet.text.split('\n')
67-
let line_coverage = sheet.line_coverage
6867

69-
for (let i = 0; i < lines.length; i++) {
70-
if (line_coverage[i] === 1) continue
71-
72-
// Rewind cursor N lines to render N previous lines
73-
for (let j = i - NUM_LEADING_LINES; j < i; j++) {
74-
// Make sure that we don't try to start before line 0
75-
if (j >= 0) {
76-
console.log(styleText('dim', line_number(j)), styleText('dim', indent(lines[j])))
77-
}
78-
}
79-
80-
// Render uncovered lines while increasing cursor until reaching next covered block
81-
while (line_coverage[i] === 0) {
82-
console.log(styleText('red', line_number(i, false)), indent(lines[i]))
83-
i++
84-
}
85-
86-
// Forward cursor N lines to render N trailing lines
87-
for (let end = i + NUM_TRAILING_LINES; i < end && i < lines.length; i++) {
88-
console.log(styleText('dim', line_number(i)), styleText('dim', indent(lines[i])))
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]))
8973
}
9074

75+
// 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+
// }
79+
// 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+
// }
83+
// 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+
// }
9187
// Show empty line between blocks
9288
console.log()
9389
}

src/lib/index.ts

Lines changed: 2 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { type Coverage, type Range } from './parse-coverage.js'
1+
import { type Coverage } from './parse-coverage.js'
22
import { prettify, type PrettifiedChunk, type PrettifiedCoverage } from './prettify.js'
3-
import { deduplicate_entries, concatenate } from './decuplicate.js'
3+
import { deduplicate_entries } from './decuplicate.js'
44
import { filter_coverage } from './filter-entries.js'
55
import { extend_ranges } from './extend-ranges.js'
66
import { chunkify, type ChunkedCoverage } from './chunkify.js'
@@ -88,41 +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('deduped')
92-
// console.log(deduplicated.at(0))
93-
// console.log()
9491
let extended: Coverage[] = extend_ranges(deduplicated)
95-
// console.log('extended')
96-
// console.log(extended.at(0))
97-
// console.log()
98-
// let concatenated: Coverage[] = extended.map((cov) => ({
99-
// ...cov,
100-
// ranges: concatenate(cov.ranges),
101-
// }))
102-
// console.log('concatenated')
103-
// console.log(concatenated.at(0))
104-
// console.log()
105-
// if (concatenated.at(0)!.ranges[0].start !== 0) {
106-
// console.log(0, concatenated.at(0)!.ranges[0].start)
107-
// console.log(concatenated.at(0)!.text.substring(0, concatenated.at(0)!.ranges[0].start))
108-
// console.log()
109-
// }
110-
// for (let i = 0; i < concatenated.at(0)!.ranges.length; i++) {
111-
// let str = concatenated.at(0)!.text.slice(concatenated.at(0)!.ranges[i].end, concatenated.at(0)!.ranges[i + 1]?.start)
112-
// if (str.trim().length > 0) {
113-
// console.log(concatenated.at(0)!.ranges[i].end, concatenated.at(0)!.ranges[i + 1]?.start)
114-
// console.log(str)
115-
// console.log()
116-
// }
117-
// }
11892
let chunkified: ChunkedCoverage[] = extended.map((sheet) => chunkify(sheet))
119-
// console.log('chunkified')
120-
// console.log(chunkified.at(0))
121-
// console.log()
12293
let prettified: PrettifiedCoverage[] = chunkified.map((sheet) => prettify(sheet))
123-
// console.log('prettified')
124-
// console.log(prettified.at(0))
125-
// console.log()
12694
let coverage_per_stylesheet = prettified.map((stylesheet) => calculate_stylesheet_coverage(stylesheet))
12795

12896
// Calculate total coverage for all stylesheets combined

src/lib/test/kitchen-sink.test.ts

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -232,52 +232,59 @@ test.describe('Wallace mega soverage suite', () => {
232232
})
233233

234234
test('CopyButton has full coverage', async () => {
235-
let data = coverage.find(({ url }) => url.includes('CopyButton')) as Coverage
236-
let result = await calculate_coverage([data])
237-
expect.soft(result.line_coverage_ratio).toBe(1)
238-
expect.soft(result.total_lines).toBe(17)
235+
let result = await calculate_coverage(coverage)
236+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.includes('CopyButton'))!
237+
expect.soft(sheet.line_coverage_ratio).toBe(1)
238+
expect.soft(sheet.total_lines).toBe(17)
239239
})
240240

241241
test('Heading has full coverage', async () => {
242-
let data = coverage.find(({ url }) => url.includes('Heading')) as Coverage
243-
let result = await calculate_coverage([data])
244-
expect.soft(result.line_coverage_ratio).toBe(1)
245-
expect.soft(result.total_lines).toBe(37)
242+
let result = await calculate_coverage(coverage)
243+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.includes('Heading'))!
244+
expect.soft(sheet.line_coverage_ratio).toBe(1)
245+
expect.soft(sheet.total_lines).toBe(37)
246246
})
247247

248248
test('Meter has partial coverage', async () => {
249-
let data = coverage.find(({ url }) => url.includes('Meter')) as Coverage
250-
let result = await calculate_coverage([data])
251-
expect.soft(result.line_coverage_ratio).not.toBe(1)
252-
expect.soft(result.total_lines).toBe(35)
253-
254-
let sheet = result.coverage_per_stylesheet.at(0)!
249+
let result = await calculate_coverage(coverage)
250+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.includes('Meter'))!
251+
expect.soft(sheet.line_coverage_ratio).not.toBe(1)
252+
expect.soft(sheet.total_lines).toBe(35)
255253
expect.soft(sheet.chunks.map(({ is_covered, start_line, end_line }) => ({ is_covered, start_line, end_line }))).toEqual([
256254
{ is_covered: true, start_line: 1, end_line: 22 },
257255
{ is_covered: false, start_line: 23, end_line: 35 },
258256
])
259257
})
260258

261259
test('Container has partial coverage', async () => {
262-
let data = coverage.find(({ url }) => url.includes('Container')) as Coverage
263-
let result = await calculate_coverage([data])
264-
expect.soft(result.line_coverage_ratio).not.toBe(1)
265-
expect.soft(result.total_lines).toBe(44)
266-
267-
let sheet = result.coverage_per_stylesheet.at(0)!
260+
let result = await calculate_coverage(coverage)
261+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.includes('Container'))!
262+
expect.soft(sheet.line_coverage_ratio).not.toBe(1)
263+
expect.soft(sheet.total_lines).toBe(44)
268264
expect.soft(sheet.chunks.map(({ is_covered, start_line, end_line }) => ({ is_covered, start_line, end_line }))).toEqual([
269265
{ is_covered: true, start_line: 1, end_line: 21 },
270266
{ is_covered: false, start_line: 22, end_line: 24 },
271267
{ is_covered: true, start_line: 25, end_line: 44 },
272268
])
273269
})
274270

271+
test('Markdown has partial coverage', async () => {
272+
let result = await calculate_coverage(coverage)
273+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.includes('Markdown'))!
274+
expect.soft(sheet.line_coverage_ratio).not.toBe(1)
275+
expect.soft(sheet.total_lines).toBe(202)
276+
expect.soft(sheet.chunks.filter((c) => !c.is_covered).map(({ start_line, end_line }) => ({ start_line, end_line }))).toEqual([
277+
{ start_line: 26, end_line: 38 }, // .markdown h4
278+
{ start_line: 154, end_line: 157 }, // .markdown img
279+
{ start_line: 179, end_line: 197 }, // .markdown aside
280+
])
281+
})
282+
275283
// This was a notoriously difficult one to fix
276284
test('main sheet has partial coverage', async () => {
277-
let data = coverage.find(({ url }) => url.endsWith('0.RC2DzJv0.css')) as Coverage
278-
let result = await calculate_coverage([data])
279-
let sheet = result.coverage_per_stylesheet.at(0)!
280-
expect.soft(sheet.chunks.filter((c) => !c.is_covered).map(({ start_line, end_line, css }) => ({ start_line, end_line }))).toEqual([
285+
let result = await calculate_coverage(coverage)
286+
let sheet = result.coverage_per_stylesheet.find((s) => s.url.endsWith('0.RC2DzJv0.css'))!
287+
expect.soft(sheet.chunks.filter((c) => !c.is_covered).map(({ start_line, end_line }) => ({ start_line, end_line }))).toEqual([
281288
{ start_line: 77, end_line: 81 }, // @media print { .nav-list.svelte-1h32yp1
282289
{ start_line: 127, end_line: 130 }, // .nav-popover-trigger.svelte-1h32yp1.invisible
283290
{ start_line: 146, end_line: 152 }, // @supports not (right: anchor(end)) { .nav-popover

0 commit comments

Comments
 (0)