wallabyjs / public

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

Wallaby does not work with automatic config with nrwl nx #2437

Closed pzurowski closed 4 years ago

pzurowski commented 4 years ago

Issue description or question

I have altered jest.config.js as mentioned in https://wallabyjs.com/docs/integration/nrwl.html.

npx jest works:

$ npx jest 2>&1 | grep -i test
  Option "setupTestFrameworkScriptFile" was replaced by configuration "setupFilesAfterEnv", which supports multiple paths.
  Option "setupTestFrameworkScriptFile" was replaced by configuration "setupFilesAfterEnv", which supports multiple paths.
Test Suites: 6 passed, 6 total
Tests:       10 passed, 10 total
Ran all test suites.

wallaby does not:

1 failing test, 9 passing  Launch Coverage/Test Explorer

src/app/app.component.spec.ts AppComponent should create the app [126 ms]

    Error: Uncaught (in promise): Failed to load app.component.html

    Error: This test module uses the component AppComponent which is using a "templateUrl" or "styleUrls", but they were never compiled. Please call "TestBed.compileComponents" before your test.
        at src/app/app.component.spec.ts:14:5

Without altering:

Wallaby diagnostics report

{
  editorVersion: 'IntelliJ IDEA 2020.1.1',
  pluginVersion: '1.0.177',
  editorType: 'IntelliJ',
  osVersion: 'darwin 19.4.0',
  nodeVersion: 'v12.6.0',
  coreVersion: '1.0.904',
  config: {
    diagnostics: {},
    testFramework: { version: 'jest@24.8.0', configurator: 'jest@24.8.0', reporter: 'jest@24.8.0', starter: 'jest@24.8.0', autoDetected: true },
    filesWithCoverageCalculated: [],
    globalSetup: false,
    micromatch: true,
    files: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true
      },
      { pattern: '**/**', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: true, trigger: true, load: true }
    ],
    tests: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true, test: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true,
        test: true
      },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: false, trigger: true, load: true, test: true, order: 2 }
    ],
    filesWithNoCoverageCalculated: [],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    workers: { initial: 0, regular: 0, recycle: false },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    extensions: {},
    env: { type: 'node', params: {}, runner: '/usr/local/bin/node', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    loose: true,
    configCode: 'auto.detect#-1114964865'
  },
  fs: { numberOfFiles: 33 },
  debug: [
    '2020-06-04T19:27:46.813Z config Detected Jest.\n',
    '2020-06-04T19:27:46.815Z config Configured Jest.\n',
    '2020-06-04T19:27:46.816Z project Wallaby Node version: v12.6.0\n',
    '2020-06-04T19:27:46.816Z project Wallaby config: <homeDir>/the-project/apps/the-app/auto.detect\n',
    '2020-06-04T19:27:47.657Z project File cache: <homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/projects/f02a260db897879a\n',
    '2020-06-04T19:27:47.671Z uiService Listening port 51235\n',
    '2020-06-04T19:27:47.679Z workers Parallelism for initial run: 14, for regular run: 7\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #0\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #1\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #2\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #3\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #4\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #5\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #6\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #7\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #8\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #9\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #10\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #11\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #12\n',
    '2020-06-04T19:27:47.679Z workers Starting run worker instance #13\n',
    '2020-06-04T19:27:47.680Z workers Web server is listening at 49799\n',
    '2020-06-04T19:27:47.717Z project File cache requires some updates, waiting required files from IDE\n',
    '2020-06-04T19:27:47.734Z project Stopping process pool\n',
    '2020-06-04T19:27:47.737Z project Test run started; run priority: 3\n',
    '2020-06-04T19:27:47.739Z project Running all tests\n',
    '2020-06-04T19:27:47.747Z workers Starting test run, priority: 3\n',
    '2020-06-04T19:27:47.748Z workers Distributing tests between 14 workers\n',
    '2020-06-04T19:27:47.748Z workers Running tests in parallel\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #0, session #7ullr]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #1, session #51lro]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #2, session #eke80]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #3, session #mflt9]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #4, session #rzl72]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Starting sandbox [worker #5, session #ujmxv]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Preparing sandbox [worker #0, session #7ullr]\n',
    '2020-06-04T19:27:47.749Z nodeRunner Preparing sandbox [worker #1, session #51lro]\n',
    '2020-06-04T19:27:47.750Z nodeRunner Preparing sandbox [worker #2, session #eke80]\n',
    '2020-06-04T19:27:47.750Z nodeRunner Preparing sandbox [worker #3, session #mflt9]\n',
    '2020-06-04T19:27:47.750Z nodeRunner Preparing sandbox [worker #4, session #rzl72]\n',
    '2020-06-04T19:27:47.750Z nodeRunner Preparing sandbox [worker #5, session #ujmxv]\n',
    '2020-06-04T19:27:47.863Z workers Started run worker instance (delayed) #0\n',
    '2020-06-04T19:27:47.864Z nodeRunner Prepared sandbox [worker #0, session #7ullr]\n',
    '2020-06-04T19:27:47.864Z workers [worker #0, session #7ullr] Running tests in sandbox\n',
    '2020-06-04T19:27:47.867Z workers Started run worker instance (delayed) #1\n',
    '2020-06-04T19:27:47.868Z nodeRunner Prepared sandbox [worker #1, session #51lro]\n',
    '2020-06-04T19:27:47.868Z workers [worker #1, session #51lro] Running tests in sandbox\n',
    '2020-06-04T19:27:47.868Z workers Started run worker instance (delayed) #2\n',
    '2020-06-04T19:27:47.868Z nodeRunner Prepared sandbox [worker #2, session #eke80]\n',
    '2020-06-04T19:27:47.868Z workers [worker #2, session #eke80] Running tests in sandbox\n',
    '2020-06-04T19:27:47.869Z workers Started run worker instance (delayed) #3\n',
    '2020-06-04T19:27:47.869Z nodeRunner Prepared sandbox [worker #3, session #mflt9]\n',
    '2020-06-04T19:27:47.869Z workers [worker #3, session #mflt9] Running tests in sandbox\n',
    '2020-06-04T19:27:47.872Z workers Started run worker instance (delayed) #4\n',
    '2020-06-04T19:27:47.872Z nodeRunner Prepared sandbox [worker #4, session #rzl72]\n',
    '2020-06-04T19:27:47.872Z workers [worker #4, session #rzl72] Running tests in sandbox\n',
    '2020-06-04T19:27:47.876Z workers Started run worker instance (delayed) #6\n',
    '2020-06-04T19:27:47.878Z workers Started run worker instance (delayed) #5\n',
    '2020-06-04T19:27:47.878Z nodeRunner Prepared sandbox [worker #5, session #ujmxv]\n',
    '2020-06-04T19:27:47.878Z workers [worker #5, session #ujmxv] Running tests in sandbox\n',
    '2020-06-04T19:27:47.880Z workers Started run worker instance (delayed) #7\n',
    '2020-06-04T19:27:47.881Z workers Started run worker instance (delayed) #8\n',
    '2020-06-04T19:27:47.883Z workers Started run worker instance (delayed) #10\n',
    '2020-06-04T19:27:47.884Z workers Started run worker instance (delayed) #9\n',
    '2020-06-04T19:27:47.890Z workers Started run worker instance (delayed) #11\n',
    '2020-06-04T19:27:47.893Z workers Started run worker instance (delayed) #13\n',
    '2020-06-04T19:27:47.895Z workers Started run worker instance (delayed) #12\n',
    '2020-06-04T19:27:51.898Z workers [eke80] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:51.898Z workers [eke80] Test executed: should return the initial state\n',
    '2020-06-04T19:27:51.901Z workers [eke80] Run 1 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:51.902Z workers [eke80] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:51.965Z workers [mflt9] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:51.966Z workers [mflt9] Test executed: getError() should return the current "error" storeState\n',
    '2020-06-04T19:27:51.969Z workers [mflt9] Run 1 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:51.970Z workers [mflt9] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:52.022Z workers [ujmxv] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:52.022Z workers [ujmxv] Test executed: should be created\n',
    '2020-06-04T19:27:52.023Z workers [ujmxv] Test executed: should return default template\n',
    '2020-06-04T19:27:52.023Z workers [ujmxv] Test executed: should return default template 2\n',
    '2020-06-04T19:27:52.023Z workers [ujmxv] Test executed: should return known template\n',
    '2020-06-04T19:27:52.025Z workers [ujmxv] Run 4 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:52.027Z workers [ujmxv] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:52.033Z workers [rzl72] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:52.096Z workers [51lro] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:52.096Z workers [51lro] Test executed: should create\n',
    '2020-06-04T19:27:52.098Z workers [51lro] Run 1 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:52.098Z workers [51lro] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:52.122Z workers [7ullr] Loaded unknown number of test(s)\n',
    '2020-06-04T19:27:52.122Z workers [rzl72] Test executed: should create the app\n',
    '2020-06-04T19:27:52.123Z workers Failed to map the stack to user code, entry message: Error: Uncaught (in promise): Failed to load app.component.html, stack: Error: Uncaught (in promise): Failed to load app.component.html\n' +
      '    at resolvePromise (<homeDir>/the-project/node_modules/zone.js/dist/zone.js:832:39)\n' +
      '    at resolvePromise (<homeDir>/the-project/node_modules/zone.js/dist/zone.js:784:21)\n' +
      '    at <homeDir>/the-project/node_modules/zone.js/dist/zone.js:894:21\n' +
      '    at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invokeTask (<homeDir>/the-project/node_modules/zone.js/dist/zone.js:421:35)\n' +
      '    at AsyncTestZoneSpec.Object.<anonymous>.AsyncTestZoneSpec.onInvokeTask (<homeDir>/the-project/node_modules/zone.js/dist/async-test.js:86:33)\n' +
      '    at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvokeTask (<homeDir>/the-project/node_modules/zone.js/dist/proxy.js:145:43)\n' +
      '    at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invokeTask (<homeDir>/the-project/node_modules/zone.js/dist/zone.js:420:40)\n' +
      '    at Zone.Object.<anonymous>.Zone.runTask (<homeDir>/the-project/nod\n',
    '2020-06-04T19:27:52.124Z workers [7ullr] Test executed: should work\n',
    '2020-06-04T19:27:52.125Z workers [7ullr] Test executed: should register converters\n',
    '2020-06-04T19:27:52.127Z workers [7ullr] Run 2 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:52.128Z workers [rzl72] Run 1 test(s), skipped 0 test(s)\n',
    '2020-06-04T19:27:52.128Z workers [7ullr] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:52.129Z workers [rzl72] Sandbox is responsive, closing it\n',
    '2020-06-04T19:27:52.129Z workers Merging parallel test run results\n',
    '2020-06-04T19:27:52.130Z project Test run finished\n',
    '2020-06-04T19:27:52.130Z project Processed console.log entries\n',
    '2020-06-04T19:27:52.130Z project Processed loading sequences\n',
    '2020-06-04T19:27:52.131Z project Processed executed tests\n',
    '2020-06-04T19:27:52.132Z project Processed code coverage\n',
    '2020-06-04T19:27:52.143Z project Test run result processed and sent to IDE\n'
  ]
}
smcenlly commented 4 years ago

