@vitest/browser-playwright 4.1.8 → 4.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +14 -2
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { asLocator, parseKeyDef, resolveScreenshotPath, defineBrowserProvider } from '@vitest/browser';
1
+ import { asLocator, parseKeyDef, resolveScreenshotPath, assertBrowserApiWrite, assertBrowserFileAccess, defineBrowserProvider } from '@vitest/browser';
2
2
  export { defineBrowserCommand } from '@vitest/browser';
3
3
  import { createManualModuleSource } from '@vitest/mocker/node';
4
4
  import c from 'tinyrainbow';
@@ -514,6 +514,8 @@ async function takeScreenshot(context, name, options) {
514
514
  let savePath;
515
515
  if (options.save) {
516
516
  savePath = normalize(path);
517
+ assertBrowserApiWrite(context.project, savePath);
518
+ assertBrowserFileAccess(context.project, savePath);
517
519
  await mkdir(dirname(savePath), { recursive: true });
518
520
  }
519
521
  const mask = options.mask?.map((selector) => getDescribedLocator(context, selector));
@@ -602,6 +604,8 @@ const startChunkTrace = async (command, { name, title }) => {
602
604
  const stopChunkTrace = async (context, { name }) => {
603
605
  if (isPlaywrightProvider(context.provider)) {
604
606
  const path = resolveTracesPath(context, name);
607
+ assertBrowserApiWrite(context.project, path);
608
+ assertBrowserFileAccess(context.project, path);
605
609
  context.provider.pendingTraces.delete(path);
606
610
  await context.context.tracing.stopChunk({ path });
607
611
  return { tracePath: path };
@@ -688,6 +692,10 @@ const deleteTracing = async (context, { traces }) => {
688
692
  throw new Error(`stopChunkTrace cannot be called outside of the test file.`);
689
693
  }
690
694
  if (isPlaywrightProvider(context.provider)) {
695
+ for (const trace of traces) {
696
+ assertBrowserApiWrite(context.project, trace);
697
+ assertBrowserFileAccess(context.project, trace);
698
+ }
691
699
  return Promise.all(traces.map((trace) => unlink(trace).catch((err) => {
692
700
  if (err.code === "ENOENT") {
693
701
  // Ignore the error if the file doesn't exist
@@ -702,6 +710,8 @@ const deleteTracing = async (context, { traces }) => {
702
710
  const annotateTraces = async ({ project }, { testId, traces }) => {
703
711
  const vitest = project.vitest;
704
712
  await Promise.all(traces.map((trace) => {
713
+ assertBrowserApiWrite(project, trace);
714
+ assertBrowserFileAccess(project, trace);
705
715
  const entity = vitest.state.getReportedEntityById(testId);
706
716
  const location = entity?.location ? {
707
717
  file: entity.module.moduleId,
@@ -746,7 +756,9 @@ const upload = async (context, selector, files, options) => {
746
756
  const root = context.project.config.root;
747
757
  const playwrightFiles = files.map((file) => {
748
758
  if (typeof file === "string") {
749
- return resolve(root, file);
759
+ const filepath = resolve(root, file);
760
+ assertBrowserFileAccess(context.project, filepath);
761
+ return filepath;
750
762
  }
751
763
  return {
752
764
  name: file.name,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/browser-playwright",
3
3
  "type": "module",
4
- "version": "4.1.8",
4
+ "version": "4.1.10",
5
5
  "description": "Browser running for Vitest using playwright",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -42,7 +42,7 @@
42
42
  ],
43
43
  "peerDependencies": {
44
44
  "playwright": "*",
45
- "vitest": "4.1.8"
45
+ "vitest": "4.1.10"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "playwright": {
@@ -51,12 +51,12 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "tinyrainbow": "^3.1.0",
54
- "@vitest/browser": "4.1.8",
55
- "@vitest/mocker": "4.1.8"
54
+ "@vitest/browser": "4.1.10",
55
+ "@vitest/mocker": "4.1.10"
56
56
  },
57
57
  "devDependencies": {
58
- "playwright": "^1.59.0",
59
- "vitest": "4.1.8"
58
+ "playwright": "^1.61.0",
59
+ "vitest": "4.1.10"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "premove dist && pnpm rollup -c",