public icon indicating copy to clipboard operation
public copied to clipboard

Coverage explorer cannot open websocket from Windows to WSL2

Open nlaplante opened this issue 10 months ago • 1 comments

Issue description or question

VSCode is running in WSL2 remote mode. Clicking the "Open coverage explorer" link in Wallaby console opens a browser in Windows at the location http://localhost:51245.

Nothing happens in the page and the console shows this:

main.4d54abfa5fb67f99d7bc.js:1 app comp: initialising.
main.4d54abfa5fb67f99d7bc.js:1 bus: starting.
main.4d54abfa5fb67f99d7bc.js:1 bus: started.
main.4d54abfa5fb67f99d7bc.js:1 app comp: initialised.
content-script.ts:82 Attempting initialization Fri Apr 26 2024 09:50:35 GMT-0400 (Eastern Daylight Time)
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51235/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51236/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51238/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51237/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51240/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51239/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51241/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51242/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51243/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:51244/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52742/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52743/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52744/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52745/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52746/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:52747/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53583/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53585/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53587/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53579/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53580/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
main.4d54abfa5fb67f99d7bc.js:1  WebSocket connection to 'ws://127.0.0.1:53584/' failed: 
t._handshake @ main.4d54abfa5fb67f99d7bc.js:1
441WebSocket connection to 'ws:<URL>/' failed: WebSocket is closed before the connection is established.
main.4d54abfa5fb67f99d7bc.js:1 bus: project discovery failed.
main.4d54abfa5fb67f99d7bc.js:1 Socket has not been discovered.
main.4d54abfa5fb67f99d7bc.js:1 bus: reconnection scheduled.
main.4d54abfa5fb67f99d7bc.js:1 Socket has not been discovered.

I copied the ws://127.0.0.1:xdxxxx websocket URL and tried to open that in browser from Windows. Using 127.0.0.1 i get a connection refused, but using localhost works fine.

Wallaby diagnostics report