Could you please share the package.json and angular.json files from your workspace root? If you don't have an angular.json file, it may be called workspace.json.

We tried to reproduce your issue but everything is working for us. The steps we t1ook were:

  1. npx create-nx-workspace@latest
  2. For What to create in the new workspace, we chose angular-nest
  3. Open WebStorm
  4. Create Run Configuration with Automatic Configuration and set the root directory to <<workspaceRootDir>>/apps/<<appName>>

At that point, everything worked for us.

If you have a sample repo with the same problem, would you mind sharing that with us?

pzurowski commented 4 years ago

I've tried minimal setup when it works and when it doesn't.

Working steps:

  1. npx create-nx-workspace@latest --cli nx
    npx: zainstalowano 198 w 23.17s
    ? Workspace name (e.g., org name)     space
    ? What to create in the new workspace angular           [a workspace with a single Angular application]
    ? Application name                    app
    ? Default stylesheet format           SASS(.scss)  [ http://sass-lang.com   ]
  2. mv space/workspace.json space/angular.json
  3. New project from existing sources in Intellij
  4. wallaby configuration for apps/app
  5. run

Non-working steps:

  1. npx create-nx-workspace@latest --cli nx
    npx: zainstalowano 198 w 17.005s
    ? Workspace name (e.g., org name)     work
    ? What to create in the new workspace angular           [a workspace with a single Angular application]
    ? Application name                    app
    ? Default stylesheet format           SASS(.scss)  [ http://sass-lang.com   ]
  2. # keeping workspace.json
  3. New project from existing sources in Intellij
  4. wallaby configuration for apps/app
  5. run # doesn't work
  6. mv work/workspace.json work/angular.json
  7. run # still doesn't work

non-working

Wallaby diagnostic report:

{
  editorVersion: 'IntelliJ IDEA 2020.1.1',
  pluginVersion: '1.0.177',
  editorType: 'IntelliJ',
  osVersion: 'darwin 19.4.0',
  nodeVersion: 'v12.6.0',
  coreVersion: '1.0.906',
  config: {
    diagnostics: {
      angular: {
        workspace: {
          version: 1,
          projects: {
            app: {
              projectType: 'application',
              schematics: { '@nrwl/angular:component': { style: 'scss' } },
              root: 'apps/app',
              sourceRoot: 'apps/app/src',
              prefix: 'work',
              architect: {
                build: {
                  builder: '@angular-devkit/build-angular:browser',
                  options: {
                    outputPath: 'dist/apps/app',
                    index: 'apps/app/src/index.html',
                    main: 'apps/app/src/main.ts',
                    polyfills: 'apps/app/src/polyfills.ts',
                    tsConfig: 'apps/app/tsconfig.app.json',
                    aot: true,
                    assets: [ 'apps/app/src/favicon.ico', 'apps/app/src/assets' ],
                    styles: [ 'apps/app/src/styles.scss' ],
                    scripts: []
                  },
                  configurations: {
                    production: {
                      fileReplacements: [ { replace: 'apps/app/src/environments/environment.ts', with: 'apps/app/src/environments/environment.prod.ts' } ],
                      optimization: true,
                      outputHashing: 'all',
                      sourceMap: false,
                      extractCss: true,
                      namedChunks: false,
                      extractLicenses: true,
                      vendorChunk: false,
                      buildOptimizer: true,
                      budgets: [ { type: 'initial', maximumWarning: '2mb', maximumError: '5mb' }, { type: 'anyComponentStyle', maximumWarning: '6kb', maximumError: '10kb' } ]
                    }
                  }
                },
                serve: { builder: '@angular-devkit/build-angular:dev-server', options: { browserTarget: 'app:build' }, configurations: { production: { browserTarget: 'app:build:production' } } },
                'extract-i18n': { builder: '@angular-devkit/build-angular:extract-i18n', options: { browserTarget: 'app:build' } },
                lint: {
                  builder: '@angular-devkit/build-angular:tslint',
                  options: { tsConfig: [ 'apps/app/tsconfig.app.json', 'apps/app/tsconfig.spec.json' ], exclude: [ '**/node_modules/**', '!apps/app/**' ] }
                },
                test: {
                  builder: '@nrwl/jest:jest',
                  options: { jestConfig: 'apps/app/jest.config.js', tsConfig: 'apps/app/tsconfig.spec.json', passWithNoTests: true, setupFile: 'apps/app/src/test-setup.ts' }
                }
              }
            },
            'app-e2e': {
              root: 'apps/app-e2e',
              sourceRoot: 'apps/app-e2e/src',
              projectType: 'application',
              architect: {
                e2e: {
                  builder: '@nrwl/cypress:cypress',
                  options: { cypressConfig: 'apps/app-e2e/cypress.json', tsConfig: 'apps/app-e2e/tsconfig.e2e.json', devServerTarget: 'app:serve' },
                  configurations: { production: { devServerTarget: 'app:serve:production' } }
                },
                lint: { builder: '@angular-devkit/build-angular:tslint', options: { tsConfig: [ 'apps/app-e2e/tsconfig.e2e.json' ], exclude: [ '**/node_modules/**', '!apps/app-e2e/**' ] } }
              }
            }
          },
          cli: { defaultCollection: '@nrwl/angular' },
          schematics: {
            '@nrwl/workspace': { library: { linter: 'eslint' } },
            '@nrwl/cypress': { 'cypress-project': { linter: 'eslint' } },
            '@nrwl/react': { application: { linter: 'eslint' }, library: { linter: 'eslint' }, 'storybook-configuration': { linter: 'eslint' } },
            '@nrwl/next': { application: { linter: 'eslint' } },
            '@nrwl/web': { application: { linter: 'eslint' } },
            '@nrwl/node': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },
            '@nrwl/nx-plugin': { plugin: { linter: 'eslint' } },
            '@nrwl/nest': { application: { linter: 'eslint' } },
            '@nrwl/express': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },
            '@nrwl/angular:application': { unitTestRunner: 'jest', e2eTestRunner: 'cypress' },
            '@nrwl/angular:library': { unitTestRunner: 'jest' }
          },
          defaultProject: 'app'
        }
      }
    },
    testFramework: { version: 'jest@24.8.0', configurator: 'jest@24.8.0', reporter: 'jest@24.8.0', starter: 'jest@24.8.0', autoDetected: true },
    filesWithCoverageCalculated: [],
    globalSetup: false,
    micromatch: true,
    files: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true
      },
      { pattern: '**/**', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: true, trigger: true, load: true }
    ],
    tests: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true, test: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true,
        test: true
      },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: false, trigger: true, load: true, test: true, order: 2 }
    ],
    filesWithNoCoverageCalculated: [],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    workers: { initial: 0, regular: 0, recycle: false },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    extensions: {},
    env: { type: 'node', params: {}, runner: '/usr/local/bin/node', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    loose: true,
    configCode: 'auto.detect#-1114964865'
  },
  fs: { numberOfFiles: 20 },
  debug: [
    '2020-06-05T11:23:52.238Z config Detected Jest.\n',
    '2020-06-05T11:23:52.239Z config Detected Angular CLI.\n',
    '2020-06-05T11:23:52.243Z angular/cli config Angular.json: \n' +
      ' {\n' +
      '  version: 1,\n' +
      '  projects: {\n' +
      '    app: {\n' +
      "      projectType: 'application',\n" +
      "      schematics: { '@nrwl/angular:component': { style: 'scss' } },\n" +
      "      root: 'apps/app',\n" +
      "      sourceRoot: 'apps/app/src',\n" +
      "      prefix: 'work',\n" +
      '      architect: {\n' +
      '        build: {\n' +
      "          builder: '@angular-devkit/build-angular:browser',\n" +
      '          options: {\n' +
      "            outputPath: 'dist/apps/app',\n" +
      "            index: 'apps/app/src/index.html',\n" +
      "            main: 'apps/app/src/main.ts',\n" +
      "            polyfills: 'apps/app/src/polyfills.ts',\n" +
      "            tsConfig: 'apps/app/tsconfig.app.json',\n" +
      '            aot: true,\n' +
      "            assets: [ 'apps/app/src/favicon.ico', 'apps/app/src/assets' ],\n" +
      "            styles: [ 'apps/app/src/styles.scss' ],\n" +
      '            scripts: []\n' +
      '          },\n' +
      '          configurations: {\n' +
      '            production: {\n' +
      "              fileReplacements: [ { replace: 'apps/app/src/environments/environment.ts', with: 'apps/app/src/environments/environment.prod.ts' } ],\n" +
      '              optimization: true,\n' +
      "              outputHashing: 'all',\n" +
      '              sourceMap: false,\n' +
      '              extractCss: true,\n' +
      '              namedChunks: false,\n' +
      '              extractLicenses: true,\n' +
      '              vendorChunk: false,\n' +
      '              buildOptimizer: true,\n' +
      "              budgets: [ { type: 'initial', maximumWarning: '2mb', maximumError: '5mb' }, { type: 'anyComponentStyle', maximumWarning: '6kb', maximumError: '10kb' } ]\n" +
      '            }\n' +
      '          }\n' +
      '        },\n' +
      "        serve: { builder: '@angular-devkit/build-angular:dev-server', options: { browserTarget: 'app:build' }, configurations: { production: { browserTarget: 'app:build:production' } } },\n" +
      "        'extract-i18n': { builder: '@angular-devkit/build-angular:extract-i18n', options: { browserTarget: 'app:build' } },\n" +
      '        lint: {\n' +
      "          builder: '@angular-devkit/build-angular:tslint',\n" +
      "          options: { tsConfig: [ 'apps/app/tsconfig.app.json', 'apps/app/tsconfig.spec.json' ], exclude: [ '**/node_modules/**', '!apps/app/**' ] }\n" +
      '        },\n' +
      '        test: {\n' +
      "          builder: '@nrwl/jest:jest',\n" +
      "          options: { jestConfig: 'apps/app/jest.config.js', tsConfig: 'apps/app/tsconfig.spec.json', passWithNoTests: true, setupFile: 'apps/app/src/test-setup.ts' }\n" +
      '        }\n' +
      '      }\n' +
      '    },\n' +
      "    'app-e2e': {\n" +
      "      root: 'apps/app-e2e',\n" +
      "      sourceRoot: 'apps/app-e2e/src',\n" +
      "      projectType: 'application',\n" +
      '      architect: {\n' +
      '        e2e: {\n' +
      "          builder: '@nrwl/cypress:cypress',\n" +
      "          options: { cypressConfig: 'apps/app-e2e/cypress.json', tsConfig: 'apps/app-e2e/tsconfig.e2e.json', devServerTarget: 'app:serve' },\n" +
      "          configurations: { production: { devServerTarget: 'app:serve:production' } }\n" +
      '        },\n' +
      "        lint: { builder: '@angular-devkit/build-angular:tslint', options: { tsConfig: [ 'apps/app-e2e/tsconfig.e2e.json' ], exclude: [ '**/node_modules/**', '!apps/app-e2e/**' ] } }\n" +
      '      }\n' +
      '    }\n' +
      '  },\n' +
      "  cli: { defaultCollection: '@nrwl/angular' },\n" +
      '  schematics: {\n' +
      "    '@nrwl/workspace': { library: { linter: 'eslint' } },\n" +
      "    '@nrwl/cypress': { 'cypress-project': { linter: 'eslint' } },\n" +
      "    '@nrwl/react': { application: { linter: 'eslint' }, library: { linter: 'eslint' }, 'storybook-configuration': { linter: 'eslint' } },\n" +
      "    '@nrwl/next': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/web': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/node': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },\n" +
      "    '@nrwl/nx-plugin': { plugin: { linter: 'eslint' } },\n" +
      "    '@nrwl/nest': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/express': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },\n" +
      "    '@nrwl/angular:application': { unitTestRunner: 'jest', e2eTestRunner: 'cypress' },\n" +
      "    '@nrwl/angular:library': { unitTestRunner: 'jest' }\n" +
      '  },\n' +
      "  defaultProject: 'app'\n" +
      '}\n',
    '2020-06-05T11:23:52.243Z config Error: Cannot detect @angular/cli package version, is the package installed?\n' +
      '    at Object.<anonymous> (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:16:855)\n' +
      '    at r (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:31789)\n' +
      '    at Object.next (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:31084)\n' +
      '    at o (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:30823)\n',
    '2020-06-05T11:23:52.244Z config Configured Jest.\n',
    '2020-06-05T11:23:52.245Z project Wallaby Node version: v12.6.0\n',
    '2020-06-05T11:23:52.245Z project Wallaby config: <rootDir>/auto.detect\n',
    '2020-06-05T11:23:52.923Z project File cache: <homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/projects/aa37c71a226b9b17\n',
    '2020-06-05T11:23:52.937Z uiService Listening port 51235\n',
    '2020-06-05T11:23:52.943Z workers Parallelism for initial run: 14, for regular run: 7\n',
    '2020-06-05T11:23:52.943Z workers Starting run worker instance #0\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #1\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #2\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #3\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #4\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #5\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #6\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #7\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #8\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #9\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #10\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #11\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #12\n',
    '2020-06-05T11:23:52.944Z workers Starting run worker instance #13\n',
    '2020-06-05T11:23:52.944Z workers Web server is listening at 57867\n',
    '2020-06-05T11:23:52.944Z project File cache requires some updates, waiting required files from IDE\n',
    '2020-06-05T11:23:52.990Z project Stopping process pool\n',
    '2020-06-05T11:23:52.993Z project Test run started; run priority: 3\n',
    '2020-06-05T11:23:52.994Z project Running all tests\n',
    '2020-06-05T11:23:52.997Z workers Starting test run, priority: 3\n',
    '2020-06-05T11:23:52.997Z nodeRunner Starting sandbox [worker #0, session #hyn6i]\n',
    '2020-06-05T11:23:52.997Z nodeRunner Preparing sandbox [worker #0, session #hyn6i]\n',
    '2020-06-05T11:23:53.133Z workers Started run worker instance (delayed) #0\n',
    '2020-06-05T11:23:53.133Z nodeRunner Prepared sandbox [worker #0, session #hyn6i]\n',
    '2020-06-05T11:23:53.133Z workers [worker #0, session #hyn6i] Running tests in sandbox\n',
    '2020-06-05T11:23:53.135Z workers Started run worker instance (delayed) #1\n',
    '2020-06-05T11:23:53.137Z workers Started run worker instance (delayed) #2\n',
    '2020-06-05T11:23:53.139Z workers Started run worker instance (delayed) #3\n',
    '2020-06-05T11:23:53.141Z workers Started run worker instance (delayed) #4\n',
    '2020-06-05T11:23:53.144Z workers Started run worker instance (delayed) #5\n',
    '2020-06-05T11:23:53.145Z workers Started run worker instance (delayed) #6\n',
    '2020-06-05T11:23:53.147Z workers Started run worker instance (delayed) #8\n',
    '2020-06-05T11:23:53.148Z workers Started run worker instance (delayed) #10\n',
    '2020-06-05T11:23:53.149Z workers Started run worker instance (delayed) #9\n',
    '2020-06-05T11:23:53.150Z workers Started run worker instance (delayed) #7\n',
    '2020-06-05T11:23:53.152Z workers Started run worker instance (delayed) #11\n',
    '2020-06-05T11:23:53.154Z workers Started run worker instance (delayed) #12\n',
    '2020-06-05T11:23:53.158Z workers Started run worker instance (delayed) #13\n',
    '2020-06-05T11:23:56.208Z workers [hyn6i] Loaded unknown number of test(s)\n',
    '2020-06-05T11:23:56.315Z workers [hyn6i] Test executed: should create the app\n',
    '2020-06-05T11:23:56.315Z workers Failed to map the stack to user code, entry message: Error: Uncaught (in promise): Failed to load app.component.html, stack: Error: Uncaught (in promise): Failed to load app.component.html\n' +
      '    at resolvePromise (/private/tmp/work/node_modules/zone.js/dist/zone.js:832:39)\n' +
      '    at resolvePromise (/private/tmp/work/node_modules/zone.js/dist/zone.js:784:21)\n' +
      '    at /private/tmp/work/node_modules/zone.js/dist/zone.js:894:21\n' +
      '    at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invokeTask (/private/tmp/work/node_modules/zone.js/dist/zone.js:421:35)\n' +
      '    at AsyncTestZoneSpec.Object.<anonymous>.AsyncTestZoneSpec.onInvokeTask (/private/tmp/work/node_modules/zone.js/dist/async-test.js:86:33)\n' +
      '    at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvokeTask (/private/tmp/work/node_modules/zone.js/dist/proxy.js:145:43)\n' +
      '    at ZoneDelegate.Object.<anonymous>.ZoneDelegate.invokeTask (/private/tmp/work/node_modules/zone.js/dist/zone.js:420:40)\n' +
      '    at Zone.Object.<anonymous>.Zone.runTask (/private/tmp/work/node_modules/zone.js/dist/zone.js:188:51)\n' +
      '    at drainMicroTaskQueue (/private/tmp/work/node_modules/zone.js/dist/zone.js:601:39)\n' +
      '    at ZoneTask.O\n',
    "2020-06-05T11:23:56.322Z workers [hyn6i] Test executed: should have as title 'app'\n",
    '2020-06-05T11:23:56.322Z workers [hyn6i] Test executed: should render title\n',
    '2020-06-05T11:23:56.329Z workers [hyn6i] Run 3 test(s), skipped 0 test(s)\n',
    '2020-06-05T11:23:56.331Z workers [hyn6i] Sandbox is responsive, closing it\n',
    '2020-06-05T11:23:56.332Z project Test run finished\n',
    '2020-06-05T11:23:56.332Z project Processed console.log entries\n',
    '2020-06-05T11:23:56.332Z project Processed loading sequences\n',
    '2020-06-05T11:23:56.333Z project Processed executed tests\n',
    '2020-06-05T11:23:56.333Z project Processed code coverage\n',
    '2020-06-05T11:23:56.342Z project Test run result processed and sent to IDE\n'
  ]
}

