Skip to content

Commit 73a873d

Browse files
committed
some tests, remove ranges from output
1 parent dfe0547 commit 73a873d

File tree

5 files changed

+117
-4
lines changed

5 files changed

+117
-4
lines changed

src/chunkify.test.ts

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
import { test, expect } from '@playwright/test'
2+
import { chunkify_stylesheet, type ChunkedCoverage } from './chunkify'
3+
4+
test('creates chunks with outer chunks covered', () => {
5+
let coverage = {
6+
text: 'a { color: red; } b { color: green; } c { color: blue; }',
7+
ranges: [
8+
{ start: 0, end: 17 },
9+
{ start: 38, end: 56 },
10+
],
11+
url: 'https://example.com',
12+
}
13+
let result = chunkify_stylesheet(coverage)
14+
expect(result).toEqual({
15+
...coverage,
16+
chunks: [
17+
{
18+
start_offset: 0,
19+
end_offset: 17,
20+
is_covered: true,
21+
},
22+
{
23+
start_offset: 17,
24+
end_offset: 38,
25+
is_covered: false,
26+
},
27+
{
28+
start_offset: 38,
29+
end_offset: 56,
30+
is_covered: true,
31+
},
32+
],
33+
} satisfies ChunkedCoverage)
34+
})
35+
36+
test('creates chunks with only middle chunk covered', () => {
37+
let coverage = {
38+
text: 'a { color: red; } b { color: green; } c { color: blue; }',
39+
ranges: [{ start: 17, end: 38 }],
40+
url: 'https://example.com',
41+
}
42+
let result = chunkify_stylesheet(coverage)
43+
expect(result).toEqual({
44+
...coverage,
45+
chunks: [
46+
{
47+
start_offset: 0,
48+
end_offset: 17,
49+
is_covered: false,
50+
},
51+
{
52+
start_offset: 17,
53+
end_offset: 38,
54+
is_covered: true,
55+
},
56+
{
57+
start_offset: 38,
58+
end_offset: 56,
59+
is_covered: false,
60+
},
61+
],
62+
} satisfies ChunkedCoverage)
63+
})
64+
65+
test('creates a single chunk when all is covered', () => {
66+
let coverage = {
67+
text: 'a { color: red; } b { color: green; } c { color: blue; }',
68+
ranges: [{ start: 0, end: 56 }],
69+
url: 'https://example.com',
70+
}
71+
let result = chunkify_stylesheet(coverage)
72+
expect(result).toEqual({
73+
...coverage,
74+
chunks: [
75+
{
76+
start_offset: 0,
77+
end_offset: 56,
78+
is_covered: true,
79+
},
80+
],
81+
} satisfies ChunkedCoverage)
82+
})
83+
84+
test('creates a single chunk when none is covered', () => {
85+
let coverage = {
86+
text: 'a { color: red; } b { color: green; } c { color: blue; }',
87+
ranges: [],
88+
url: 'https://example.com',
89+
}
90+
let result = chunkify_stylesheet(coverage)
91+
expect(result).toEqual({
92+
...coverage,
93+
chunks: [
94+
{
95+
start_offset: 0,
96+
end_offset: 56,
97+
is_covered: false,
98+
},
99+
],
100+
} satisfies ChunkedCoverage)
101+
})

src/extend-ranges.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { test, expect } from '@playwright/test'
2+
import { extend_ranges } from './extend-ranges'
3+
4+
// TODO

src/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export type CoverageData = {
2020
export type StylesheetCoverage = CoverageData & {
2121
url: string
2222
text: string
23-
ranges: Range[]
2423
chunks: PrettifiedChunk[]
2524
}
2625

@@ -36,7 +35,7 @@ function ratio(fraction: number, total: number) {
3635
}
3736

3837
function calculate_stylesheet_coverage(stylesheet: PrettifiedCoverage): StylesheetCoverage {
39-
let { text, ranges, url, chunks } = stylesheet
38+
let { text, url, chunks } = stylesheet
4039
let uncovered_bytes = 0
4140
let covered_bytes = 0
4241
let total_bytes = 0
@@ -63,7 +62,6 @@ function calculate_stylesheet_coverage(stylesheet: PrettifiedCoverage): Styleshe
6362
return {
6463
url,
6564
text,
66-
ranges,
6765
uncovered_bytes,
6866
covered_bytes,
6967
total_bytes,

src/prettify.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { test, expect } from '@playwright/test'
2+
import { prettify } from './prettify'
3+
4+
test('simple range at start', () => {})
5+
test('simple range at middle', () => {})
6+
test('simple range at end', () => {})
7+
8+
test('atrule at start', () => {})
9+
test('atrule at middle', () => {})
10+
test('atrule at end', () => {})

src/prettify.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export type PrettifiedChunk = ChunkedCoverage['chunks'][0] & {
99
css: string
1010
}
1111

12-
export type PrettifiedCoverage = Coverage & {
12+
export type PrettifiedCoverage = Omit<Coverage, 'ranges'> & {
1313
chunks: PrettifiedChunk[]
1414
}
1515

0 commit comments

Comments
 (0)