{
  editorVersion: '1.88.1',
  pluginVersion: '1.0.376',
  editorType: 'VSCode',
  osVersion: 'linux 5.15.146.1-microsoft-standard-WSL2',
  nodeVersion: 'v18.19.0',
  coreVersion: '1.0.1560',
  checksum: 'YTdjOTE0ZDJkMGNjNDg2MjJhYzBiNzI0YzE1OGJjZWUsMTcyOTEyMzIwMDAwMCww',
  config: {
    diagnostics: {
      jest: {
        config: {
          configs: [
            {
              automock: false,
              cache: true,
              cacheDirectory: '/tmp/jest_rs',
              clearMocks: true,
              collectCoverageFrom: [],
              coverageDirectory: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/coverage',
              coveragePathIgnorePatterns: [
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules',
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/src/environments',
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/src/app/utils/test',
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/src/app/asset-details/table/columns'
              ],
              cwd: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX',
              dependencyExtractor: undefined,
              detectLeaks: false,
              detectOpenHandles: false,
              displayName: undefined,
              errorOnDeprecated: false,
              extensionsToTreatAsEsm: [],
              fakeTimers: { enableGlobally: false },
              filter: undefined,
              forceCoverageMatch: [],
              globalSetup: undefined,
              globalTeardown: undefined,
              globals: {},
              haste: { computeSha1: false, enableSymlinks: false, forceNodeFilesystemAPI: true, throwOnModuleCollision: false },
              id: '45dc73ea10ac6f66cc4ccf16ae3548ac',
              injectGlobals: true,
              moduleDirectories: [ 'node_modules' ],
              moduleFileExtensions: [ 'ts', 'html', 'js', 'json', 'mjs' ],
              moduleNameMapper: [
                [ '^lodash-es$', 'lodash' ],
                [ '^jsonpath-plus$', 'jsonpath-plus' ],
                [ '^moment-duration-format$', 'moment-duration-format' ],
                [ '@app(.*)', '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/src/app/$1' ],
                [ '@mocks(.*)', '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/src/mocks/$1' ]
              ],
              modulePathIgnorePatterns: [],
              modulePaths: undefined,
              openHandlesTimeout: 1000,
              prettierPath: 'prettier',
              resetMocks: true,
              resetModules: false,
              resolver: undefined,
              restoreMocks: true,
              rootDir: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX',
              roots: [ '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX' ],
              runner: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-runner/build/index.js',
              runtime: undefined,
              sandboxInjectedGlobals: [],
              setupFiles: [],
              setupFilesAfterEnv: [ '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/setup-jest.ts' ],
              skipFilter: false,
              skipNodeResolution: undefined,
              slowTestThreshold: 5,
              snapshotFormat: { escapeString: false, printBasicPrototype: false },
              snapshotResolver: undefined,
              snapshotSerializers: [
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-preset-angular/build/serializers/html-comment.js',
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-preset-angular/build/serializers/ng-snapshot.js',
                '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-preset-angular/build/serializers/no-ng-attributes.js'
              ],
              testEnvironment: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-environment-jsdom/build/index.js',
              testEnvironmentOptions: {},
              testLocationInResults: false,
              testMatch: [ '**/src/**/?(*.)+(spec|test).(js|ts|tsx)' ],
              testPathIgnorePatterns: [ '/node_modules/' ],
              testRegex: [],
              testRunner: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-circus/runner.js',
              transform: [
                [
                  '^.+\\.(ts|js|mjs|html|svg)$',
                  '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-preset-angular/build/index.js',
                  { tsconfig: '<rootDir>/tsconfig.spec.json', stringifyContentPathRegex: '\\.(html|svg)$' }
                ]
              ],
              transformIgnorePatterns: [ 'node_modules/(?!(XXXXXXXXXXXXXXXXX/ui-components|.*\\.mjs$))' ],
              unmockedModulePathPatterns: undefined,
              watchPathIgnorePatterns: []
            }
          ],
          globalConfig: {
            bail: 0,
            changedFilesWithAncestor: false,
            changedSince: undefined,
            ci: false,
            collectCoverage: false,
            collectCoverageFrom: [],
            coverageDirectory: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/coverage',
            coverageProvider: 'babel',
            coverageReporters: [ 'lcov', [ 'text', { skipFull: true } ] ],
            coverageThreshold: { global: { branches: 50, functions: 50, lines: 50, statements: 50 } },
            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: 23,
            noSCM: undefined,
            noStackTrace: false,
            nonFlagArgs: undefined,
            notify: false,
            notifyMode: 'failure-change',
            onlyChanged: false,
            onlyFailures: false,
            openHandlesTimeout: 1000,
            outputFile: undefined,
            passWithNoTests: false,
            projects: [],
            randomize: undefined,
            replname: undefined,
            reporters: undefined,
            rootDir: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX',
            runInBand: undefined,
            runTestsByPath: false,
            seed: 1322197162,
            shard: undefined,
            showSeed: undefined,
            silent: undefined,
            skipFilter: false,
            snapshotFormat: { escapeString: false, printBasicPrototype: false },
            testFailureExitCode: 1,
            testNamePattern: undefined,
            testPathPattern: '',
            testResultsProcessor: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/jest-sonar-reporter/index.js',
            testSequencer: '<homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/node_modules/@jest/test-sequencer/build/index.js',
            testTimeout: undefined,
            updateSnapshot: 'new',
            useStderr: false,
            verbose: true,
            watch: false,
            watchAll: false,
            watchPlugins: undefined,
            watchman: true,
            workerIdleMemoryLimit: undefined,
            workerThreads: false
          },
          hasDeprecationWarnings: false,
          wallaby: {
            roots: [],
            watchPathIgnorePatterns: [ '/node_modules/', '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/', '/tmp/jest_rs', '\\./coverage' ],
            testPathIgnorePatterns: [ '/node_modules/', '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/', '/tmp/jest_rs', '\\./coverage' ],
            testMatch: [ '**/src/**/?(*.)+(spec|test).(js|ts|tsx)' ],
            testRegex: []
          }
        }
      }
    },
    testFramework: { version: '[email protected]', configurator: '[email protected]', reporter: '[email protected]', starter: '[email protected]', autoDetected: true },
    filesWithCoverageCalculated: [],
    filesWithNoCoverageCalculated: [
      /\/home\/nicolas\/projects\/XXXXXXXXXXXXXXXXXXXXX\/node_modules/,
      /\/home\/nicolas\/projects\/XXXXXXXXXXXXXXXXXXXXX\/src\/environments/,
      /\/home\/nicolas\/projects\/XXXXXXXXXXXXXXXXXXXXX\/src\/app\/utils\/test/,
      /\/home\/nicolas\/projects\/XXXXXXXXXXXXXXXXXXXXX\/src\/app\/asset-details\/table\/columns/
    ],
    globalSetup: false,
    dot: true,
    files: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true, file: true, test: true },
      {
        pattern: '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/',
        regexp: /\.\/dist\/|\.\/build\/|\.\/coverage\/|\.\/git\/|\/\..+\//,
        ignore: true,
        trigger: true,
        load: true,
        file: true,
        test: true
      },
      { pattern: '/tmp/jest_rs', regexp: /\/tmp\/jest_rs/, ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '\\./coverage', regexp: /\.\/coverage/, ignore: true, trigger: true, load: true, file: true, test: true },
      { pattern: '**/**', ignore: false, trigger: true, load: true, order: 1 },
      { pattern: '**/src/**/?(*.)+(spec|test).(js|ts|tsx)', ignore: true, trigger: true, load: true, file: true }
    ],
    captureConsoleLog: true,
    tests: [
      { pattern: '/node_modules/', regexp: /\/node_modules\//, ignore: true, trigger: true, load: true, test: true, file: false },
      {
        pattern: '\\./dist/|\\./build/|\\./coverage/|\\./git/|/\\..+/',
        regexp: /\.\/dist\/|\.\/build\/|\.\/coverage\/|\.\/git\/|\/\..+\//,
        ignore: true,
        trigger: true,
        load: true,
        test: true,
        file: false
      },
      { pattern: '/tmp/jest_rs', regexp: /\/tmp\/jest_rs/, ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '\\./coverage', regexp: /\.\/coverage/, ignore: true, trigger: true, load: true, test: true, file: false },
      { pattern: '**/src/**/?(*.)+(spec|test).(js|ts|tsx)', ignore: false, trigger: true, load: true, test: true, order: 2 }
    ],
    runAllTestsInAffectedTestFile: false,
    updateNoMoreThanOneSnapshotPerTestFileRun: false,
    compilers: {},
    logLimits: { inline: { depth: 5, elements: 5000 }, values: { default: { stringLength: 8192 }, autoExpand: { elements: 5000, stringLength: 8192, depth: 10 } } },
    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|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: '/usr/bin/node', viewportSize: { width: 800, height: 600 }, options: { width: 800, height: 600 }, bundle: true },
    reportUnhandledPromises: true,
    slowTestThreshold: 75,
    lowCoverageThreshold: 80,
    runAllTestsWhenNoAffectedTests: false,
    configCode: 'auto.detect#1293282279'
  },
  packageJSON: {
    dependencies: {
      '@angular-architects/module-federation': '^15.0.3',
      '@angular-architects/module-federation-runtime': '^15.0.3',
      '@angular-architects/module-federation-tools': '^15.0.3',
      '@angular/animations': '^15.2.8',
      '@angular/common': '^15.2.8',
      '@angular/compiler': '^15.2.8',
      '@angular/core': '^15.2.8',
      '@angular/forms': '^15.2.8',
      '@angular/platform-browser': '^15.2.8',
      '@angular/platform-browser-dynamic': '^15.2.8',
      '@angular/router': '^15.2.8',
      '@apollo/client': '3.8.7',
      '@babel/preset-typescript': '7.24.1',
      'XXXXXXXXXXXXXXXXX/ui-components': '3.3.6',
      'XXXXXXXXXXXXXXXXX/wts-models-v2': '1.0.1-6',
      '@graphql-codegen/typescript-operations': '4.0.1',
      '@ngrx/component': '15.4.0',
      '@ngrx/effects': '15.4.0',
      '@ngrx/eslint-plugin': '15.4.0',
      '@ngrx/operators': '17.0.1',
      '@ngrx/router-store': '15.4.0',
      '@ngrx/schematics': '15.4.0',
      '@ngrx/store': '15.4.0',
      '@ngrx/store-devtools': '15.4.0',
      'ag-grid-angular': '31.0.1',
      'ag-grid-community': '31.0.1',
      'ag-grid-enterprise': '31.0.1',
      'apollo-angular': '6.0.0',
      graphql: '16.8.1',
      'jsonpath-plus': '8.1.0',
      'lodash-es': '^4.17.21',
      moment: '2.30.1',
      'moment-duration-format': '2.3.2',
      rxjs: '6.6.7',
      tslib: '^2.5.3',
      typia: '5.3.5',
      'zone.js': '^0.13.1'
    },
    devDependencies: {
      '@angular-devkit/build-angular': '^15.2.7',
      '@angular-eslint/eslint-plugin': '^15.2.1',
      '@angular/cli': '^15.2.7',
      '@angular/compiler-cli': '^15.2.8',
      '@compodoc/compodoc': '^1.1.19',
      'XXXXXXXXXXXXXXXXX/apache-config': '^1.4.86',
      'XXXXXXXXXXXXXXXXX/auto-version': '^1.0.2',
      'XXXXXXXXXXXXXXXXX/dsuite-playwright': '^1.0.5',
      '@graphql-codegen/cli': '5.0.0',
      '@graphql-codegen/typescript-apollo-angular': '4.0.0',
      '@playwright/test': '1.37.0',
      '@types/jest': '29.5.12',
      '@types/lodash-es': '^4.17.7',
      '@types/node': '^18.16.7',
      '@typescript-eslint/eslint-plugin': '^5.59.1',
      '@typescript-eslint/parser': '^5.59.1',
      concurrently: '^8.0.1',
      eslint: '^8.39.0',
      'eslint-config-node': '^4.1.0',
      'eslint-config-prettier': '^8.8.0',
      'eslint-import-resolver-alias': '^1.1.2',
      'eslint-import-resolver-typescript': '^3.5.5',
      'eslint-plugin-import': '^2.27.5',
      'eslint-plugin-jest': '^27.2.1',
      'eslint-plugin-prettier': '^4.2.1',
      'eslint-plugin-sonarjs': '^0.19.0',
      husky: '^8.0.3',
      jest: '29.7.0',
      'jest-junit': '^16.0.0',
      'jest-marbles': '3.0.5',
      'jest-preset-angular': '^13.0.1',
      'jest-sonar-reporter': '^2.0.0',
      'lint-staged': '^13.2.2',
      'ngx-build-plus': '^15.0.0',
      prettier: '^2.8.8',
      serve: '^14.2.0',
      'sonarqube-scanner': '^3.0.1',
      'source-map-explorer': '^2.5.3',
      'ts-jest': '29.1.2',
      'ts-node': '10.9.2',
      'ts-patch': '3.1.1',
      typescript: '4.8.2'
    }
  },
  fs: { numberOfFiles: 235 },
  debug: [
    '2024-04-26T13:42:43.861Z project waiting for initial run signal\n',
    '2024-04-26T13:42:43.886Z config Attempting automatic configuration for jest\n',
    '2024-04-26T13:42:43.952Z jest/config Detected Jest.\n',
    '2024-04-26T13:42:43.953Z jest/config Configured Jest.\n',
    '2024-04-26T13:42:43.953Z config Finished attempting automatic configuration for jest (67ms)\n',
    '2024-04-26T13:42:43.954Z project Wallaby Node version: v18.19.0\n',
    '2024-04-26T13:42:43.954Z project Wallaby config: <homeDir>/projects/XXXXXXXXXXXXXXXXXXXXX/auto.detect\n',
    '2024-04-26T13:42:43.958Z fs File system starting\n',
    '2024-04-26T13:42:44.056Z fs File system scan completed\n',
    '2024-04-26T13:42:44.060Z project File cache: <homeDir>/.vscode-server/extensions/wallabyjs.wallaby-vscode-1.0.376/projects/e6590619f635cc4d\n',
    '2024-04-26T13:42:44.155Z uiService Listening port 51235\n',
    '2024-04-26T13:42:44.160Z project package.json file change detected, invalidating local cache\n',
    '2024-04-26T13:42:44.253Z workers Parallelism for initial run: 22, for regular run: 11\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #0\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #1\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #2\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #3\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #4\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #5\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #6\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #7\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #8\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #9\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #10\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #11\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #12\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #13\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #14\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #15\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #16\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #17\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #18\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #19\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #20\n',
    '2024-04-26T13:42:44.253Z workers Starting run worker instance #21\n',
    '2024-04-26T13:42:44.254Z workers Web server is listening at 42429\n',
    '2024-04-26T13:42:44.254Z project File cache requires some updates, waiting required files from IDE\n',
    '2024-04-26T13:42:44.531Z workers Started run worker instance (delayed) #11\n',
    '2024-04-26T13:42:44.533Z workers Started run worker instance (delayed) #0\n',
    '2024-04-26T13:42:44.534Z workers Started run worker instance (delayed) #1\n',
    '2024-04-26T13:42:44.535Z workers Started run worker instance (delayed) #3\n',
    '2024-04-26T13:42:44.535Z workers Started run worker instance (delayed) #2\n',
    '2024-04-26T13:42:44.536Z workers Started run worker instance (delayed) #8\n',
    '2024-04-26T13:42:44.539Z project Stopping process pool\n',
    '2024-04-26T13:42:44.545Z workers Started run worker instance (delayed) #9\n',
    '2024-04-26T13:42:44.545Z workers Started run worker instance (delayed) #7\n',
    '2024-04-26T13:42:44.546Z workers Started run worker instance (delayed) #10\n',
    '2024-04-26T13:42:44.546Z workers Started run worker instance (delayed) #5\n',
    '2024-04-26T13:42:44.547Z project Test run started; run priority: 3\n',
    '2024-04-26T13:42:44.548Z project Running all tests\n',
    '2024-04-26T13:42:44.555Z workers Starting test run, priority: 3\n',
    '2024-04-26T13:42:44.555Z workers Distributing tests between 22 workers\n',
    '2024-04-26T13:42:44.557Z workers Running tests in parallel\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #0, session #3l5y5]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #1, session #hta5w]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #2, session #it5d6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #3, session #oq9b6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #4, session #uqv3b]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #5, session #nmirs]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #6, session #b0scu]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #7, session #i6uch]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #8, session #577kf]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #9, session #2cqot]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #10, session #3j96g]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #11, session #ozu62]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #12, session #lfpfg]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #13, session #tfhrh]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #14, session #00tov]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #15, session #s9axn]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #16, session #w7g6f]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #17, session #eb8ad]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #18, session #066nx]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #19, session #kjzs9]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #20, session #lm102]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Starting sandbox [worker #21, session #yeb4v]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #0, session #3l5y5]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #1, session #hta5w]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #2, session #it5d6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #3, session #oq9b6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #4, session #uqv3b]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #5, session #nmirs]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #6, session #b0scu]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #7, session #i6uch]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #8, session #577kf]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #9, session #2cqot]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #10, session #3j96g]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #11, session #ozu62]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #12, session #lfpfg]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #13, session #tfhrh]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #14, session #00tov]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #15, session #s9axn]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #16, session #w7g6f]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #17, session #eb8ad]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #18, session #066nx]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #19, session #kjzs9]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #20, session #lm102]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Preparing sandbox [worker #21, session #yeb4v]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #0, session #3l5y5]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #1, session #hta5w]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #2, session #it5d6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #3, session #oq9b6]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #5, session #nmirs]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #7, session #i6uch]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #8, session #577kf]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #9, session #2cqot]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #10, session #3j96g]\n',
    '2024-04-26T13:42:44.557Z nodeRunner Prepared sandbox [worker #11, session #ozu62]\n',
    '2024-04-26T13:42:44.558Z workers [worker #0, session #3l5y5] Running tests in sandbox\n',
    '2024-04-26T13:42:44.560Z workers [worker #1, session #hta5w] Running tests in sandbox\n',
    '2024-04-26T13:42:44.560Z workers [worker #2, session #it5d6] Running tests in sandbox\n',
    '2024-04-26T13:42:44.561Z workers [worker #3, session #oq9b6] Running tests in sandbox\n',
    '2024-04-26T13:42:44.562Z workers [worker #5, session #nmirs] Running tests in sandbox\n',
    '2024-04-26T13:42:44.562Z workers [worker #7, session #i6uch] Running tests in sandbox\n',
    '2024-04-26T13:42:44.562Z workers [worker #8, session #577kf] Running tests in sandbox\n',
    '2024-04-26T13:42:44.563Z workers [worker #9, session #2cqot] Running tests in sandbox\n',
    '2024-04-26T13:42:44.563Z workers [worker #10, session #3j96g] Running tests in sandbox\n',
    '2024-04-26T13:42:44.564Z workers [worker #11, session #ozu62] Running tests in sandbox\n',
    '2024-04-26T13:42:44.575Z workers Started run worker instance (delayed) #6\n',
    '2024-04-26T13:42:44.576Z nodeRunner Prepared sandbox [worker #6, session #b0scu]\n',
    '2024-04-26T13:42:44.576Z workers [worker #6, session #b0scu] Running tests in sandbox\n',
    '2024-04-26T13:42:44.577Z workers Started run worker instance (delayed) #4\n',
    '2024-04-26T13:42:44.578Z nodeRunner Prepared sandbox [worker #4, session #uqv3b]\n',
    '2024-04-26T13:42:44.578Z workers [worker #4, session #uqv3b] Running tests in sandbox\n',
    '2024-04-26T13:42:44.659Z workers Started run worker instance (delayed) #15\n',
    '2024-04-26T13:42:44.659Z nodeRunner Prepared sandbox [worker #15, session #s9axn]\n',
    '2024-04-26T13:42:44.659Z workers [worker #15, session #s9axn] Running tests in sandbox\n',
    '2024-04-26T13:42:44.660Z workers Started run worker instance (delayed) #13\n',
    '2024-04-26T13:42:44.660Z nodeRunner Prepared sandbox [worker #13, session #tfhrh]\n',
    '2024-04-26T13:42:44.661Z workers [worker #13, session #tfhrh] Running tests in sandbox\n',
    '2024-04-26T13:42:44.663Z workers Started run worker instance (delayed) #16\n',
    '2024-04-26T13:42:44.663Z nodeRunner Prepared sandbox [worker #16, session #w7g6f]\n',
    '2024-04-26T13:42:44.663Z workers [worker #16, session #w7g6f] Running tests in sandbox\n',
    '2024-04-26T13:42:44.666Z workers Started run worker instance (delayed) #17\n',
    '2024-04-26T13:42:44.666Z nodeRunner Prepared sandbox [worker #17, session #eb8ad]\n',
    '2024-04-26T13:42:44.666Z workers [worker #17, session #eb8ad] Running tests in sandbox\n',
    '2024-04-26T13:42:44.667Z workers Started run worker instance (delayed) #12\n',
    '2024-04-26T13:42:44.667Z nodeRunner Prepared sandbox [worker #12, session #lfpfg]\n',
    '2024-04-26T13:42:44.667Z workers [worker #12, session #lfpfg] Running tests in sandbox\n',
    '2024-04-26T13:42:44.668Z workers Started run worker instance (delayed) #19\n',
    '2024-04-26T13:42:44.668Z nodeRunner Prepared sandbox [worker #19, session #kjzs9]\n',
    '2024-04-26T13:42:44.668Z workers [worker #19, session #kjzs9] Running tests in sandbox\n',
    '2024-04-26T13:42:44.676Z workers Started run worker instance (delayed) #18\n',
    '2024-04-26T13:42:44.676Z nodeRunner Prepared sandbox [worker #18, session #066nx]\n',
    '2024-04-26T13:42:44.676Z workers [worker #18, session #066nx] Running tests in sandbox\n',
    '2024-04-26T13:42:44.685Z workers Started run worker instance (delayed) #21\n',
    '2024-04-26T13:42:44.685Z nodeRunner Prepared sandbox [worker #21, session #yeb4v]\n',
    '2024-04-26T13:42:44.685Z workers [worker #21, session #yeb4v] Running tests in sandbox\n',
    '2024-04-26T13:42:44.698Z workers Started run worker instance (delayed) #20\n',
    '2024-04-26T13:42:44.699Z nodeRunner Prepared sandbox [worker #20, session #lm102]\n',
    '2024-04-26T13:42:44.699Z workers [worker #20, session #lm102] Running tests in sandbox\n',
    '2024-04-26T13:42:44.708Z workers Started run worker instance (delayed) #14\n',
    '2024-04-26T13:42:44.708Z nodeRunner Prepared sandbox [worker #14, session #00tov]\n',
    '2024-04-26T13:42:44.708Z workers [worker #14, session #00tov] Running tests in sandbox\n',
    "2024-04-26T13:42:44.963Z workers 'Scheduling Jest Test Run (ozu62): 2024-04-26T13:42:44.963Z'\n",
    "2024-04-26T13:42:44.990Z workers 'Scheduling Jest Test Run (i6uch): 2024-04-26T13:42:44.989Z'\n",
    "2024-04-26T13:42:45.004Z workers 'Scheduling Jest Test Run (oq9b6): 2024-04-26T13:42:45.003Z'\n",
    "2024-04-26T13:42:45.012Z workers 'Scheduling Jest Test Run (hta5w): 2024-04-26T13:42:45.011Z'\n",
    "2024-04-26T13:42:45.017Z workers 'Scheduling Jest Test Run (it5d6): 2024-04-26T13:42:45.016Z'\n",
    "2024-04-26T13:42:45.024Z workers 'Scheduling Jest Test Run (3j96g): 2024-04-26T13:42:45.023Z'\n",
    "2024-04-26T13:42:45.067Z workers 'Scheduling Jest Test Run (nmirs): 2024-04-26T13:42:45.066Z'\n",
    "2024-04-26T13:42:45.087Z workers 'Scheduling Jest Test Run (3l5y5): 2024-04-26T13:42:45.086Z'\n",
    "2024-04-26T13:42:45.103Z workers 'Scheduling Jest Test Run (b0scu): 2024-04-26T13:42:45.102Z'\n",
    "2024-04-26T13:42:45.104Z workers 'Scheduling Jest Test Run (2cqot): 2024-04-26T13:42:45.102Z'\n",
    "2024-04-26T13:42:45.104Z workers 'Scheduling Jest Test Run (uqv3b): 2024-04-26T13:42:45.103Z'\n",
    "2024-04-26T13:42:45.104Z workers 'Scheduling Jest Test Run (w7g6f): 2024-04-26T13:42:45.103Z'\n",
    "2024-04-26T13:42:45.104Z workers 'Scheduling Jest Test Run (577kf): 2024-04-26T13:42:45.103Z'\n",
    "2024-04-26T13:42:45.126Z workers 'Scheduling Jest Test Run (tfhrh): 2024-04-26T13:42:45.125Z'\n",
    "2024-04-26T13:42:45.132Z workers 'Scheduling Jest Test Run (00tov): 2024-04-26T13:42:45.131Z'\n",
    "2024-04-26T13:42:45.132Z workers 'Scheduling Jest Test Run (lm102): 2024-04-26T13:42:45.130Z'\n",
    "2024-04-26T13:42:45.163Z workers 'Scheduling Jest Test Run (kjzs9): 2024-04-26T13:42:45.162Z'\n",
    "2024-04-26T13:42:45.165Z workers 'Scheduling Jest Test Run (lfpfg): 2024-04-26T13:42:45.164Z'\n",
    "2024-04-26T13:42:45.196Z workers 'Scheduling Jest Test Run (eb8ad): 2024-04-26T13:42:45.195Z'\n",
    "2024-04-26T13:42:45.223Z workers 'Scheduling Jest Test Run (s9axn): 2024-04-26T13:42:45.222Z'\n",
    "2024-04-26T13:42:45.225Z workers 'Scheduling Jest Test Run (yeb4v): 2024-04-26T13:42:45.224Z'\n",
    "2024-04-26T13:42:45.238Z workers 'Scheduling Jest Test Run (066nx): 2024-04-26T13:42:45.237Z'\n",

  ]
}