angular.json:

{
  "version": 1,
  "projects": {
    "app": {
      "projectType": "application",
      "schematics": {
        "@nrwl/angular:component": {
          "style": "scss"
        }
      },
      "root": "apps/app",
      "sourceRoot": "apps/app/src",
      "prefix": "work",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/apps/app",
            "index": "apps/app/src/index.html",
            "main": "apps/app/src/main.ts",
            "polyfills": "apps/app/src/polyfills.ts",
            "tsConfig": "apps/app/tsconfig.app.json",
            "aot": true,
            "assets": ["apps/app/src/favicon.ico", "apps/app/src/assets"],
            "styles": ["apps/app/src/styles.scss"],
            "scripts": []
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "apps/app/src/environments/environment.ts",
                  "with": "apps/app/src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb",
                  "maximumError": "10kb"
                }
              ]
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "app:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "app:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "app:build"
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "apps/app/tsconfig.app.json",
              "apps/app/tsconfig.spec.json"
            ],
            "exclude": ["**/node_modules/**", "!apps/app/**"]
          }
        },
        "test": {
          "builder": "@nrwl/jest:jest",
          "options": {
            "jestConfig": "apps/app/jest.config.js",
            "tsConfig": "apps/app/tsconfig.spec.json",
            "passWithNoTests": true,
            "setupFile": "apps/app/src/test-setup.ts"
          }
        }
      }
    },
    "app-e2e": {
      "root": "apps/app-e2e",
      "sourceRoot": "apps/app-e2e/src",
      "projectType": "application",
      "architect": {
        "e2e": {
          "builder": "@nrwl/cypress:cypress",
          "options": {
            "cypressConfig": "apps/app-e2e/cypress.json",
            "tsConfig": "apps/app-e2e/tsconfig.e2e.json",
            "devServerTarget": "app:serve"
          },
          "configurations": {
            "production": {
              "devServerTarget": "app:serve:production"
            }
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": ["apps/app-e2e/tsconfig.e2e.json"],
            "exclude": ["**/node_modules/**", "!apps/app-e2e/**"]
          }
        }
      }
    }
  },
  "cli": {
    "defaultCollection": "@nrwl/angular"
  },
  "schematics": {
    "@nrwl/workspace": {
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/cypress": {
      "cypress-project": {
        "linter": "eslint"
      }
    },
    "@nrwl/react": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      },
      "storybook-configuration": {
        "linter": "eslint"
      }
    },
    "@nrwl/next": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/web": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/node": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/nx-plugin": {
      "plugin": {
        "linter": "eslint"
      }
    },
    "@nrwl/nest": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/express": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/angular:application": {
      "unitTestRunner": "jest",
      "e2eTestRunner": "cypress"
    },
    "@nrwl/angular:library": {
      "unitTestRunner": "jest"
    }
  },
  "defaultProject": "app"
}

