From 7937ff1ff60d0efd815379fb2e62fe8fca2c2691 Mon Sep 17 00:00:00 2001 From: GurkiranSingh Date: Sun, 6 Nov 2022 12:40:38 -0500 Subject: [PATCH 1/3] fix: 'Patterns must be a string' error when passing undefined Signed-off-by: GurkiranSingh --- packages/vitest/src/node/plugins/index.ts | 10 +++- pnpm-lock.yaml | 58 +++++++++++++++-------- 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/packages/vitest/src/node/plugins/index.ts b/packages/vitest/src/node/plugins/index.ts index 3a2f71eb55db..c45948f78a8f 100644 --- a/packages/vitest/src/node/plugins/index.ts +++ b/packages/vitest/src/node/plugins/index.ts @@ -12,6 +12,14 @@ import { MocksPlugin } from './mock' import { CSSEnablerPlugin } from './cssEnabler' import { CoverageTransform } from './coverageTransform' +function removeUndefinedValues(obj: Record) { + for (const key in obj) { + if (obj[key] === undefined) + delete obj[key] + } + return obj +} + export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('test')): Promise { const getRoot = () => ctx.config?.root || options.root || process.cwd() @@ -36,7 +44,7 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('t // preliminary merge of options to be able to create server options for vite // however to allow vitest plugins to modify vitest config values // this is repeated in configResolved where the config is final - const preOptions = deepMerge({}, configDefaults, options, viteConfig.test ?? {}) + const preOptions = deepMerge({}, configDefaults, options, removeUndefinedValues(viteConfig.test) ?? {}) preOptions.api = resolveApiConfig(preOptions) if (viteConfig.define) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b46db0d45f61..f4ff9629f984 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,7 +133,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 vite: 3.2.1 vitest: link:../../packages/vitest @@ -147,7 +147,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 axios: 0.26.1 fastify: 4.5.3 supertest: 6.2.4 @@ -166,7 +166,7 @@ importers: '@rollup/plugin-graphql': 1.1.0_graphql@16.6.0 graphql: 16.6.0 devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 vite: 3.2.1 vitest: link:../../packages/vitest @@ -177,7 +177,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 jest-image-snapshot: 4.5.1 vite: 3.2.1 vitest: link:../../packages/vitest @@ -192,7 +192,7 @@ importers: dependencies: lit: 2.3.1 devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -213,7 +213,7 @@ importers: axios: 0.26.1 tinyspy: 0.3.3 devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 react: 18.2.0 vite: 3.2.1 vitest: link:../../packages/vitest @@ -238,8 +238,8 @@ importers: react-dom: 18.0.0_react@18.0.0 devDependencies: '@testing-library/react': 13.3.0_zpnidt7m3osuk7shl3s4oenomq - '@types/node': 18.11.8 - '@types/react': 18.0.24 + '@types/node': 18.11.9 + '@types/react': 18.0.25 '@vitejs/plugin-react': 2.2.0 jsdom: 20.0.2 typescript: 4.6.3 @@ -254,7 +254,7 @@ importers: vitest: workspace:* devDependencies: '@playwright/test': 1.25.1 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 playwright: 1.25.1 vite: 3.2.1 vitest: link:../../packages/vitest @@ -266,7 +266,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 puppeteer: 13.7.0 vite: 3.2.1 vitest: link:../../packages/vitest @@ -289,7 +289,7 @@ importers: '@types/react': 17.0.49 '@types/react-test-renderer': 17.0.2 '@vitejs/plugin-react': 2.2.0_vite@3.2.1 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 happy-dom: 7.6.6 jsdom: 20.0.2 react-test-renderer: 17.0.2_react@17.0.2 @@ -317,7 +317,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 2.2.0_vite@3.2.1 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 '@wojtekmaj/enzyme-adapter-react-17': 0.6.7_7ltvq4e2railvf5uya4ffxpe2a enzyme: 3.11.0 vite: 3.2.1 @@ -360,7 +360,7 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 date-fns: 2.29.2 jsdom: 20.0.2 vite: 3.2.1 @@ -412,7 +412,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 babel-loader: 8.2.5_@babel+core@7.18.13 jsdom: 20.0.2 msw: 0.39.2 @@ -447,7 +447,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -478,7 +478,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 cross-fetch: 3.1.5 jsdom: 20.0.2 msw: 0.39.2 @@ -530,7 +530,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': 1.0.3_svelte@3.49.0+vite@3.2.1 '@testing-library/svelte': 3.2.1_svelte@3.49.0 - '@vitest/ui': link:../../packages/ui + '@vitest/ui': 0.24.5 jsdom: 20.0.2 svelte: 3.49.0 vite: 3.2.1 @@ -6849,7 +6849,7 @@ packages: /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: true /@types/cookie/0.4.1: @@ -6909,7 +6909,7 @@ packages: /@types/form-data/0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 18.11.8 + '@types/node': 18.11.9 dev: true /@types/fs-extra/9.0.13: @@ -7064,6 +7064,10 @@ packages: resolution: {integrity: sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==} dev: true + /@types/node/18.11.9: + resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + dev: true + /@types/node/18.7.13: resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==} dev: false @@ -7117,7 +7121,7 @@ packages: /@types/react-dom/18.0.6: resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} dependencies: - '@types/react': 18.0.24 + '@types/react': 18.0.25 dev: true /@types/react-is/17.0.3: @@ -7153,6 +7157,14 @@ packages: '@types/scheduler': 0.16.2 csstype: 3.1.0 + /@types/react/18.0.25: + resolution: {integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.0 + dev: true + /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: @@ -7735,6 +7747,12 @@ packages: vue: 2.7.10 dev: true + /@vitest/ui/0.24.5: + resolution: {integrity: sha512-hdj6cmlrVPt3Mpgn0ITytTqnxQLGB4hRgueFuzlKSrqAG30wUrrxQjrW55krE1NR15r1c2jzUBwjzvIJsyoUwg==} + dependencies: + sirv: 2.0.2 + dev: true + /@vue/babel-helper-vue-transform-on/1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true From d778b549abb80993ee477b0276ae2afe5ecfdefe Mon Sep 17 00:00:00 2001 From: GurkiranSingh Date: Sun, 6 Nov 2022 12:49:08 -0500 Subject: [PATCH 2/3] chore: lock files changes on pnpm install from latest upstream Signed-off-by: GurkiranSingh --- pnpm-lock.yaml | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 158d5a316d53..72d1728e321f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,7 +133,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui vite: 3.2.1 vitest: link:../../packages/vitest @@ -147,7 +147,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui axios: 0.26.1 fastify: 4.5.3 supertest: 6.2.4 @@ -166,7 +166,7 @@ importers: '@rollup/plugin-graphql': 1.1.0_graphql@16.6.0 graphql: 16.6.0 devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui vite: 3.2.1 vitest: link:../../packages/vitest @@ -177,7 +177,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui jest-image-snapshot: 4.5.1 vite: 3.2.1 vitest: link:../../packages/vitest @@ -192,7 +192,7 @@ importers: dependencies: lit: 2.3.1 devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -213,7 +213,7 @@ importers: axios: 0.26.1 tinyspy: 0.3.3 devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui react: 18.2.0 vite: 3.2.1 vitest: link:../../packages/vitest @@ -239,7 +239,7 @@ importers: devDependencies: '@testing-library/react': 13.3.0_zpnidt7m3osuk7shl3s4oenomq '@types/node': 18.11.9 - '@types/react': 18.0.24 + '@types/react': 18.0.25 '@vitejs/plugin-react': 2.2.0 jsdom: 20.0.2 typescript: 4.6.3 @@ -254,7 +254,7 @@ importers: vitest: workspace:* devDependencies: '@playwright/test': 1.25.1 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui playwright: 1.25.1 vite: 3.2.1 vitest: link:../../packages/vitest @@ -266,7 +266,7 @@ importers: vite: ^3.2.0 vitest: workspace:* devDependencies: - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui puppeteer: 13.7.0 vite: 3.2.1 vitest: link:../../packages/vitest @@ -289,7 +289,7 @@ importers: '@types/react': 17.0.49 '@types/react-test-renderer': 17.0.2 '@vitejs/plugin-react': 2.2.0_vite@3.2.1 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui happy-dom: 7.6.6 jsdom: 20.0.2 react-test-renderer: 17.0.2_react@17.0.2 @@ -317,7 +317,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 2.2.0_vite@3.2.1 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui '@wojtekmaj/enzyme-adapter-react-17': 0.6.7_7ltvq4e2railvf5uya4ffxpe2a enzyme: 3.11.0 vite: 3.2.1 @@ -360,7 +360,7 @@ importers: '@testing-library/jest-dom': 5.16.5 '@testing-library/react': 13.3.0_biqbaboplfbrettd7655fr4n2y '@testing-library/user-event': 14.4.3 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui date-fns: 2.29.2 jsdom: 20.0.2 vite: 3.2.1 @@ -412,7 +412,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui babel-loader: 8.2.5_@babel+core@7.18.13 jsdom: 20.0.2 msw: 0.39.2 @@ -447,7 +447,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui jsdom: 20.0.2 vite: 3.2.1 vitest: link:../../packages/vitest @@ -478,7 +478,7 @@ importers: '@types/react': 17.0.49 '@types/react-dom': 17.0.17 '@vitejs/plugin-react': 1.3.2 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui cross-fetch: 3.1.5 jsdom: 20.0.2 msw: 0.39.2 @@ -530,7 +530,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': 1.0.3_svelte@3.49.0+vite@3.2.1 '@testing-library/svelte': 3.2.1_svelte@3.49.0 - '@vitest/ui': 0.24.5 + '@vitest/ui': link:../../packages/ui jsdom: 20.0.2 svelte: 3.49.0 vite: 3.2.1 @@ -7066,10 +7066,6 @@ packages: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} dev: true - /@types/node/18.11.9: - resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} - dev: true - /@types/node/18.7.13: resolution: {integrity: sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==} dev: false @@ -7749,12 +7745,6 @@ packages: vue: 2.7.10 dev: true - /@vitest/ui/0.24.5: - resolution: {integrity: sha512-hdj6cmlrVPt3Mpgn0ITytTqnxQLGB4hRgueFuzlKSrqAG30wUrrxQjrW55krE1NR15r1c2jzUBwjzvIJsyoUwg==} - dependencies: - sirv: 2.0.2 - dev: true - /@vue/babel-helper-vue-transform-on/1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} dev: true From 2cb93477885236498a74d6af55f805ba3f91337e Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 7 Nov 2022 20:20:34 +0800 Subject: [PATCH 3/3] chore: update --- packages/vitest/src/node/plugins/index.ts | 17 +++++++---------- packages/vitest/src/utils/index.ts | 8 ++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/vitest/src/node/plugins/index.ts b/packages/vitest/src/node/plugins/index.ts index c45948f78a8f..abe240ac341b 100644 --- a/packages/vitest/src/node/plugins/index.ts +++ b/packages/vitest/src/node/plugins/index.ts @@ -2,7 +2,7 @@ import type { UserConfig as ViteConfig, Plugin as VitePlugin } from 'vite' import { relative } from 'pathe' import { configDefaults } from '../../defaults' import type { ResolvedConfig, UserConfig } from '../../types' -import { deepMerge, ensurePackageInstalled, notNullish } from '../../utils' +import { deepMerge, ensurePackageInstalled, notNullish, removeUndefinedValues } from '../../utils' import { resolveApiConfig } from '../config' import { Vitest } from '../core' import { generateScopedClassName } from '../../integrations/css/css-modules' @@ -12,14 +12,6 @@ import { MocksPlugin } from './mock' import { CSSEnablerPlugin } from './cssEnabler' import { CoverageTransform } from './coverageTransform' -function removeUndefinedValues(obj: Record) { - for (const key in obj) { - if (obj[key] === undefined) - delete obj[key] - } - return obj -} - export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('test')): Promise { const getRoot = () => ctx.config?.root || options.root || process.cwd() @@ -44,7 +36,12 @@ export async function VitestPlugin(options: UserConfig = {}, ctx = new Vitest('t // preliminary merge of options to be able to create server options for vite // however to allow vitest plugins to modify vitest config values // this is repeated in configResolved where the config is final - const preOptions = deepMerge({}, configDefaults, options, removeUndefinedValues(viteConfig.test) ?? {}) + const preOptions = deepMerge( + {}, + configDefaults, + options, + removeUndefinedValues(viteConfig.test ?? {}), + ) preOptions.api = resolveApiConfig(preOptions) if (viteConfig.define) { diff --git a/packages/vitest/src/utils/index.ts b/packages/vitest/src/utils/index.ts index 230d4dbbc514..15eb87b1b799 100644 --- a/packages/vitest/src/utils/index.ts +++ b/packages/vitest/src/utils/index.ts @@ -66,6 +66,14 @@ export function getFullName(task: Task) { return getNames(task).join(c.dim(' > ')) } +export function removeUndefinedValues>(obj: T): T { + for (const key in Object.keys(obj)) { + if (obj[key] === undefined) + delete obj[key] + } + return obj +} + export async function ensurePackageInstalled( dependency: string, root: string,