nlaplante avatar Apr 26 '24 14:04 nlaplante

We mention in our docs:

If you are developing in a remote environment (e.g. using VS Code’s Remote Development Extension) then you need to access Wallaby App using a customized querystring parameter to specify the remote server that is running Wallaby.

To start Wallaby app and specify a remote server, launch with the URL:

http://wallabyjs.com/app/?server={IP address or hostname}

If a remote server is specified then Wallaby App’s status bar will display the server (IP address or hostname) it is connected to and button to reset the setting back to the default (localhost).

Did you already try this and it's not working for you?

smcenlly avatar Apr 29 '24 00:04 smcenlly

I'm having the same problem and the Wallaby status bar isn't showing the server ip

I tried using the ip show on my ipconfig Ethernet adapter vEthernet (WSL (Hyper-V firewall)), but got another error:

image

FernandoGOT avatar Jul 24 '24 20:07 FernandoGOT

@FernandoGOT - can you please let us know what browser you are using? If you try Google Chrome, does it work for you?

Can you please try a different browser to see if that fixes your problem?

smcenlly avatar Jul 24 '24 22:07 smcenlly

@FernandoGOT - can you please let us know what browser you are using? If you try Google Chrome, does it work for you?

Can you please try a different browser to see if that fixes your problem?

I already tried on Brave, Chrome, and Edge. I had the same problem with all of them