package.json:

{
  "name": "work",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "nx": "nx",
    "start": "nx serve",
    "build": "nx build",
    "test": "nx test",
    "lint": "nx workspace-lint && nx lint",
    "e2e": "nx e2e",
    "affected:apps": "nx affected:apps",
    "affected:libs": "nx affected:libs",
    "affected:build": "nx affected:build",
    "affected:e2e": "nx affected:e2e",
    "affected:test": "nx affected:test",
    "affected:lint": "nx affected:lint",
    "affected:dep-graph": "nx affected:dep-graph",
    "affected": "nx affected",
    "format": "nx format:write",
    "format:write": "nx format:write",
    "format:check": "nx format:check",
    "update": "nx migrate latest",
    "workspace-schematic": "nx workspace-schematic",
    "dep-graph": "nx dep-graph",
    "help": "nx help",
    "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"
  },
  "private": true,
  "dependencies": {
    "@nrwl/angular": "9.3.0",
    "@angular/animations": "^9.1.0",
    "@angular/common": "^9.1.0",
    "@angular/compiler": "^9.1.0",
    "@angular/core": "^9.1.0",
    "@angular/forms": "^9.1.0",
    "@angular/platform-browser": "^9.1.0",
    "@angular/platform-browser-dynamic": "^9.1.0",
    "@angular/router": "^9.1.0",
    "core-js": "^2.5.4",
    "rxjs": "~6.5.4",
    "zone.js": "^0.10.2"
  },
  "devDependencies": {
    "@nrwl/workspace": "9.3.0",
    "@types/node": "~8.9.4",
    "dotenv": "6.2.0",
    "ts-node": "~7.0.0",
    "tslint": "~6.0.0",
    "eslint": "6.8.0",
    "typescript": "~3.8.3",
    "prettier": "2.0.4",
    "@angular/compiler-cli": "^9.1.0",
    "@angular/language-service": "^9.1.0",
    "@angular-devkit/build-angular": "0.901.0",
    "codelyzer": "~5.0.1",
    "jest-preset-angular": "8.1.2",
    "@nrwl/jest": "9.3.0",
    "jest": "25.2.3",
    "@types/jest": "25.1.4",
    "ts-jest": "25.2.1",
    "cypress": "^4.1.0",
    "@nrwl/cypress": "9.3.0"
  }
}

