wallabyjs / public

Repository for Wallaby.js questions and issues
http://wallabyjs.com
758 stars 45 forks source link

Vitest is nearly twice as slow as jest in wallabyjs? #3299

Closed shanehsi closed 9 months ago

shanehsi commented 9 months ago

Issue description or question

First of all, I really love Wallaby. It definitely makes TDD more comfortable, and I'm a heavy user.

This is one of my daily scenarios:

For ultimate performance, I tried creating a new Wallaby configuration file that only covers a few recently modified files. However, even a small change (like adding a console.log to inspect intermediate values) takes around 2.5s to 3s. I was hoping to optimize the performance to around 1s. Tonight, I had some time to try switching from Jest to vitest, but surprisingly, it was even slower, approximately twice as slow. I would like to ask, what could be the reason for this? And of course, I would like to know how to make the tests run faster after making changes?

What I changed: comment/uncomment one line.

it('get columns', () => {
    model.schema = schema2.EquipmentResourceSchema as any
    const cols = model.columns
+    console.log(cols)
-    console.log(cols)
    expect(cols).toEqual(

The output:

jest

​[Info]​ Finished executing 5 affected test(s) in 6.33 second(s)  // First start 
​[Info]​ Finished executing 2 affected test(s) in 1.65 second(s)
​[Info]​ Finished executing 2 affected test(s) in 1.57 second(s)
​[Info]​ Finished executing 2 affected test(s) in 1.5 second(s)

vitest

​[Info]​ Finished executing 5 affected test(s) in 4.69 second(s) // First start 
​[Info]​ Finished executing 2 affected test(s) in 3.33 second(s)
​[Info]​ Finished executing 2 affected test(s) in 3.24 second(s)
​[Info]​ Finished executing 2 affected test(s) in 3.28 second(s)

Wallaby diagnostics report

shanehsi commented 9 months ago

I'm sorry, I don't know why I can't copy diagnostics report anymore. I have uninstalled the plugin and reinstalled it, but it still doesn't work. The Output indeed shows that it has been copied to the clipboard.

​[Info]​ Diagnostics report has been successfully copied to clipboard.
shanehsi commented 9 months ago

update: I switched to WebStorm to copy the diagnostic log.

JEST

{
  editorVersion: 'WebStorm 2023.1',
  pluginVersion: '1.0.282',
  editorType: 'IntelliJ',
  osVersion: 'darwin 22.2.0',
  nodeVersion: 'v18.12.0',
  coreVersion: '1.0.1475',
  checksum: 'ZGU3ZDI3YmZhZDJhZTJhYzdiNjBhMmE5YTY0OTQ5ZGIsMTcyMjkwMjQwMDAwMCww',
  config: {
    workers: { regular: 1, initial: 2, recycle: false },
    files: [
      { pattern: 'libs/flowda-design/src/lib/table-filter/*.ts', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: 'libs/flowda-design/src/lib/table-filter/*.spec.ts', ignore: true, trigger: true, load: true, file: true }
    ],
    tests: [ { pattern: 'libs/flowda-design/src/lib/table-filter/*.spec.ts', ignore: false, trigger: true, load: true, test: true, order: 2 } ],
    diagnostics: {
      jest: {
        config: {
          configs: [
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'camunda-external-task' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json', isolatedModules: true } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'e4a79aa718e9b650e01fc780a6f05c08',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/camunda-external-task',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/camunda-external-task' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '**/?(*.)+(spec|test).[jt]s?(x)' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'flowda-admin-api' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'f0abbc93d2f7c3a8561421ab217de1e2',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api/src/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'flowda-admin-api-e2e' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: '947689d4f4f1ab3c4ae88865a9cdaafc',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api/test/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'flowda-types' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: '81f551b364fc8722716c4a0e2aa634e4',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'tsx', 'js', 'jsx' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-types',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-types' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-jsdom@28.1.1/node_modules/jest-environment-jsdom/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '**/?(*.)+(spec|test).[jt]s?(x)' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]sx?$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'flowda-api' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'b0b5fe622e32a5860bd4d4563c52f139',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api/src/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'flowda-api-e2e' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: '8458d26f315aa68b5d3cbff718ce8a83',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api/test/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'sdk-api' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'ae5d72cdb4f747f93390dcb40647fe05',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api/src/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'sdk-api-e2e' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'd4d868ffb22e5d725406a5aa14a11d53',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api/test/**/*.spec.ts' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            },
            {
              automock: false,
              cache: true,
              cacheDirectory: '/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              clearMocks: false,
              coveragePathIgnorePatterns: [ '/node_modules/' ],
              cwd: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: { color: 'white', name: 'wms-api' },
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: { 'ts-jest': { tsconfig: '<rootDir>/tsconfig.spec.json' } },
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: 'b2da8e69515e3474d96acf96524cf0ee',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'js', 'html' ],
              moduleNameMapper: [],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              prettierPath: 'prettier',
              resetMocks: false,
              resetModules: false,
              resolver: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@nrwl+jest@15.7.2_te3jowb5tikutf4tlvhffgln4u/node_modules/@nrwl/jest/plugins/resolver.js',
              restoreMocks: false,
              rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/wms-api',
              roots: [ '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/wms-api' ],
              runner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-runner@28.1.3/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: undefined,
              snapshotResolver: undefined,
              snapshotSerializers: [],
              testEnvironment: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-environment-node@28.1.1/node_modules/jest-environment-node/build/index.js',
              testEnvironmentOptions: { customExportConditions: [ 'node', 'require', 'default' ] },
              testLocationInResults: false,
              testMatch: [ '**/?(*.)+(spec|test).[jt]s?(x)' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/jest-circus@28.1.3/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.[tj]s$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ],
                [
                  '^.+\\.(ts|js|html)$',
                  '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/ts-jest@28.0.5_qittkihcyfhxkpwvp5aiuoqoza/node_modules/ts-jest/dist/index.js',
                  {}
                ]
              ],
              transformIgnorePatterns: [ '/node_modules/', '\\.pnp\\.[^\\/]+$' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            }
          ],
          globalConfig: {
            bail: 0,
            changedFilesWithAncestor: false,
            changedSince: undefined,
            ci: false,
            collectCoverage: false,
            collectCoverageFrom: [],
            collectCoverageOnlyFrom: undefined,
            coverageDirectory: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/coverage',
            coverageProvider: 'babel',
            coverageReporters: [ 'json', 'text', 'lcov', 'clover' ],
            coverageThreshold: undefined,
            detectLeaks: false,
            detectOpenHandles: false,
            errorOnDeprecated: false,
            expand: false,
            filter: undefined,
            findRelatedTests: false,
            forceExit: false,
            globalSetup: undefined,
            globalTeardown: undefined,
            json: false,
            lastCommit: false,
            listTests: false,
            logHeapUsage: false,
            maxConcurrency: 5,
            maxWorkers: 11,
            noSCM: undefined,
            noStackTrace: false,
            nonFlagArgs: undefined,
            notify: false,
            notifyMode: 'failure-change',
            onlyChanged: false,
            onlyFailures: false,
            outputFile: undefined,
            passWithNoTests: false,
            projects: [
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/camunda-external-task/jest.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api/jest.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-admin-api/jest-e2e.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-types/jest.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api/jest.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/flowda-api/jest-e2e.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api/jest.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/sdk-api/jest-e2e.config.ts',
              '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/apps/wms-api/jest.config.ts'
            ],
            replname: undefined,
            reporters: undefined,
            rootDir: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
            runTestsByPath: false,
            shard: undefined,
            silent: undefined,
            skipFilter: false,
            snapshotFormat: undefined,
            testFailureExitCode: 1,
            testNamePattern: undefined,
            testPathPattern: '',
            testResultsProcessor: undefined,
            testSequencer: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/@jest+test-sequencer@28.1.3/node_modules/@jest/test-sequencer/build/index.js',
            testTimeout: undefined,
            updateSnapshot: 'new',
            useStderr: false,
            verbose: undefined,
            watch: false,
            watchAll: false,
            watchPlugins: undefined,
            watchman: true
          },
          hasDeprecationWarnings: false,
          wallaby: {
            roots: [ 'apps/camunda-external-task', 'apps/flowda-admin-api', 'libs/flowda-types', 'apps/flowda-api', 'apps/sdk-api', 'apps/wms-api' ],
            watchPathIgnorePatterns: [
              '/node_modules/',
              '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/',
              '(apps/camunda-external-task.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/flowda-admin-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(libs/flowda-types.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/flowda-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/sdk-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/wms-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '\\./coverage'
            ],
            testPathIgnorePatterns: [
              '/node_modules/',
              '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/',
              '(apps/camunda-external-task.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/flowda-admin-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(libs/flowda-types.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/flowda-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/sdk-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '(apps/wms-api.*)/private/var/folders/_8/xvht3ycj0kb50k418bd10l400000gn/T/jest_dx',
              '\\./coverage'
            ],
            testMatch: [
              '**/?(*.)+(spec|test).[jt]s?(x)',
              'apps/flowda-admin-api/src/**/*.spec.ts',
              'apps/flowda-admin-api/test/**/*.spec.ts',
              'apps/flowda-api/src/**/*.spec.ts',
              'apps/flowda-api/test/**/*.spec.ts',
              'apps/sdk-api/src/**/*.spec.ts',
              'apps/sdk-api/test/**/*.spec.ts'
            ],
            testRegex: []
          }
        }
      }
    },
    filesWithCoverageCalculated: [],
    filesWithNoCoverageCalculated: [],
    globalSetup: false,
    testFramework: { version: 'jest@24.8.0', configurator: 'jest@24.8.0', reporter: 'jest@24.8.0', starter: 'jest@24.8.0', autoDetected: true },
    dot: true,
    captureConsoleLog: true,
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    logLimits: { inline: { depth: 5, elements: 5000 }, values: { default: { stringLength: 200 }, autoExpand: { elements: 5000, stringLength: 8192, depth: 10 } } },
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore|c8 ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    mapConsoleMessagesStackTrace: false,
    extensions: {},
    env: { type: 'node', params: {}, runner: '<homeDir>/.nvm/versions/node/v18.12.0/bin/node', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    runAllTestsWhenNoAffectedTests: false,
    configCode: 'module.exports = function (wallaby) {\n' +
      '  return {\n' +
      '    // Tell Wallaby to only try configuring with vitest\n' +
      "    // Default is: ['angular', 'jest', 'vitest']\n" +
      "    autoDetect: ['jest'],\n" +
      '    workers: { regular: 1, initial: 2 },\n' +
      '    files: {\n' +
      '      override: filePatterns => {\n' +
      "        return ['libs/flowda-design/src/lib/table-filter/*.ts', '!libs/flowda-design/src/lib/table-filter/*.spec.ts']\n" +
      '      },\n' +
      '    },\n' +
      '\n' +
      '    tests: {\n' +
      '      override: testPatterns => {\n' +
      '        return [\n' +
      "          'libs/flowda-design/src/lib/table-filter/*.spec.ts',\n" +
      '          // snapshot 全部不要用 wallaby 跑\n' +
      '        ]\n' +
      '      },\n' +
      '    },\n' +
      '    // testFramework: {\n' +
      "    //   configFile: './libs/flowda-shared/vite.config.ts'\n" +
      '    // }\n' +
      '  }\n' +
      '}\n'
  },
  packageJSON: {
    dependencies: {
      '@anatine/zod-mock': '^3.1.1',
      '@anatine/zod-openapi': 'file:.yalc/@anatine/zod-openapi',
      '@ant-design/icons': '^4.8.0',
      '@babel/core': '7.12.13',
      '@babel/plugin-proposal-class-properties': '^7.18.6',
      '@babel/plugin-proposal-decorators': '^7.21.0',
      '@babel/preset-react': '^7.14.5',
      '@babel/preset-typescript': '7.12.13',
      '@casl/ability': '^6.3.2',
      '@casl/prisma': '^1.4.1',
      '@golevelup/ts-jest': '^0.3.4',
      '@nestjs/common': '^9.0.0',
      '@nestjs/core': '^9.0.0',
      '@nestjs/jwt': '^9.0.0',
      '@nestjs/passport': '^9.0.0',
      '@nestjs/platform-express': '^9.0.0',
      '@nestjs/schedule': '^4.0.0',
      '@nestjs/schematics': '^9.0.0',
      '@nestjs/swagger': '^6.1.3',
      '@nestjs/testing': '^9.0.0',
      '@pmmmwh/react-refresh-webpack-plugin': '^0.5.7',
      '@prisma/client': '^4.13.0',
      '@rebass/grid': '^6.1.0',
      '@svgr/webpack': '^6.1.2',
      '@swc/core': '^1.2.173',
      '@swc/jest': '0.2.20',
      '@testing-library/react': '13.4.0',
      '@typescript-eslint/eslint-plugin': '^5.36.1',
      '@typescript-eslint/parser': '^5.36.1',
      '@vitejs/plugin-react': '^4.0.0',
      '@vitest/coverage-c8': '~0.33.0',
      '@vitest/ui': '^0.34.0',
      antd: '5.1.1',
      'antd-mobile': '^5.28.1',
      axios: '1.1.0',
      'babel-jest': '28.1.1',
      'babel-loader': '8.1.0',
      'babel-plugin-styled-components': '1.10.7',
      bcrypt: '^5.1.0',
      'cache-manager': '^5.2.4',
      'camunda-external-task-client-js': '^3.0.1',
      cheerio: '^0.22.0',
      'chrome-launcher': '^1.0.0',
      'class-validator': '^0.13.2',
      'class-validator-jsonschema': '^3.1.1',
      classnames: '^2.3.2',
      consola: '^3.2.3',
      'cookie-parser': '^1.4.6',
      'copy-to-clipboard': '^3.3.3',
      'core-js': '^3.6.5',
      'cos-nodejs-sdk-v5': '^2.11.15',
      cron: '3.1.3',
      'cron-parser': '^4.9.0',
      cronstrue: '^2.32.0',
      'crypto-js': '^4.1.1',
      'css-loader': '^6.4.0',
      cuid: '^2.1.8',
      cypress: '^12.2.0',
      dayjs: '^1.11.6',
      dotenv: '^16.0.3',
      'dotenv-cli': '^6.0.0',
      envalid: '^7.3.1',
      esbuild: '^0.17.5',
      eslint: '~8.15.0',
      'eslint-config-prettier': '8.1.0',
      'eslint-plugin-cypress': '^2.10.3',
      'eslint-plugin-import': '2.26.0',
      'eslint-plugin-jsx-a11y': '6.6.1',
      'eslint-plugin-react': '7.31.11',
      'eslint-plugin-react-hooks': '4.6.0',
      execa: '^5.1.1',
      express: '^4.18.2',
      'express-session': '^1.17.3',
      formik: '^1.5.8',
      'fs-extra': '^11.1.0',
      gsap: '^3.12.2',
      handlebars: '^4.7.7',
      history: '4.10.1',
      'html-minifier': '4.0.0',
      'http-proxy-middleware': '^2.0.6',
      'inline-style-parser': '^0.1.1',
      inversify: '^6.0.1',
      'inversify-react': '^1.1.0',
      'jest-environment-jsdom': '28.1.1',
      'jest-environment-node': '28.1.1',
      'jest-junit': '^14.0.1',
      'jest-mock-extended': '2.0.4',
      jsdom: '~20.0.3',
      'json-as-xlsx': '^2.5.5',
      jsonwebtoken: '^8.5.1',
      keymachine: '^2.1.0',
      lighthouse: '^9.6.8',
      lodash: '^4.17.21',
      lokijs: '^1.5.12',
      'lru-cache': '^10.0.1',
      mobx: '^6.6.2',
      'mobx-react': '^7.6.0',
      mockdate: '^3.0.5',
      'nestjs-zod': '^2.3.2',
      'node-fetch': '^2.7.0',
      'node-html-parser': '^6.1.5',
      nodemailer: '^6.8.0',
      nx: '15.7.2',
      'openapi3-ts': '^2.0.0 || ^3.0.0',
      'p-limit': '^3.0.0',
      passport: '^0.6.0',
      'passport-custom': '^1.1.1',
      'passport-jwt': '^4.0.1',
      'passport-local': '^1.0.0',
      pluralize: '^8.0.0',
      polished: '^4.2.2',
      postcss: '^8.4.27',
      'postcss-url': '^10.1.3',
      prettier: '^2.6.2',
      prisma: '^4.13.0',
      'prisma-dbml-generator': '^0.10.0',
      puppeteer: '^21.0.2',
      qs: '^6.11.2',
      radash: '^11.0.0',
      react: '18.2.0',
      'react-circular-progressbar': '^2.1.0',
      'react-dom': '18.2.0',
      'react-imask': '^7.1.3',
      'react-is': '18.2.0',
      'react-js-cron': '^3.2.0',
      'react-markdown': '^8.0.7',
      'react-refresh': '^0.10.0',
      'react-router-dom': '5.3.4',
      'react-test-renderer': '18.2.0',
      'reflect-metadata': '^0.1.13',
      'regenerator-runtime': '0.13.7',
      remeda: '^1.29.0',
      rxjs: '^7.0.0',
      sharp: '^0.30.7',
      'storybook-addon-swc': '^1.1.7',
      'storybook-react-context': '^0.6.0',
      'style-loader': '^3.3.0',
      'styled-components': '5.3.6',
      supertest: '^6.3.1',
      'swc-loader': '0.1.15',
      'theme-ui': '^0.15.5',
      'ts-deepmerge': '^6.2.0',
      'ts-jest': '28.0.5',
      tslib: '^2.3.0',
      typescript: '~4.9.5',
      'url-loader': '^4.1.1',
      webpack: '^5.75.0',
      'webpack-merge': '^5.8.0',
      'wechat-oauth': '^1.5.0',
      'wechatpay-node-v3': '^2.0.6',
      yargs: '^17.7.2',
      znv: '^0.4.0',
      zod: '3.21.1',
      'zod-prisma-types': 'file:.yalc/zod-prisma-types',
      zx: '^7.1.1'
    },
    devDependencies: {
      '@faker-js/faker': '^8.0.2',
      '@nrwl/cli': '15.7.2',
      '@nrwl/cypress': '15.7.2',
      '@nrwl/devkit': '15.7.2',
      '@nrwl/esbuild': '15.7.2',
      '@nrwl/eslint-plugin-nx': '15.7.2',
      '@nrwl/jest': '15.7.2',
      '@nrwl/js': '15.7.2',
      '@nrwl/linter': '15.7.2',
      '@nrwl/nest': '15.7.2',
      '@nrwl/node': '15.7.2',
      '@nrwl/nx-cloud': '16.3.0',
      '@nrwl/react': '15.7.2',
      '@nrwl/storybook': '15.7.2',
      '@nrwl/vite': '15.7.2',
      '@nrwl/web': '15.7.2',
      '@nrwl/webpack': '15.7.2',
      '@nrwl/workspace': '15.7.2',
      '@storybook/addon-essentials': '7.2.1',
      '@storybook/addon-interactions': '7.2.1',
      '@storybook/builder-webpack5': '7.2.1',
      '@storybook/core-server': '7.2.1',
      '@storybook/jest': '^0.2.2',
      '@storybook/manager-webpack5': '^6.5.16',
      '@storybook/react': '7.2.1',
      '@storybook/react-vite': '7.2.1',
      '@storybook/test-runner': '^0.13.0',
      '@storybook/testing-library': '^0.2.0',
      '@types/bcrypt': '^5.0.0',
      '@types/cookie-parser': '^1.4.3',
      '@types/crypto-js': '^4.1.1',
      '@types/express': '^4.17.17',
      '@types/express-session': '^1.17.5',
      '@types/fs-extra': '^11.0.1',
      '@types/history': '4.7.11',
      '@types/jest': '28.1.1',
      '@types/jest-when': '^3.5.2',
      '@types/json-schema': '^7.0.11',
      '@types/jsonwebtoken': '^8.5.9',
      '@types/lodash': '^4.14.186',
      '@types/lokijs': '^1.5.7',
      '@types/node': '18.11.9',
      '@types/nodemailer': '^6.4.6',
      '@types/passport-jwt': '^3.0.8',
      '@types/passport-local': '^1.0.35',
      '@types/pluralize': '^0.0.29',
      '@types/qs': '^6.9.7',
      '@types/react': '18.0.25',
      '@types/react-dom': '18.0.9',
      '@types/react-is': '17.0.3',
      '@types/react-router-dom': '5.3.3',
      '@types/rebass__grid': '^6.0.10',
      '@types/reflexbox': '^4.0.5',
      '@types/sinon': '^10.0.16',
      '@types/styled-components': '5.1.26',
      '@types/yargs': '^17.0.24',
      jest: '28.1.1',
      'jest-when': '^3.5.2',
      playwright: '^1.37.1',
      sinon: '^16.0.0',
      'ts-node': '10.9.1',
      vite: '4.0.1',
      'vite-plugin-dts': '^3.5.3',
      'vite-plugin-eslint': '^1.8.1',
      'vite-tsconfig-paths': '^4.2.0',
      vitest: '^0.34.3',
      'vitest-mock-extended': '^1.1.4',
      xlsx: '^0.18.5'
    }
  },
  fs: { numberOfFiles: 2 },
  debug: [
    '2023-12-01T14:39:44.261Z project waiting for initial run signal\n',
    '2023-12-01T14:39:44.275Z config Attempting automatic configuration for jest\n',
    '2023-12-01T14:39:46.410Z jest/config Detected Jest.\n',
    '2023-12-01T14:39:46.410Z jest/config Configured Jest.\n',
    '2023-12-01T14:39:46.410Z config Finished attempting automatic configuration for jest (2135ms)\n',
    '2023-12-01T14:39:46.412Z project Wallaby Node version: v18.12.0\n',
    '2023-12-01T14:39:46.412Z project Wallaby config: <homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/wallaby-tmp.js\n',
    '2023-12-01T14:39:46.454Z fs File system starting\n',
    '2023-12-01T14:39:46.477Z fs File system scan completed\n',
    '2023-12-01T14:39:46.482Z project File cache: <homeDir>/Library/Caches/JetBrains/WebStorm2023.1/wallaby/projects/c34cb36f7459a0f6\n',
    '2023-12-01T14:39:46.488Z uiService Listening port 51236\n',
    '2023-12-01T14:39:46.489Z project package.json file change detected, invalidating local cache\n',
    '2023-12-01T14:39:46.497Z workers Parallelism for initial run: 2, for regular run: 1\n',
    '2023-12-01T14:39:46.497Z workers Starting run worker instance #0\n',
    '2023-12-01T14:39:46.498Z workers Starting run worker instance #1\n',
    '2023-12-01T14:39:46.498Z workers Web server is listening at 50259\n',
    '2023-12-01T14:39:46.498Z project File cache requires some updates, waiting required files from IDE\n',
    '2023-12-01T14:39:46.535Z project Stopping process pool\n',
    '2023-12-01T14:39:46.536Z project Test run started; run priority: 3\n',
    '2023-12-01T14:39:46.537Z project Running all tests\n',
    '2023-12-01T14:39:46.538Z workers Starting test run, priority: 3\n',
    '2023-12-01T14:39:46.538Z nodeRunner Starting sandbox [worker #0, session #viimx]\n',
    '2023-12-01T14:39:46.538Z nodeRunner Preparing sandbox [worker #0, session #viimx]\n',
    '2023-12-01T14:39:46.701Z workers Started run worker instance (delayed) #1\n',
    '2023-12-01T14:39:46.701Z workers Started run worker instance (delayed) #0\n',
    '2023-12-01T14:39:46.701Z nodeRunner Prepared sandbox [worker #0, session #viimx]\n',
    '2023-12-01T14:39:46.701Z workers [worker #0, session #viimx] Running tests in sandbox\n',
    '2023-12-01T14:39:52.534Z workers Scheduling Jest Test Run (viimx): 2023-12-01T14:39:48.929Z\n',
    '2023-12-01T14:39:52.582Z workers [viimx] Loaded unknown number of test(s)\n',
    '2023-12-01T14:39:52.582Z workers [viimx] Test executed: format to query string\n',
    '2023-12-01T14:39:52.583Z workers [viimx] Test executed: format to query string empty\n',
    '2023-12-01T14:39:52.583Z workers [viimx] Test executed: format to filter form value\n',
    '2023-12-01T14:39:52.583Z workers [viimx] Test executed: get columns\n',
    '2023-12-01T14:39:52.584Z workers [viimx] Test executed: get columns\n',
    '2023-12-01T14:39:52.586Z workers [viimx] Run 5 test(s), skipped 0 test(s)\n',
    '2023-12-01T14:39:52.586Z workers Jest Test Run Complete (viimx): 2023-12-01T14:39:52.533Z\n',
    '2023-12-01T14:39:52.588Z workers [viimx] Sandbox is responsive, closing it\n',
    '2023-12-01T14:39:52.589Z project Test run finished\n',
    '2023-12-01T14:39:52.589Z project Processed console.log entries\n',
    '2023-12-01T14:39:52.589Z project Processed loading sequences\n',
    '2023-12-01T14:39:52.590Z project Test name duplicate: get columns\n',
    '2023-12-01T14:39:52.590Z project Processed executed tests\n',
    '2023-12-01T14:39:52.591Z project Processed code coverage\n',
    '2023-12-01T14:39:52.603Z project Test run result processed and sent to IDE\n'
  ]
}
shanehsi commented 9 months ago

Vitest

{
  editorVersion: 'WebStorm 2023.1',
  pluginVersion: '1.0.282',
  editorType: 'IntelliJ',
  osVersion: 'darwin 22.2.0',
  nodeVersion: 'v18.12.0',
  coreVersion: '1.0.1505',
  checksum: 'ZGU3ZDI3YmZhZDJhZTJhYzdiNjBhMmE5YTY0OTQ5ZGIsMTcyMjkwMjQwMDAwMCww',
  config: {
    workers: { regular: 1, initial: 1, recycle: false },
    files: [
      { pattern: 'libs/flowda-design/src/lib/table-filter/*.ts', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: 'libs/flowda-design/src/lib/table-filter/*.spec.ts', ignore: true, trigger: true, load: true, file: true }
    ],
    tests: [ { pattern: 'libs/flowda-design/src/lib/table-filter/*.spec.ts', ignore: false, trigger: true, load: true, test: true, order: 2 } ],
    testFramework: { version: 'vitest@0.14.0', configurator: 'vitest@0.14.0', reporter: 'vitest@0.14.0', starter: 'vitest@0.14.0', configFile: './libs/flowda-shared/vite.config.ts', autoDetected: true },
    diagnostics: {
      vitest: {
        file: {
          config: <Buffer 2f 2f 2f 20 3c 72 65 66 65 72 65 6e 63 65 20 74 79 70 65 73 3d 22 76 69 74 65 73 74 22 20 2f 3e 0a 69 6d 70 6f 72 74 20 7b 20 64 65 66 69 6e 65 43 6f ... 589 more bytes>
        },
        config: {
          config: {
            allowOnly: true,
            watch: true,
            globals: true,
            environment: 'jsdom',
            threads: true,
            clearMocks: false,
            restoreMocks: false,
            mockReset: false,
            include: [ 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ],
            exclude: [
              '**/node_modules/**',
              '**/dist/**',
              '**/cypress/**',
              '**/.{idea,git,cache,output,temp}/**',
              '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*'
            ],
            testTimeout: 5000,
            hookTimeout: 10000,
            teardownTimeout: 10000,
            isolate: true,
            watchExclude: [ '**/node_modules/**', '**/dist/**' ],
            forceRerunTriggers: [ '**/package.json/**', '**/{vitest,vite}.config.*/**' ],
            update: false,
            reporters: [ 'default' ],
            silent: false,
            hideSkippedTests: false,
            ui: false,
            uiBase: '/__vitest__/',
            open: true,
            css: { include: [], modules: { classNameStrategy: 'stable' } },
            coverage: {
              provider: 'v8',
              enabled: false,
              clean: true,
              cleanOnRerun: true,
              reportsDirectory: './coverage',
              exclude: [
                'coverage/**',
                'dist/**',
                'packages/*/test?(s)/**',
                '**/*.d.ts',
                '**/virtual:*',
                '**/__x00__*',
                '**/\x00*',
                'cypress/**',
                'test?(s)/**',
                'test?(-*).?(c|m)[jt]s?(x)',
                '**/*{.,-}{test,spec}.?(c|m)[jt]s?(x)',
                '**/__tests__/**',
                '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*',
                '**/vitest.{workspace,projects}.[jt]s?(on)',
                '**/.{eslint,mocha,prettier}rc.{?(c|m)js,yml}'
              ],
              reportOnFailure: false,
              reporter: [ [ 'text', {} ], [ 'html', {} ], [ 'clover', {} ], [ 'json', {} ] ],
              extension: [
                '.js',  '.cjs',
                '.mjs', '.ts',
                '.mts', '.cts',
                '.tsx', '.jsx',
                '.vue', '.svelte'
              ],
              allowExternal: false
            },
            fakeTimers: { loopLimit: 10000, shouldClearNativeTimers: true, toFake: [ 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'setImmediate', 'clearImmediate', 'Date' ] },
            maxConcurrency: 5,
            dangerouslyIgnoreUnhandledErrors: false,
            typecheck: {
              checker: 'tsc',
              include: [ '**/*.{test,spec}-d.?(c|m)[jt]s?(x)' ],
              exclude: [
                '**/node_modules/**',
                '**/dist/**',
                '**/cypress/**',
                '**/.{idea,git,cache,output,temp}/**',
                '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*'
              ]
            },
            slowTestThreshold: 300,
            cache: { dir: '<homeDir>/Projects/XProjects/node_modules/.vitest' },
            config: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-shared/vite.config.ts',
            defines: {},
            root: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
            mode: [],
            inspect: false,
            inspectBrk: false,
            singleThread: false,
            deps: {
              moduleDirectories: [ '/node_modules/' ],
              optimizer: { ssr: { enabled: true }, web: { enabled: true } },
              web: { transformAssets: true, transformCss: true, transformGlobPattern: [] }
            },
            server: { deps: { inline: [ {}, {}, {}, '@nuxt/test-utils' ], moduleDirectories: [ '/node_modules/' ], cacheDir: '../../node_modules/.vite/flowda-shared' } },
            snapshotOptions: { snapshotFormat: {}, updateSnapshot: 'new', snapshotEnvironment: null },
            experimentalVmWorkerMemoryLimit: 2863311530,
            setupFiles: [],
            sequence: { hooks: 'parallel' },
            environmentMatchGlobs: [],
            browser: { enabled: false, headless: false, slowHijackESM: true, api: { port: 63315 } },
            testTransformMode: {}
          },
          projects: [
            {
              path: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
              config: {
                allowOnly: true,
                watch: true,
                globals: true,
                environment: 'jsdom',
                threads: true,
                clearMocks: false,
                restoreMocks: false,
                mockReset: false,
                include: [ 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ],
                exclude: [
                  '**/node_modules/**',
                  '**/dist/**',
                  '**/cypress/**',
                  '**/.{idea,git,cache,output,temp}/**',
                  '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*'
                ],
                testTimeout: 5000,
                hookTimeout: 10000,
                teardownTimeout: 10000,
                isolate: true,
                watchExclude: [ '**/node_modules/**', '**/dist/**' ],
                forceRerunTriggers: [ '**/package.json/**', '**/{vitest,vite}.config.*/**' ],
                update: false,
                reporters: [ 'default' ],
                silent: false,
                hideSkippedTests: false,
                ui: false,
                uiBase: '/__vitest__/',
                open: true,
                css: { include: [], modules: { classNameStrategy: 'stable' } },
                coverage: {
                  provider: 'v8',
                  enabled: false,
                  clean: true,
                  cleanOnRerun: true,
                  reportsDirectory: './coverage',
                  exclude: [
                    'coverage/**',
                    'dist/**',
                    'packages/*/test?(s)/**',
                    '**/*.d.ts',
                    '**/virtual:*',
                    '**/__x00__*',
                    '**/\x00*',
                    'cypress/**',
                    'test?(s)/**',
                    'test?(-*).?(c|m)[jt]s?(x)',
                    '**/*{.,-}{test,spec}.?(c|m)[jt]s?(x)',
                    '**/__tests__/**',
                    '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*',
                    '**/vitest.{workspace,projects}.[jt]s?(on)',
                    '**/.{eslint,mocha,prettier}rc.{?(c|m)js,yml}'
                  ],
                  reportOnFailure: false,
                  reporter: [ [ 'text', {} ], [ 'html', {} ], [ 'clover', {} ], [ 'json', {} ] ],
                  extension: [
                    '.js',  '.cjs',
                    '.mjs', '.ts',
                    '.mts', '.cts',
                    '.tsx', '.jsx',
                    '.vue', '.svelte'
                  ],
                  allowExternal: false
                },
                fakeTimers: { loopLimit: 10000, shouldClearNativeTimers: true, toFake: [ 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'setImmediate', 'clearImmediate', 'Date' ] },
                maxConcurrency: 5,
                dangerouslyIgnoreUnhandledErrors: false,
                typecheck: {
                  checker: 'tsc',
                  include: [ '**/*.{test,spec}-d.?(c|m)[jt]s?(x)' ],
                  exclude: [
                    '**/node_modules/**',
                    '**/dist/**',
                    '**/cypress/**',
                    '**/.{idea,git,cache,output,temp}/**',
                    '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*'
                  ]
                },
                slowTestThreshold: 300,
                cache: { dir: '<homeDir>/Projects/XProjects/node_modules/.vitest' },
                config: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-shared/vite.config.ts',
                defines: {},
                root: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects',
                mode: [],
                inspect: false,
                inspectBrk: false,
                singleThread: false,
                deps: {
                  moduleDirectories: [ '/node_modules/' ],
                  optimizer: { ssr: { enabled: true }, web: { enabled: true } },
                  web: { transformAssets: true, transformCss: true, transformGlobPattern: [] }
                },
                server: { deps: { inline: [ {}, {}, {}, '@nuxt/test-utils' ], moduleDirectories: [ '/node_modules/' ] } },
                snapshotOptions: { snapshotFormat: {}, updateSnapshot: 'new', snapshotEnvironment: null },
                experimentalVmWorkerMemoryLimit: 2863311530,
                setupFiles: [],
                sequence: { hooks: 'parallel' },
                environmentMatchGlobs: [],
                browser: { enabled: false, headless: false, slowHijackESM: true, api: { port: 63315 } },
                testTransformMode: {}
              }
            }
          ],
          package: {
            version: '0.34.3',
            urls: { hooks: 'file://<homeDir>/Library/Caches/JetBrains/WebStorm2023.1/wallaby/wallaby/runners/node/hooks.mjs' },
            paths: {
              root: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/vitest@0.34.3_ktcix33qr4lrvsinwbd33t5xuq/node_modules/vitest',
              dist: '<homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/node_modules/.pnpm/vitest@0.34.3_ktcix33qr4lrvsinwbd33t5xuq/node_modules/vitest/dist'
            }
          }
        }
      }
    },
    preserveComments: false,
    extractComments: true,
    dot: true,
    captureConsoleLog: true,
    filesWithNoCoverageCalculated: [],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    logLimits: { inline: { depth: 5, elements: 5000 }, values: { default: { stringLength: 200 }, autoExpand: { elements: 5000, stringLength: 8192, depth: 10 } } },
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore|c8 ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    mapConsoleMessagesStackTrace: false,
    extensions: {},
    env: {
      type: 'node',
      params: { runner: '--experimental-loader=file://<homeDir>/Library/Caches/JetBrains/WebStorm2023.1/wallaby/wallaby/runners/node/hooks.mjs' },
      runner: '<homeDir>/.nvm/versions/node/v18.12.0/bin/node',
      viewportSize: { width: 800, height: 600 },
      options: { width: 800, height: 600 },
      bundle: true
    },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    runAllTestsWhenNoAffectedTests: true,
    symlinkNodeModules: undefined,
    configCode: 'module.exports = function (wallaby) {\n' +
      '  return {\n' +
      '    // Tell Wallaby to only try configuring with vitest\n' +
      "    // Default is: ['angular', 'jest', 'vitest']\n" +
      "    autoDetect: ['vitest'],\n" +
      '    workers: { regular: 1, initial: 2 },\n' +
      '    files: {\n' +
      '      override: filePatterns => {\n' +
      "        return ['libs/flowda-design/src/lib/table-filter/*.ts', '!libs/flowda-design/src/lib/table-filter/*.spec.ts']\n" +
      '      },\n' +
      '    },\n' +
      '\n' +
      '    tests: {\n' +
      '      override: testPatterns => {\n' +
      '        return [\n' +
      "          'libs/flowda-design/src/lib/table-filter/*.spec.ts',\n" +
      '          // snapshot 全部不要用 wallaby 跑\n' +
      '        ]\n' +
      '      },\n' +
      '    },\n' +
      '    testFramework: {\n' +
      "      configFile: './libs/flowda-shared/vite.config.ts'\n" +
      '    }\n' +
      '  }\n' +
      '}\n'
  },
  packageJSON: {
    dependencies: {
      '@anatine/zod-mock': '^3.1.1',
      '@anatine/zod-openapi': 'file:.yalc/@anatine/zod-openapi',
      '@ant-design/icons': '^4.8.0',
      '@babel/core': '7.12.13',
      '@babel/plugin-proposal-class-properties': '^7.18.6',
      '@babel/plugin-proposal-decorators': '^7.21.0',
      '@babel/preset-react': '^7.14.5',
      '@babel/preset-typescript': '7.12.13',
      '@casl/ability': '^6.3.2',
      '@casl/prisma': '^1.4.1',
      '@golevelup/ts-jest': '^0.3.4',
      '@nestjs/common': '^9.0.0',
      '@nestjs/core': '^9.0.0',
      '@nestjs/jwt': '^9.0.0',
      '@nestjs/passport': '^9.0.0',
      '@nestjs/platform-express': '^9.0.0',
      '@nestjs/schedule': '^4.0.0',
      '@nestjs/schematics': '^9.0.0',
      '@nestjs/swagger': '^6.1.3',
      '@nestjs/testing': '^9.0.0',
      '@pmmmwh/react-refresh-webpack-plugin': '^0.5.7',
      '@prisma/client': '^4.13.0',
      '@rebass/grid': '^6.1.0',
      '@svgr/webpack': '^6.1.2',
      '@swc/core': '^1.2.173',
      '@swc/jest': '0.2.20',
      '@testing-library/react': '13.4.0',
      '@typescript-eslint/eslint-plugin': '^5.36.1',
      '@typescript-eslint/parser': '^5.36.1',
      '@vitejs/plugin-react': '^4.0.0',
      '@vitest/coverage-c8': '~0.33.0',
      '@vitest/ui': '^0.34.0',
      antd: '5.1.1',
      'antd-mobile': '^5.28.1',
      axios: '1.1.0',
      'babel-jest': '28.1.1',
      'babel-loader': '8.1.0',
      'babel-plugin-styled-components': '1.10.7',
      bcrypt: '^5.1.0',
      'cache-manager': '^5.2.4',
      'camunda-external-task-client-js': '^3.0.1',
      cheerio: '^0.22.0',
      'chrome-launcher': '^1.0.0',
      'class-validator': '^0.13.2',
      'class-validator-jsonschema': '^3.1.1',
      classnames: '^2.3.2',
      consola: '^3.2.3',
      'cookie-parser': '^1.4.6',
      'copy-to-clipboard': '^3.3.3',
      'core-js': '^3.6.5',
      'cos-nodejs-sdk-v5': '^2.11.15',
      cron: '3.1.3',
      'cron-parser': '^4.9.0',
      cronstrue: '^2.32.0',
      'crypto-js': '^4.1.1',
      'css-loader': '^6.4.0',
      cuid: '^2.1.8',
      cypress: '^12.2.0',
      dayjs: '^1.11.6',
      dotenv: '^16.0.3',
      'dotenv-cli': '^6.0.0',
      envalid: '^7.3.1',
      esbuild: '^0.17.5',
      eslint: '~8.15.0',
      'eslint-config-prettier': '8.1.0',
      'eslint-plugin-cypress': '^2.10.3',
      'eslint-plugin-import': '2.26.0',
      'eslint-plugin-jsx-a11y': '6.6.1',
      'eslint-plugin-react': '7.31.11',
      'eslint-plugin-react-hooks': '4.6.0',
      execa: '^5.1.1',
      express: '^4.18.2',
      'express-session': '^1.17.3',
      formik: '^1.5.8',
      'fs-extra': '^11.1.0',
      gsap: '^3.12.2',
      handlebars: '^4.7.7',
      history: '4.10.1',
      'html-minifier': '4.0.0',
      'http-proxy-middleware': '^2.0.6',
      'inline-style-parser': '^0.1.1',
      inversify: '^6.0.1',
      'inversify-react': '^1.1.0',
      'jest-environment-jsdom': '28.1.1',
      'jest-environment-node': '28.1.1',
      'jest-junit': '^14.0.1',
      'jest-mock-extended': '2.0.4',
      jsdom: '~20.0.3',
      'json-as-xlsx': '^2.5.5',
      jsonwebtoken: '^8.5.1',
      keymachine: '^2.1.0',
      lighthouse: '^9.6.8',
      lodash: '^4.17.21',
      lokijs: '^1.5.12',
      'lru-cache': '^10.0.1',
      mobx: '^6.6.2',
      'mobx-react': '^7.6.0',
      mockdate: '^3.0.5',
      'nestjs-zod': '^2.3.2',
      'node-fetch': '^2.7.0',
      'node-html-parser': '^6.1.5',
      nodemailer: '^6.8.0',
      nx: '15.7.2',
      'openapi3-ts': '^2.0.0 || ^3.0.0',
      'p-limit': '^3.0.0',
      passport: '^0.6.0',
      'passport-custom': '^1.1.1',
      'passport-jwt': '^4.0.1',
      'passport-local': '^1.0.0',
      pluralize: '^8.0.0',
      polished: '^4.2.2',
      postcss: '^8.4.27',
      'postcss-url': '^10.1.3',
      prettier: '^2.6.2',
      prisma: '^4.13.0',
      'prisma-dbml-generator': '^0.10.0',
      puppeteer: '^21.0.2',
      qs: '^6.11.2',
      radash: '^11.0.0',
      react: '18.2.0',
      'react-circular-progressbar': '^2.1.0',
      'react-dom': '18.2.0',
      'react-imask': '^7.1.3',
      'react-is': '18.2.0',
      'react-js-cron': '^3.2.0',
      'react-markdown': '^8.0.7',
      'react-refresh': '^0.10.0',
      'react-router-dom': '5.3.4',
      'react-test-renderer': '18.2.0',
      'reflect-metadata': '^0.1.13',
      'regenerator-runtime': '0.13.7',
      remeda: '^1.29.0',
      rxjs: '^7.0.0',
      sharp: '^0.30.7',
      'storybook-addon-swc': '^1.1.7',
      'storybook-react-context': '^0.6.0',
      'style-loader': '^3.3.0',
      'styled-components': '5.3.6',
      supertest: '^6.3.1',
      'swc-loader': '0.1.15',
      'theme-ui': '^0.15.5',
      'ts-deepmerge': '^6.2.0',
      'ts-jest': '28.0.5',
      tslib: '^2.3.0',
      typescript: '~4.9.5',
      'url-loader': '^4.1.1',
      webpack: '^5.75.0',
      'webpack-merge': '^5.8.0',
      'wechat-oauth': '^1.5.0',
      'wechatpay-node-v3': '^2.0.6',
      yargs: '^17.7.2',
      znv: '^0.4.0',
      zod: '3.21.1',
      'zod-prisma-types': 'file:.yalc/zod-prisma-types',
      zx: '^7.1.1'
    },
    devDependencies: {
      '@faker-js/faker': '^8.0.2',
      '@nrwl/cli': '15.7.2',
      '@nrwl/cypress': '15.7.2',
      '@nrwl/devkit': '15.7.2',
      '@nrwl/esbuild': '15.7.2',
      '@nrwl/eslint-plugin-nx': '15.7.2',
      '@nrwl/jest': '15.7.2',
      '@nrwl/js': '15.7.2',
      '@nrwl/linter': '15.7.2',
      '@nrwl/nest': '15.7.2',
      '@nrwl/node': '15.7.2',
      '@nrwl/nx-cloud': '16.3.0',
      '@nrwl/react': '15.7.2',
      '@nrwl/storybook': '15.7.2',
      '@nrwl/vite': '15.7.2',
      '@nrwl/web': '15.7.2',
      '@nrwl/webpack': '15.7.2',
      '@nrwl/workspace': '15.7.2',
      '@storybook/addon-essentials': '7.2.1',
      '@storybook/addon-interactions': '7.2.1',
      '@storybook/builder-webpack5': '7.2.1',
      '@storybook/core-server': '7.2.1',
      '@storybook/jest': '^0.2.2',
      '@storybook/manager-webpack5': '^6.5.16',
      '@storybook/react': '7.2.1',
      '@storybook/react-vite': '7.2.1',
      '@storybook/test-runner': '^0.13.0',
      '@storybook/testing-library': '^0.2.0',
      '@types/bcrypt': '^5.0.0',
      '@types/cookie-parser': '^1.4.3',
      '@types/crypto-js': '^4.1.1',
      '@types/express': '^4.17.17',
      '@types/express-session': '^1.17.5',
      '@types/fs-extra': '^11.0.1',
      '@types/history': '4.7.11',
      '@types/jest': '28.1.1',
      '@types/jest-when': '^3.5.2',
      '@types/json-schema': '^7.0.11',
      '@types/jsonwebtoken': '^8.5.9',
      '@types/lodash': '^4.14.186',
      '@types/lokijs': '^1.5.7',
      '@types/node': '18.11.9',
      '@types/nodemailer': '^6.4.6',
      '@types/passport-jwt': '^3.0.8',
      '@types/passport-local': '^1.0.35',
      '@types/pluralize': '^0.0.29',
      '@types/qs': '^6.9.7',
      '@types/react': '18.0.25',
      '@types/react-dom': '18.0.9',
      '@types/react-is': '17.0.3',
      '@types/react-router-dom': '5.3.3',
      '@types/rebass__grid': '^6.0.10',
      '@types/reflexbox': '^4.0.5',
      '@types/sinon': '^10.0.16',
      '@types/styled-components': '5.1.26',
      '@types/yargs': '^17.0.24',
      jest: '28.1.1',
      'jest-when': '^3.5.2',
      playwright: '^1.37.1',
      sinon: '^16.0.0',
      'ts-node': '10.9.1',
      vite: '4.0.1',
      'vite-plugin-dts': '^3.5.3',
      'vite-plugin-eslint': '^1.8.1',
      'vite-tsconfig-paths': '^4.2.0',
      vitest: '^0.34.3',
      'vitest-mock-extended': '^1.1.4',
      xlsx: '^0.18.5'
    }
  },
  fs: { numberOfFiles: 2 },
  debug: [
    '2023-12-01T14:42:02.177Z project waiting for initial run signal\n',
    '2023-12-01T14:42:02.191Z config Attempting automatic configuration for vitest\n',
    '2023-12-01T14:42:02.194Z vitest/config Detected Vitest (0.34.3).\n',
    '2023-12-01T14:42:03.360Z config Finished attempting automatic configuration for vitest (1169ms)\n',
    '2023-12-01T14:42:03.363Z project Wallaby Node version: v18.12.0\n',
    '2023-12-01T14:42:03.363Z project Wallaby config: <homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/wallaby-tmp.js\n',
    '2023-12-01T14:42:03.411Z fs File system starting\n',
    '2023-12-01T14:42:03.431Z fs File system scan completed\n',
    '2023-12-01T14:42:03.436Z project File cache: <homeDir>/Library/Caches/JetBrains/WebStorm2023.1/wallaby/projects/c34cb36f7459a0f6\n',
    '2023-12-01T14:42:03.443Z uiService Listening port 51236\n',
    '2023-12-01T14:42:03.445Z project Config file change detected, invalidating local cache\n',
    '2023-12-01T14:42:03.455Z workers Parallelism for initial run: 1, for regular run: 1\n',
    '2023-12-01T14:42:03.456Z workers Starting run worker instance #0\n',
    '2023-12-01T14:42:03.456Z workers Web server is listening at 50493\n',
    '2023-12-01T14:42:03.457Z project File cache requires some updates, waiting required files from IDE\n',
    '2023-12-01T14:42:03.475Z project Stopping process pool\n',
    '2023-12-01T14:42:03.477Z project Test run started; run priority: 3\n',
    '2023-12-01T14:42:03.478Z project Running all tests\n',
    '2023-12-01T14:42:03.479Z workers Starting test run, priority: 3\n',
    '2023-12-01T14:42:03.479Z nodeRunner Starting sandbox [worker #0, session #e7cgp]\n',
    '2023-12-01T14:42:03.479Z nodeRunner Preparing sandbox [worker #0, session #e7cgp]\n',
    '2023-12-01T14:42:03.661Z workers Started run worker instance (delayed) #0\n',
    '2023-12-01T14:42:03.662Z nodeRunner Prepared sandbox [worker #0, session #e7cgp]\n',
    '2023-12-01T14:42:03.662Z workers [worker #0, session #e7cgp] Running tests in sandbox\n',
    "2023-12-01T14:42:04.362Z workers 'Scheduling Vitest Run (e7cgp): 2023-12-01T14:42:04.329Z'\n",
    "2023-12-01T14:42:04.368Z workers 'Did not find project to provide to \\'vitest\\' for file: <homeDir>/Projects/XProjects/flowda-solutions/flowda-projects/libs/flowda-design/src/lib/table-filter/table-filter.model.spec.ts'\n",
    '2023-12-01T14:42:09.892Z workers [e7cgp.1] Loaded unknown number of test(s)\n',
    '2023-12-01T14:42:09.935Z workers [e7cgp.1] Test executed: format to query string\n',
    '2023-12-01T14:42:09.937Z workers [e7cgp.1] Test executed: format to query string empty\n',
    '2023-12-01T14:42:09.938Z workers [e7cgp.1] Test executed: format to filter form value\n',
    '2023-12-01T14:42:09.938Z workers [e7cgp.1] Test executed: get columns\n',
    '2023-12-01T14:42:09.939Z workers [e7cgp.1] Test executed: get columns\n',
    "2023-12-01T14:42:09.957Z workers 'Vitest Run Complete (e7cgp): 2023-12-01T14:42:09.955Z'\n",
    '2023-12-01T14:42:09.957Z workers [e7cgp] Run 5 test(s), skipped 0 test(s)\n',
    '2023-12-01T14:42:09.959Z workers [e7cgp] Sandbox is responsive, closing it\n',
    '2023-12-01T14:42:09.959Z project Test run finished\n',
    '2023-12-01T14:42:09.960Z project Processed console.log entries\n',
    '2023-12-01T14:42:09.960Z project Processed loading sequences\n',
    '2023-12-01T14:42:09.960Z project Test name duplicate: get columns\n',
    '2023-12-01T14:42:09.960Z project Processed executed tests\n',
    '2023-12-01T14:42:09.962Z project Processed code coverage\n',
    '2023-12-01T14:42:09.972Z project Test run result processed and sent to IDE\n'
  ]
}
smcenlly commented 9 months ago

In two fresh projects (jest and vitest), we're seeing very similar performance.

Can you please provide the sample projects that you used? We're happy to take a look for you, but we're thinking it may be related to your configuration.

shanehsi commented 9 months ago

While working on reproducing examples, I found an optimization way. Intuitively, I aimed to minimize the amount of ts code in the reference tree. Specifically for unit tests,even as the number of files and the complexity of the reference relationships increased, I was able to maintain the same level of speed as a fresh project.

The changes I made were roughly as follows: I used Inversify and maintained a testing container module to rebind all dependencies to mockDeep.

export const designTestingModule = new AsyncContainerModule(async bind => {
  const { mockDeep } = await getTesting()
  bind<RegisterModel>(RegisterModelSymbol).toConstantValue(mockDeep())
  bind<interfaces.Factory<TaskFormModel>>('Factory<TaskFormModel>').toFactory<TaskFormModel, []>(context => {
    return () => context.container.get<TaskFormModel>(TaskFormModelSymbol)
  })
  bind<ResourcesModel>(ResourcesModelSymbol).toConstantValue(mockDeep())
  bind<interfaces.Factory<ResourcesModel>>('Factory<ResourcesModel>').toFactory<ResourcesModel, []>(context => {
    return () => context.container.get<ResourcesModel>(ResourcesModelSymbol)
  })
  bind<RouteModel>(RouteModelSymbol).toConstantValue(mockDeep())
  bind<DataModel>(DataModelSymbol).toConstantValue(mockDeep())
 // 100 bind statements remaining...
})

However, previously, the symbols were in the same file as the code implementation.

- export const DataModelSymbol = Symbol.for('DataModel')

@injectable()
export class DataModel {

Now, I have refactored all the symbols into one file. In this way, when importing the testing module file, only this file will be processed, and the types can be imported using 'import type' approach. It seems that this can help maintain the speed.

vitest ​[Info]​ Finished executing 5 affected test(s) in 1.8 second(s) ​[Info]​ Finished executing 2 affected test(s) in 711 millisecond(s) ​[Info]​ Finished executing 2 affected test(s) in 652 millisecond(s) ​[Info]​ Finished executing 2 affected test(s) in 642 millisecond(s)

jest ​[Info]​ Finished executing 5 affected test(s) in 3.35 second(s) ​[Info]​ Finished executing 2 affected test(s) in 304 millisecond(s) ​[Info]​ Finished executing 2 affected test(s) in 276 millisecond(s) ​[Info]​ Finished executing 2 affected test(s) in 251 millisecond(s)

shanehsi commented 9 months ago

Thank you very much for your response. I will close the issue for now.