Skip to content

Commit

Permalink
fix: review fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
AriPerkkio committed Aug 6, 2024
1 parent 9141ad7 commit daac5ba
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
10 changes: 4 additions & 6 deletions packages/coverage-v8/src/browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@ import { cdp } from '@vitest/browser/context'
import type { V8CoverageProvider } from './provider'
import { loadProvider } from './load-provider'

interface ScriptCoverage {
result: Array<{ url: string }>
}
const session = cdp()

const session = cdp() as { send: (...options: any[]) => any }
type ScriptCoverage = Awaited<ReturnType<typeof session.send<'Profiler.takePreciseCoverage'>>>

export default {
async startCoverage() {
Expand All @@ -17,8 +15,8 @@ export default {
})
},

async takeCoverage() {
const coverage: ScriptCoverage = await session.send('Profiler.takePreciseCoverage')
async takeCoverage(): Promise<{ result: any[] }> {
const coverage = await session.send('Profiler.takePreciseCoverage')
const result: typeof coverage.result = []

// Reduce amount of data sent over rpc by doing some early result filtering
Expand Down
19 changes: 14 additions & 5 deletions packages/coverage-v8/src/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ const VITE_EXPORTS_LINE_PATTERN
const DECORATOR_METADATA_PATTERN
= /_ts_metadata\("design:paramtypes", \[[^\]]*\]\),*/g
const DEFAULT_PROJECT: unique symbol = Symbol.for('default-project')
const FILE_PROTOCOL = 'file://'

const debug = createDebug('vitest:coverage')
let uniqueId = 0
Expand Down Expand Up @@ -441,7 +442,7 @@ export class V8CoverageProvider extends BaseCoverageProvider implements Coverage

if (!transformResult) {
isExecuted = false
transformResult = await onTransform(url.replace('file://', '')).catch(() => undefined)
transformResult = await onTransform(removeRoot(url, FILE_PROTOCOL)).catch(() => undefined)
}

const map = transformResult?.map as EncodedSourceMap | undefined
Expand Down Expand Up @@ -499,7 +500,7 @@ export class V8CoverageProvider extends BaseCoverageProvider implements Coverage

async function onTransform(filepath: string) {
if (transformMode === 'browser' && project.browser) {
const result = await project.browser.vite.transformRequest(filepath.replace(project.config.root, ''))
const result = await project.browser.vite.transformRequest(removeRoot(filepath, project.config.root))

if (result) {
return { ...result, code: `${result.code}// <inline-source-map>` }
Expand All @@ -512,11 +513,11 @@ export class V8CoverageProvider extends BaseCoverageProvider implements Coverage

for (const result of coverage.result) {
if (transformMode === 'browser') {
if (result.url.includes('@fs/')) {
result.url = `file://${result.url.replace('@fs/', '')}`
if (result.url.startsWith('/@fs')) {
result.url = `${FILE_PROTOCOL}${removeRoot(result.url, '/@fs')}`
}
else {
result.url = `file://${project.config.root}${result.url}`
result.url = `${FILE_PROTOCOL}${project.config.root}${result.url}`
}
}

Expand Down Expand Up @@ -635,3 +636,11 @@ function normalizeTransformResults(

return normalized
}

function removeRoot(filepath: string, root: string) {
if (filepath.startsWith(root)) {
return filepath.slice(root.length)
}

return filepath
}
3 changes: 2 additions & 1 deletion packages/coverage-v8/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"moduleResolution": "Bundler"
"moduleResolution": "Bundler",
"types": ["@vitest/browser/providers/playwright"]
},
"include": ["./src/**/*.ts"],
"exclude": ["./dist"]
Expand Down

0 comments on commit daac5ba

Please sign in to comment.