|
1 | 1 | import { test, expect } from '@playwright/test' |
2 | | -import { calculate_coverage, type Coverage } from '../index.js' |
| 2 | +import { calculate_coverage, type Coverage, type CoverageResult } from '../index.js' |
3 | 3 | import { generate_coverage } from './generate-coverage.js' |
4 | 4 | import { format } from '@projectwallace/format-css' |
| 5 | +import * as fs from 'node:fs/promises' |
| 6 | +import * as path from 'node:path' |
5 | 7 |
|
6 | 8 | test('project wallace Container component', async () => { |
7 | 9 | // Coverage: |
@@ -220,3 +222,32 @@ test.describe('@rules', () => { |
220 | 222 | ]) |
221 | 223 | }) |
222 | 224 | }) |
| 225 | + |
| 226 | +test.describe('Wallace mega soverage suite', () => { |
| 227 | + let coverage: Coverage[] |
| 228 | + |
| 229 | + test.beforeAll(async () => { |
| 230 | + let file_contents = await fs.readFile(path.resolve('./src/lib/test/wallace.json'), 'utf-8') |
| 231 | + coverage = JSON.parse(file_contents) |
| 232 | + }) |
| 233 | + |
| 234 | + 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) |
| 239 | + }) |
| 240 | + |
| 241 | + test('Meter has full coverage', async () => { |
| 242 | + let data = coverage.find(({ url }) => url.includes('Meter')) as Coverage |
| 243 | + let result = await calculate_coverage([data]) |
| 244 | + expect.soft(result.line_coverage_ratio).not.toBe(1) |
| 245 | + expect.soft(result.total_lines).toBe(35) |
| 246 | + |
| 247 | + let sheet = result.coverage_per_stylesheet.at(0)! |
| 248 | + expect.soft(sheet.chunks.map(({ is_covered, start_line, end_line }) => ({ is_covered, start_line, end_line }))).toEqual([ |
| 249 | + { is_covered: true, start_line: 1, end_line: 22 }, |
| 250 | + { is_covered: false, start_line: 23, end_line: 35 }, |
| 251 | + ]) |
| 252 | + }) |
| 253 | +}) |
0 commit comments