FernandoGOT avatar Jul 25 '24 19:07 FernandoGOT

Thanks for confirming. We tried on Chrome and initially had the same problem as you.

It looks like most browsers are now automatically redirecting from http to https and this is causing problems for Wallaby App.

We are actually on the tail-end of a long term fix for this where Wallaby App features and functionality will be integrated directly within VS Code, but for now, we'll need you to apply a workaround.

We have some steps you can take that should allow you to get this working in Chrome:

  1. Open Chrome
  2. Go to chrome://settings/privacy
  3. Go to Delete browsing data
  4. Go to the Advanced tab
  5. Unselect all options except for Cached images and files and then select Delete data:
image
  1. Open your project with VS Code and run the command, Wallaby.js: Launch Coverage & Test Explorer
  2. You should see a dialog from Wallaby:

image

  1. Once you see that dialog, click Open Wallaby App and then select Copy:

image


Once you follow those steps, it should work for you. If you want to use another browser, you will need to investigate how to stop it from directing from http to https.

If you're still having problems, please let us know.

smcenlly avatar Jul 26 '24 02:07 smcenlly

Didn't work for me TT

It only shows this dialog for me:

image

And if I click on open, I get the same problem:

image

Just to clarify, I'm using Brave's browser; I believe that isn't a problem, since it is a Chrome variant and the problem is in the link itself. Another thing is that my license expired in May. Since I barely used it because of this problem, I got a trial key just to see if this was the problem, but it didn't work