working

Wallaby diagnostic report:

{
  editorVersion: 'IntelliJ IDEA 2020.1.1',
  pluginVersion: '1.0.177',
  editorType: 'IntelliJ',
  osVersion: 'darwin 19.4.0',
  nodeVersion: 'v12.6.0',
  coreVersion: '1.0.906',
  config: {
    diagnostics: {
      angular: {
        workspace: {
          version: 1,
          projects: {
            app: {
              projectType: 'application',
              schematics: { '@nrwl/angular:component': { style: 'scss' } },
              root: 'apps/app',
              sourceRoot: 'apps/app/src',
              prefix: 'space',
              architect: {
                build: {
                  builder: '@angular-devkit/build-angular:browser',
                  options: {
                    outputPath: 'dist/apps/app',
                    index: 'apps/app/src/index.html',
                    main: 'apps/app/src/main.ts',
                    polyfills: 'apps/app/src/polyfills.ts',
                    tsConfig: 'apps/app/tsconfig.app.json',
                    aot: true,
                    assets: [ 'apps/app/src/favicon.ico', 'apps/app/src/assets' ],
                    styles: [ 'apps/app/src/styles.scss' ],
                    scripts: []
                  },
                  configurations: {
                    production: {
                      fileReplacements: [ { replace: 'apps/app/src/environments/environment.ts', with: 'apps/app/src/environments/environment.prod.ts' } ],
                      optimization: true,
                      outputHashing: 'all',
                      sourceMap: false,
                      extractCss: true,
                      namedChunks: false,
                      extractLicenses: true,
                      vendorChunk: false,
                      buildOptimizer: true,
                      budgets: [ { type: 'initial', maximumWarning: '2mb', maximumError: '5mb' }, { type: 'anyComponentStyle', maximumWarning: '6kb', maximumError: '10kb' } ]
                    }
                  }
                },
                serve: { builder: '@angular-devkit/build-angular:dev-server', options: { browserTarget: 'app:build' }, configurations: { production: { browserTarget: 'app:build:production' } } },
                'extract-i18n': { builder: '@angular-devkit/build-angular:extract-i18n', options: { browserTarget: 'app:build' } },
                lint: {
                  builder: '@angular-devkit/build-angular:tslint',
                  options: { tsConfig: [ 'apps/app/tsconfig.app.json', 'apps/app/tsconfig.spec.json' ], exclude: [ '**/node_modules/**', '!apps/app/**' ] }
                },
                test: {
                  builder: '@nrwl/jest:jest',
                  options: { jestConfig: 'apps/app/jest.config.js', tsConfig: 'apps/app/tsconfig.spec.json', passWithNoTests: true, setupFile: 'apps/app/src/test-setup.ts' }
                }
              }
            },
            'app-e2e': {
              root: 'apps/app-e2e',
              sourceRoot: 'apps/app-e2e/src',
              projectType: 'application',
              architect: {
                e2e: {
                  builder: '@nrwl/cypress:cypress',
                  options: { cypressConfig: 'apps/app-e2e/cypress.json', tsConfig: 'apps/app-e2e/tsconfig.e2e.json', devServerTarget: 'app:serve' },
                  configurations: { production: { devServerTarget: 'app:serve:production' } }
                },
                lint: { builder: '@angular-devkit/build-angular:tslint', options: { tsConfig: [ 'apps/app-e2e/tsconfig.e2e.json' ], exclude: [ '**/node_modules/**', '!apps/app-e2e/**' ] } }
              }
            }
          },
          cli: { defaultCollection: '@nrwl/angular' },
          schematics: {
            '@nrwl/workspace': { library: { linter: 'eslint' } },
            '@nrwl/cypress': { 'cypress-project': { linter: 'eslint' } },
            '@nrwl/react': { application: { linter: 'eslint' }, library: { linter: 'eslint' }, 'storybook-configuration': { linter: 'eslint' } },
            '@nrwl/next': { application: { linter: 'eslint' } },
            '@nrwl/web': { application: { linter: 'eslint' } },
            '@nrwl/node': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },
            '@nrwl/nx-plugin': { plugin: { linter: 'eslint' } },
            '@nrwl/nest': { application: { linter: 'eslint' } },
            '@nrwl/express': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },
            '@nrwl/angular:application': { unitTestRunner: 'jest', e2eTestRunner: 'cypress' },
            '@nrwl/angular:library': { unitTestRunner: 'jest' }
          },
          defaultProject: 'app'
        }
      }
    },
    testFramework: { version: 'jest@24.8.0', configurator: 'jest@24.8.0', reporter: 'jest@24.8.0', starter: 'jest@24.8.0', autoDetected: true },
    filesWithCoverageCalculated: [],
    globalSetup: false,
    micromatch: true,
    files: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true
      },
      { pattern: '**/**', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: true, trigger: true, load: true }
    ],
    tests: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true, test: true },
      {
        pattern: 'dist/|build/|coverage/|/\\.cache/|/\\.idea/|/\\.vscode/|/\\.git/|/\\.gitlab/',
        regexp: /dist\/|build\/|coverage\/|\/\.cache\/|\/\.idea\/|\/\.vscode\/|\/\.git\/|\/\.gitlab\//,
        ignore: true,
        trigger: true,
        load: true,
        test: true
      },
      { pattern: '**/+(*.)+(spec|test).+(ts|js)?(x)', ignore: false, trigger: true, load: true, test: true, order: 2 }
    ],
    filesWithNoCoverageCalculated: [],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    preprocessors: {},
    maxConsoleMessagesPerTest: 100,
    autoConsoleLog: true,
    delays: { run: 0, edit: 100, update: 0 },
    workers: { initial: 0, regular: 0, recycle: false },
    teardown: undefined,
    hints: {
      ignoreCoverage: '__REGEXP /ignore coverage|istanbul ignore/',
      ignoreCoverageForFile: '__REGEXP /ignore file coverage/',
      commentAutoLog: '?',
      testFileSelection: { include: '__REGEXP /file\\.only/', exclude: '__REGEXP /file\\.skip/' }
    },
    automaticTestFileSelection: true,
    runSelectedTestsOnly: false,
    extensions: {},
    env: { type: 'node', params: {}, runner: '/usr/local/bin/node', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    loose: true,
    configCode: 'auto.detect#-1114964865'
  },
  fs: { numberOfFiles: 20 },
  debug: [
    '2020-06-05T11:28:02.791Z config Detected Jest.\n',
    '2020-06-05T11:28:02.792Z config Detected Angular CLI.\n',
    '2020-06-05T11:28:02.796Z angular/cli config Angular.json: \n' +
      ' {\n' +
      '  version: 1,\n' +
      '  projects: {\n' +
      '    app: {\n' +
      "      projectType: 'application',\n" +
      "      schematics: { '@nrwl/angular:component': { style: 'scss' } },\n" +
      "      root: 'apps/app',\n" +
      "      sourceRoot: 'apps/app/src',\n" +
      "      prefix: 'space',\n" +
      '      architect: {\n' +
      '        build: {\n' +
      "          builder: '@angular-devkit/build-angular:browser',\n" +
      '          options: {\n' +
      "            outputPath: 'dist/apps/app',\n" +
      "            index: 'apps/app/src/index.html',\n" +
      "            main: 'apps/app/src/main.ts',\n" +
      "            polyfills: 'apps/app/src/polyfills.ts',\n" +
      "            tsConfig: 'apps/app/tsconfig.app.json',\n" +
      '            aot: true,\n' +
      "            assets: [ 'apps/app/src/favicon.ico', 'apps/app/src/assets' ],\n" +
      "            styles: [ 'apps/app/src/styles.scss' ],\n" +
      '            scripts: []\n' +
      '          },\n' +
      '          configurations: {\n' +
      '            production: {\n' +
      "              fileReplacements: [ { replace: 'apps/app/src/environments/environment.ts', with: 'apps/app/src/environments/environment.prod.ts' } ],\n" +
      '              optimization: true,\n' +
      "              outputHashing: 'all',\n" +
      '              sourceMap: false,\n' +
      '              extractCss: true,\n' +
      '              namedChunks: false,\n' +
      '              extractLicenses: true,\n' +
      '              vendorChunk: false,\n' +
      '              buildOptimizer: true,\n' +
      "              budgets: [ { type: 'initial', maximumWarning: '2mb', maximumError: '5mb' }, { type: 'anyComponentStyle', maximumWarning: '6kb', maximumError: '10kb' } ]\n" +
      '            }\n' +
      '          }\n' +
      '        },\n' +
      "        serve: { builder: '@angular-devkit/build-angular:dev-server', options: { browserTarget: 'app:build' }, configurations: { production: { browserTarget: 'app:build:production' } } },\n" +
      "        'extract-i18n': { builder: '@angular-devkit/build-angular:extract-i18n', options: { browserTarget: 'app:build' } },\n" +
      '        lint: {\n' +
      "          builder: '@angular-devkit/build-angular:tslint',\n" +
      "          options: { tsConfig: [ 'apps/app/tsconfig.app.json', 'apps/app/tsconfig.spec.json' ], exclude: [ '**/node_modules/**', '!apps/app/**' ] }\n" +
      '        },\n' +
      '        test: {\n' +
      "          builder: '@nrwl/jest:jest',\n" +
      "          options: { jestConfig: 'apps/app/jest.config.js', tsConfig: 'apps/app/tsconfig.spec.json', passWithNoTests: true, setupFile: 'apps/app/src/test-setup.ts' }\n" +
      '        }\n' +
      '      }\n' +
      '    },\n' +
      "    'app-e2e': {\n" +
      "      root: 'apps/app-e2e',\n" +
      "      sourceRoot: 'apps/app-e2e/src',\n" +
      "      projectType: 'application',\n" +
      '      architect: {\n' +
      '        e2e: {\n' +
      "          builder: '@nrwl/cypress:cypress',\n" +
      "          options: { cypressConfig: 'apps/app-e2e/cypress.json', tsConfig: 'apps/app-e2e/tsconfig.e2e.json', devServerTarget: 'app:serve' },\n" +
      "          configurations: { production: { devServerTarget: 'app:serve:production' } }\n" +
      '        },\n' +
      "        lint: { builder: '@angular-devkit/build-angular:tslint', options: { tsConfig: [ 'apps/app-e2e/tsconfig.e2e.json' ], exclude: [ '**/node_modules/**', '!apps/app-e2e/**' ] } }\n" +
      '      }\n' +
      '    }\n' +
      '  },\n' +
      "  cli: { defaultCollection: '@nrwl/angular' },\n" +
      '  schematics: {\n' +
      "    '@nrwl/workspace': { library: { linter: 'eslint' } },\n" +
      "    '@nrwl/cypress': { 'cypress-project': { linter: 'eslint' } },\n" +
      "    '@nrwl/react': { application: { linter: 'eslint' }, library: { linter: 'eslint' }, 'storybook-configuration': { linter: 'eslint' } },\n" +
      "    '@nrwl/next': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/web': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/node': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },\n" +
      "    '@nrwl/nx-plugin': { plugin: { linter: 'eslint' } },\n" +
      "    '@nrwl/nest': { application: { linter: 'eslint' } },\n" +
      "    '@nrwl/express': { application: { linter: 'eslint' }, library: { linter: 'eslint' } },\n" +
      "    '@nrwl/angular:application': { unitTestRunner: 'jest', e2eTestRunner: 'cypress' },\n" +
      "    '@nrwl/angular:library': { unitTestRunner: 'jest' }\n" +
      '  },\n' +
      "  defaultProject: 'app'\n" +
      '}\n',
    '2020-06-05T11:28:02.796Z config Error: Cannot detect @angular/cli package version, is the package installed?\n' +
      '    at Object.<anonymous> (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:16:855)\n' +
      '    at r (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:31789)\n' +
      '    at Object.next (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:31084)\n' +
      '    at o (<homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/wallaby/server.js:15:30823)\n',
    '2020-06-05T11:28:02.797Z config Configured Jest.\n',
    '2020-06-05T11:28:02.798Z project Wallaby Node version: v12.6.0\n',
    '2020-06-05T11:28:02.798Z project Wallaby config: <rootDir>/auto.detect\n',
    '2020-06-05T11:28:03.629Z project File cache: <homeDir>/Library/Caches/JetBrains/IntelliJIdea2020.1/wallaby/projects/ee72e525e50e4a25\n',
    '2020-06-05T11:28:03.642Z uiService Listening port 51235\n',
    '2020-06-05T11:28:03.648Z workers Parallelism for initial run: 14, for regular run: 7\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #0\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #1\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #2\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #3\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #4\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #5\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #6\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #7\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #8\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #9\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #10\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #11\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #12\n',
    '2020-06-05T11:28:03.648Z workers Starting run worker instance #13\n',
    '2020-06-05T11:28:03.649Z workers Web server is listening at 58150\n',
    '2020-06-05T11:28:03.682Z project Stopping process pool\n',
    '2020-06-05T11:28:03.682Z project File cache is up-to-date, starting full test run\n',
    '2020-06-05T11:28:03.684Z project Test run started; run priority: 3\n',
    '2020-06-05T11:28:03.686Z project Running all tests\n',
    '2020-06-05T11:28:03.690Z workers Starting test run, priority: 3\n',
    '2020-06-05T11:28:03.690Z nodeRunner Starting sandbox [worker #0, session #ot05k]\n',
    '2020-06-05T11:28:03.691Z nodeRunner Preparing sandbox [worker #0, session #ot05k]\n',
    '2020-06-05T11:28:03.818Z workers Started run worker instance (delayed) #0\n',
    '2020-06-05T11:28:03.818Z nodeRunner Prepared sandbox [worker #0, session #ot05k]\n',
    '2020-06-05T11:28:03.818Z workers [worker #0, session #ot05k] Running tests in sandbox\n',
    '2020-06-05T11:28:03.819Z workers Started run worker instance (delayed) #2\n',
    '2020-06-05T11:28:03.820Z workers Started run worker instance (delayed) #1\n',
    '2020-06-05T11:28:03.820Z workers Started run worker instance (delayed) #3\n',
    '2020-06-05T11:28:03.822Z workers Started run worker instance (delayed) #4\n',
    '2020-06-05T11:28:03.824Z workers Started run worker instance (delayed) #6\n',
    '2020-06-05T11:28:03.827Z workers Started run worker instance (delayed) #5\n',
    '2020-06-05T11:28:03.828Z workers Started run worker instance (delayed) #8\n',
    '2020-06-05T11:28:03.830Z workers Started run worker instance (delayed) #7\n',
    '2020-06-05T11:28:03.835Z workers Started run worker instance (delayed) #11\n',
    '2020-06-05T11:28:03.835Z workers Started run worker instance (delayed) #9\n',
    '2020-06-05T11:28:03.836Z workers Started run worker instance (delayed) #10\n',
    '2020-06-05T11:28:03.839Z workers Started run worker instance (delayed) #12\n',
    '2020-06-05T11:28:03.842Z workers Started run worker instance (delayed) #13\n',
    '2020-06-05T11:28:06.845Z workers [ot05k] Loaded unknown number of test(s)\n',
    '2020-06-05T11:28:06.854Z workers [ot05k] Test executed: should create the app\n',
    "2020-06-05T11:28:06.854Z workers [ot05k] Test executed: should have as title 'app'\n",
    '2020-06-05T11:28:06.855Z workers [ot05k] Test executed: should render title\n',
    '2020-06-05T11:28:06.858Z workers [ot05k] Run 3 test(s), skipped 0 test(s)\n',
    '2020-06-05T11:28:06.859Z workers [ot05k] Sandbox is responsive, closing it\n',
    '2020-06-05T11:28:06.860Z project Test run finished\n',
    '2020-06-05T11:28:06.860Z project Processed console.log entries\n',
    '2020-06-05T11:28:06.860Z project Processed loading sequences\n',
    '2020-06-05T11:28:06.861Z project Processed executed tests\n',
    '2020-06-05T11:28:06.861Z project Processed code coverage\n',
    '2020-06-05T11:28:06.868Z project Test run result processed and sent to IDE\n'
  ]
}

