@vitest/ui
Advanced tools
Comparing version 2.0.0-beta.10 to 2.0.0-beta.11
@@ -5,2 +5,3 @@ import { fileURLToPath } from 'node:url'; | ||
import { coverageConfigDefaults } from 'vitest/config'; | ||
import { toArray } from '@vitest/utils'; | ||
@@ -16,16 +17,28 @@ var index = (ctx) => { | ||
const coveragePath = coverageFolder ? coverageFolder[1] : void 0; | ||
if (coveragePath && base === coveragePath) | ||
throw new Error(`The ui base path and the coverage path cannot be the same: ${base}, change coverage.reportsDirectory`); | ||
coverageFolder && server.middlewares.use(coveragePath, sirv(coverageFolder[0], { | ||
single: true, | ||
dev: true, | ||
setHeaders: (res) => { | ||
res.setHeader("Cache-Control", "public,max-age=0,must-revalidate"); | ||
} | ||
})); | ||
if (coveragePath && base === coveragePath) { | ||
throw new Error( | ||
`The ui base path and the coverage path cannot be the same: ${base}, change coverage.reportsDirectory` | ||
); | ||
} | ||
coverageFolder && server.middlewares.use( | ||
coveragePath, | ||
sirv(coverageFolder[0], { | ||
single: true, | ||
dev: true, | ||
setHeaders: (res) => { | ||
res.setHeader( | ||
"Cache-Control", | ||
"public,max-age=0,must-revalidate" | ||
); | ||
} | ||
}) | ||
); | ||
const clientDist = resolve(fileURLToPath(import.meta.url), "../client"); | ||
server.middlewares.use(base, sirv(clientDist, { | ||
single: true, | ||
dev: true | ||
})); | ||
server.middlewares.use( | ||
base, | ||
sirv(clientDist, { | ||
single: true, | ||
dev: true | ||
}) | ||
); | ||
} | ||
@@ -36,9 +49,11 @@ }; | ||
const options = ctx.config; | ||
const htmlReporter = options.api?.port && options.coverage?.enabled ? options.coverage.reporter.find((reporter) => { | ||
if (typeof reporter === "string") | ||
const htmlReporter = options.api?.port && options.coverage?.enabled ? toArray(options.coverage.reporter).find((reporter) => { | ||
if (typeof reporter === "string") { | ||
return reporter === "html"; | ||
} | ||
return reporter[0] === "html"; | ||
}) : void 0; | ||
if (!htmlReporter) | ||
if (!htmlReporter) { | ||
return void 0; | ||
} | ||
const root = resolve( | ||
@@ -49,4 +64,5 @@ ctx.config?.root || options.root || process.cwd(), | ||
const subdir = Array.isArray(htmlReporter) && htmlReporter.length > 1 && "subdir" in htmlReporter[1] ? htmlReporter[1].subdir : void 0; | ||
if (!subdir || typeof subdir !== "string") | ||
if (!subdir || typeof subdir !== "string") { | ||
return [root, `/${basename(root)}/`]; | ||
} | ||
return [resolve(root, subdir), `/${basename(root)}/${subdir}/`]; | ||
@@ -53,0 +69,0 @@ } |
@@ -19,11 +19,14 @@ import { promises } from 'node:fs'; | ||
async function get(mod, seen = /* @__PURE__ */ new Map()) { | ||
if (!mod || !mod.id) | ||
if (!mod || !mod.id) { | ||
return; | ||
if (mod.id === "\0@vitest/browser/context") | ||
} | ||
if (mod.id === "\0@vitest/browser/context") { | ||
return; | ||
if (seen.has(mod)) | ||
} | ||
if (seen.has(mod)) { | ||
return seen.get(mod); | ||
} | ||
let id2 = clearId(mod.id); | ||
seen.set(mod, id2); | ||
const rewrote = browser ? mod.file?.includes(project.browser.config.cacheDir) ? mod.id : false : await project.vitenode.shouldExternalize(id2); | ||
const rewrote = browser ? mod.file?.includes(project.browser.vite.config.cacheDir) ? mod.id : false : await project.vitenode.shouldExternalize(id2); | ||
if (rewrote) { | ||
@@ -36,10 +39,15 @@ id2 = rewrote; | ||
} | ||
const mods = Array.from(mod.importedModules).filter((i) => i.id && !i.id.includes("/vitest/dist/")); | ||
graph[id2] = (await Promise.all(mods.map((m) => get(m, seen)))).filter(Boolean); | ||
const mods = Array.from(mod.importedModules).filter( | ||
(i) => i.id && !i.id.includes("/vitest/dist/") | ||
); | ||
graph[id2] = (await Promise.all(mods.map((m) => get(m, seen)))).filter( | ||
Boolean | ||
); | ||
return id2; | ||
} | ||
if (browser && project.browser) | ||
await get(project.browser.moduleGraph.getModuleById(id)); | ||
else | ||
if (browser && project.browser) { | ||
await get(project.browser.vite.moduleGraph.getModuleById(id)); | ||
} else { | ||
await get(project.server.moduleGraph.getModuleById(id)); | ||
} | ||
return { | ||
@@ -53,6 +61,8 @@ graph, | ||
function getOutputFile(config) { | ||
if (!config?.outputFile) | ||
if (!config?.outputFile) { | ||
return; | ||
if (typeof config.outputFile === "string") | ||
} | ||
if (typeof config.outputFile === "string") { | ||
return config.outputFile; | ||
} | ||
return config.outputFile.html; | ||
@@ -85,3 +95,7 @@ } | ||
result.moduleGraph[projectName] ??= {}; | ||
result.moduleGraph[projectName][file.filepath] = await getModuleGraph(this.ctx, projectName, file.filepath); | ||
result.moduleGraph[projectName][file.filepath] = await getModuleGraph( | ||
this.ctx, | ||
projectName, | ||
file.filepath | ||
); | ||
}) | ||
@@ -104,16 +118,29 @@ ); | ||
const files = fg.sync("**/*", { cwd: ui }); | ||
await Promise.all(files.map(async (f) => { | ||
if (f === "index.html") { | ||
const html = await promises.readFile(resolve(ui, f), "utf-8"); | ||
const filePath = relative(htmlDir, metaFile); | ||
await promises.writeFile( | ||
resolve(htmlDir, htmlFileName), | ||
html.replace("<!-- !LOAD_METADATA! -->", `<script>window.METADATA_PATH="${filePath}"<\/script>`) | ||
); | ||
} else { | ||
await promises.copyFile(resolve(ui, f), resolve(htmlDir, f)); | ||
} | ||
})); | ||
this.ctx.logger.log(`${c.bold(c.inverse(c.magenta(" HTML ")))} ${c.magenta("Report is generated")}`); | ||
this.ctx.logger.log(`${c.dim(" You can run ")}${c.bold(`npx vite preview --outDir ${relative(this.ctx.config.root, htmlDir)}`)}${c.dim(" to see the test results.")}`); | ||
await Promise.all( | ||
files.map(async (f) => { | ||
if (f === "index.html") { | ||
const html = await promises.readFile(resolve(ui, f), "utf-8"); | ||
const filePath = relative(htmlDir, metaFile); | ||
await promises.writeFile( | ||
resolve(htmlDir, htmlFileName), | ||
html.replace( | ||
"<!-- !LOAD_METADATA! -->", | ||
`<script>window.METADATA_PATH="${filePath}"<\/script>` | ||
) | ||
); | ||
} else { | ||
await promises.copyFile(resolve(ui, f), resolve(htmlDir, f)); | ||
} | ||
}) | ||
); | ||
this.ctx.logger.log( | ||
`${c.bold(c.inverse(c.magenta(" HTML ")))} ${c.magenta( | ||
"Report is generated" | ||
)}` | ||
); | ||
this.ctx.logger.log( | ||
`${c.dim(" You can run ")}${c.bold( | ||
`npx vite preview --outDir ${relative(this.ctx.config.root, htmlDir)}` | ||
)}${c.dim(" to see the test results.")}` | ||
); | ||
} | ||
@@ -120,0 +147,0 @@ } |
{ | ||
"name": "@vitest/ui", | ||
"type": "module", | ||
"version": "2.0.0-beta.10", | ||
"version": "2.0.0-beta.11", | ||
"description": "UI for Vitest", | ||
@@ -37,3 +37,3 @@ "license": "MIT", | ||
"peerDependencies": { | ||
"vitest": "2.0.0-beta.10" | ||
"vitest": "2.0.0-beta.11" | ||
}, | ||
@@ -47,3 +47,3 @@ "dependencies": { | ||
"sirv": "^2.0.4", | ||
"@vitest/utils": "2.0.0-beta.10" | ||
"@vitest/utils": "2.0.0-beta.11" | ||
}, | ||
@@ -59,5 +59,5 @@ "devDependencies": { | ||
"@types/ws": "^8.5.10", | ||
"@unocss/reset": "^0.60.4", | ||
"@unocss/reset": "^0.61.0", | ||
"@vitejs/plugin-vue": "^5.0.5", | ||
"@vueuse/core": "^10.10.1", | ||
"@vueuse/core": "^10.11.0", | ||
"ansi-to-html": "^0.7.2", | ||
@@ -70,3 +70,3 @@ "birpc": "0.2.17", | ||
"splitpanes": "^3.1.5", | ||
"unocss": "^0.60.4", | ||
"unocss": "^0.61.0", | ||
"unplugin-auto-import": "^0.17.6", | ||
@@ -76,6 +76,6 @@ "unplugin-vue-components": "^0.27.0", | ||
"vite-plugin-pages": "^0.32.2", | ||
"vue": "^3.4.27", | ||
"vue": "^3.4.29", | ||
"vue-router": "^4.3.3", | ||
"@vitest/ws-client": "2.0.0-beta.10", | ||
"@vitest/runner": "2.0.0-beta.10" | ||
"@vitest/runner": "2.0.0-beta.11", | ||
"@vitest/ws-client": "2.0.0-beta.11" | ||
}, | ||
@@ -82,0 +82,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
856927
2747
+ Added@vitest/expect@2.0.0-beta.11(transitive)
+ Added@vitest/runner@2.0.0-beta.11(transitive)
+ Added@vitest/snapshot@2.0.0-beta.11(transitive)
+ Added@vitest/spy@2.0.0-beta.11(transitive)
+ Added@vitest/utils@2.0.0-beta.11(transitive)
+ Addedvite-node@2.0.0-beta.11(transitive)
+ Addedvitest@2.0.0-beta.11(transitive)
- Removed@vitest/expect@2.0.0-beta.10(transitive)
- Removed@vitest/runner@2.0.0-beta.10(transitive)
- Removed@vitest/snapshot@2.0.0-beta.10(transitive)
- Removed@vitest/spy@2.0.0-beta.10(transitive)
- Removed@vitest/utils@2.0.0-beta.10(transitive)
- Removedvite-node@2.0.0-beta.10(transitive)
- Removedvitest@2.0.0-beta.10(transitive)
Updated@vitest/utils@2.0.0-beta.11