FernandoGOT avatar Jul 26 '24 08:07 FernandoGOT

Just to clarify, I'm using Brave's browser

Please use Chrome, we are definitely aware of issues using Brave.

smcenlly avatar Jul 26 '24 08:07 smcenlly

just tried and got the same error, but if you see the alert image I sent, the link doesn't contain the server and secret query strings

FernandoGOT avatar Jul 26 '24 20:07 FernandoGOT

Can you please download and install the latest version of the Wallaby VS code extension (v1.0.380), and also update to the latest version of Wallaby core (v1.0.1587) and see if it works for you?

We've added some additional logic to launching Wallaby App that we hope will fix your problem.

smcenlly avatar Jul 29 '24 02:07 smcenlly

Sorry, I should note, please use Chrome and not Brave while we are troubleshooting.

smcenlly avatar Jul 29 '24 02:07 smcenlly

Sorry for the delay. I'm still getting the same error, the alert link doesn't contain the server and secret query strings

Wallaby.js VSCode plugin: v1.0.380 Wallaby.js core: v1.0.1588

FernandoGOT avatar Jul 30 '24 21:07 FernandoGOT

Can you please try manually generating the URL to open Wallaby App.

http://wallabyjs.com/app/?server=${server}&secret=${serverSecret}

The ${server} parameter should be the IP Address of your WSL instance. The ${serverSecret} parameter should be the contents of the ~/.wallaby/.mid file in your home directory.