angular.json

{
  "version": 1,
  "projects": {
    "app": {
      "projectType": "application",
      "schematics": {
        "@nrwl/angular:component": {
          "style": "scss"
        }
      },
      "root": "apps/app",
      "sourceRoot": "apps/app/src",
      "prefix": "space",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/apps/app",
            "index": "apps/app/src/index.html",
            "main": "apps/app/src/main.ts",
            "polyfills": "apps/app/src/polyfills.ts",
            "tsConfig": "apps/app/tsconfig.app.json",
            "aot": true,
            "assets": ["apps/app/src/favicon.ico", "apps/app/src/assets"],
            "styles": ["apps/app/src/styles.scss"],
            "scripts": []
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "apps/app/src/environments/environment.ts",
                  "with": "apps/app/src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb",
                  "maximumError": "10kb"
                }
              ]
            }
          }
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "app:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "app:build:production"
            }
          }
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "app:build"
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "apps/app/tsconfig.app.json",
              "apps/app/tsconfig.spec.json"
            ],
            "exclude": ["**/node_modules/**", "!apps/app/**"]
          }
        },
        "test": {
          "builder": "@nrwl/jest:jest",
          "options": {
            "jestConfig": "apps/app/jest.config.js",
            "tsConfig": "apps/app/tsconfig.spec.json",
            "passWithNoTests": true,
            "setupFile": "apps/app/src/test-setup.ts"
          }
        }
      }
    },
    "app-e2e": {
      "root": "apps/app-e2e",
      "sourceRoot": "apps/app-e2e/src",
      "projectType": "application",
      "architect": {
        "e2e": {
          "builder": "@nrwl/cypress:cypress",
          "options": {
            "cypressConfig": "apps/app-e2e/cypress.json",
            "tsConfig": "apps/app-e2e/tsconfig.e2e.json",
            "devServerTarget": "app:serve"
          },
          "configurations": {
            "production": {
              "devServerTarget": "app:serve:production"
            }
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": ["apps/app-e2e/tsconfig.e2e.json"],
            "exclude": ["**/node_modules/**", "!apps/app-e2e/**"]
          }
        }
      }
    }
  },
  "cli": {
    "defaultCollection": "@nrwl/angular"
  },
  "schematics": {
    "@nrwl/workspace": {
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/cypress": {
      "cypress-project": {
        "linter": "eslint"
      }
    },
    "@nrwl/react": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      },
      "storybook-configuration": {
        "linter": "eslint"
      }
    },
    "@nrwl/next": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/web": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/node": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/nx-plugin": {
      "plugin": {
        "linter": "eslint"
      }
    },
    "@nrwl/nest": {
      "application": {
        "linter": "eslint"
      }
    },
    "@nrwl/express": {
      "application": {
        "linter": "eslint"
      },
      "library": {
        "linter": "eslint"
      }
    },
    "@nrwl/angular:application": {
      "unitTestRunner": "jest",
      "e2eTestRunner": "cypress"
    },
    "@nrwl/angular:library": {
      "unitTestRunner": "jest"
    }
  },
  "defaultProject": "app"
}