smcenlly avatar Jul 31 '24 03:07 smcenlly

got the same error DOMException: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.

FernandoGOT avatar Aug 06 '24 04:08 FernandoGOT

We have enhanced Wallaby to support running Wallaby-App on localhost only and to not use the vanity url of http://wallabyjs.com.

Could you please do the following:

  1. Update both Wallaby core, and your Wallaby VS Code extension to ensure you are running the latest versions:
  • Wallaby VS Code v1.0.381
  • Wallaby Core v1.0.1590
  1. In VS Code, enable the wallaby.alwaysOpenLocalWallabyAppUrl setting:
image
  1. Download the latest Wallaby App offline installation files from https://wallaby-downloads.s3.amazonaws.com/wallaby-app.zip

  2. Extract the zip file to your WSL instance to ~/.wallaby/wallaby-app in your home directory (you should end up with ~/.wallaby/wallaby-app/index.html and other files / folders within that directory).


Once you've done that, when you launch Wallaby App from within VS Code, Wallaby should open a port-mapped connection to your WSL instance and everything should be running locally and over http.

Unfortunately since we cannot reproduce your problem, it's difficult for us to know for sure that this is going to work for you. If you still have problems, please let us know. It may be worth while trying to catch us on discord so we can take a look at your environment with you. If you contact us around the time of your last comment, you should find us online.

smcenlly avatar Aug 06 '24 05:08 smcenlly

@FernandoGOT - were you able to get this working by following our latest instructions?

smcenlly avatar Aug 11 '24 23:08 smcenlly

Assuming that the problem is now resolved, closing this issue.

smcenlly avatar Aug 14 '24 22:08 smcenlly