package.json

{
  "name": "space",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "nx": "nx",
    "start": "nx serve",
    "build": "nx build",
    "test": "nx test",
    "lint": "nx workspace-lint && nx lint",
    "e2e": "nx e2e",
    "affected:apps": "nx affected:apps",
    "affected:libs": "nx affected:libs",
    "affected:build": "nx affected:build",
    "affected:e2e": "nx affected:e2e",
    "affected:test": "nx affected:test",
    "affected:lint": "nx affected:lint",
    "affected:dep-graph": "nx affected:dep-graph",
    "affected": "nx affected",
    "format": "nx format:write",
    "format:write": "nx format:write",
    "format:check": "nx format:check",
    "update": "nx migrate latest",
    "workspace-schematic": "nx workspace-schematic",
    "dep-graph": "nx dep-graph",
    "help": "nx help",
    "postinstall": "ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points"
  },
  "private": true,
  "dependencies": {
    "@nrwl/angular": "9.3.0",
    "@angular/animations": "^9.1.0",
    "@angular/common": "^9.1.0",
    "@angular/compiler": "^9.1.0",
    "@angular/core": "^9.1.0",
    "@angular/forms": "^9.1.0",
    "@angular/platform-browser": "^9.1.0",
    "@angular/platform-browser-dynamic": "^9.1.0",
    "@angular/router": "^9.1.0",
    "core-js": "^2.5.4",
    "rxjs": "~6.5.4",
    "zone.js": "^0.10.2"
  },
  "devDependencies": {
    "@nrwl/workspace": "9.3.0",
    "@types/node": "~8.9.4",
    "dotenv": "6.2.0",
    "ts-node": "~7.0.0",
    "tslint": "~6.0.0",
    "eslint": "6.8.0",
    "typescript": "~3.8.3",
    "prettier": "2.0.4",
    "@angular/compiler-cli": "^9.1.0",
    "@angular/language-service": "^9.1.0",
    "@angular-devkit/build-angular": "0.901.0",
    "codelyzer": "~5.0.1",
    "jest-preset-angular": "8.1.2",
    "@nrwl/jest": "9.3.0",
    "jest": "25.2.3",
    "@types/jest": "25.1.4",
    "ts-jest": "25.2.1",
    "cypress": "^4.1.0",
    "@nrwl/cypress": "9.3.0"
  }
}
smcenlly commented 4 years ago

Thanks for providing us with the details. This is expected at the moment as our automatic configuration only considers angular.json and not the nx workspace.json file that is used when specifying cli as nx.

We will be investigating how to add first class support for nx workspaces and will let you know when we have an update to this ticket.

smcenlly commented 4 years ago

We have added experimental support to Wallaby's automatic configuration for nx workspaces (both angular.json and workspace.json) that use jest (the nx default) as their test runner. Both Angular and React project types are supported. Please note that your @nrwl/workspace version must be >= 8.0.0.

You can try this by switching Wallaby project to use automatic configuration. If you encounter problems using automatic configuration, please let us know.

FDiskas commented 9 months ago
[Error] Automatic Vitest configuration error: The "path" argument must be of type string. Received undefined 
[Error]     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

By forsing core update fixed my issue.