Code Monkey home page Code Monkey logo

cypress-cloud's People

Contributors

agoldis avatar andybalaam avatar arendjantetteroo avatar darthkurt avatar dependabot[bot] avatar doctorftb avatar lemamin avatar miguelangaranocurrents avatar pkatseas avatar richthornton avatar segevfiner avatar vcaisim avatar vitaliimelnychuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cypress-cloud's Issues

Capture projectId

Capture projectId from currents.config.js default export or from CURENTS_PROJECT_ID env variable, if set and not empty

Prevent duplicated warning when there's no `currens.config.js`

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

Prevent duplicated warning when there's no currens.config.js

Expected behavior

Prevent duplicated warning when there's no currens.config.js

Command and Setup

Prevent duplicated warning when there's no currens.config.js

Full log and debug output

// Put your logs below this line


Tidy up the API layer

  • extract all the API calls into a separate module
  • give the methods meaningful names
  • enforce strong TS typing for the payload for the associated requests
  • expose repeat attempts to user as a message
  • make sure unexpected failed network requests show user-friendly and adequate messages

Detect and store cypress crashes

When an individual cypress run fails at isSuccessResult, we want to:

  • collect those crashes, together with the associated spec name
  • return those crashes together with the results from run function
  • display those together with summary results - if the existing status in run is already positive, use it, if not, use exit status 1
  • Please add tests

The initial STDOUT is cut and never reported

The current implementation cuts the stdout before running a spec.
We want to store the stdout and prepend every subsequent stdout, so the final result will be initial stdout (before running first spec) + the current spec execution

Think about a unit test, event though it can be tricky...if have a good idea - please unit test it

Node 16 + 18 ESM import errors

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

@lpanger

On node 16.13.1 I get:
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".json" for /Users/xxxx/node_modules/cypress/package.json

Is node 17+ a requirement?

On node 18.15.0
TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///Users/xxxxx/node_modules/cypress/package.json" needs an import assertion of type "json"

https://github.com/lpanger/cypress-cloud-module-api

cypress-cloud 1.4.5-beta.1
cypress 12.8.1

clone repo and run node index.js

Expected behavior

Importing ESM modules should not throw on major node versions

Command and Setup

N/A

Full log and debug output

// Put your logs below this line


Fail to run cypress-cloud with 'connect ECONNREFUSED 127.0.0.1:80'

When running

npx cypress-cloud run --parallel --record --key somekey --ci-build-id hello-cypress

we obtain a connection error as follows

Discovered 7 spec files
Tags: false; Group: false; Parallel: true; Batch Size: 3
Connecting to cloud orchestration service...
 WARNING  Network request failed: 'connect ECONNREFUSED 127.0.0.1:80'. Next attempt is in 15s (1/3).

This is the currents.config.js file

module.exports = {
  projectId: 'some-project', // the projectId
  recordKey: 'some-key', // the record key, can be any values for sorry-cypress users
  // Sorry Cypress users - set the director service URL
  cloudServiceUrl: 'http:://localhost:1234',
};

Director is running via docker with command

docker run -p 1234:1234 agoldis/sorry-cypress-director

cypress cloud version is 1.4.4

Expected is that cypress runs and multiple agents can be started in parallel.

Thank you in advance for your time

Tags don't get to sorry cypress dashboard

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

When running cypress-cloud with --tag it runs the tests but the tag do not appear on the sorry cypress dashboard.

Tested with version 1.4.1

Expected behavior

The given tag to get to the cypress dashboard.

Command and Setup

I run with pnpm the following command
pnpm cypress-cloud --parallel --key=$CURRENTS_RECORD_KEY run --config-file cypress.ci.config.ts --ci-build-id $CI_BUILD_ID --tag $TAGS

where $TAGS is a simple string like "my-tag"

Full log and debug output

// Put your logs below this line
   Discovered 62 spec files
   Tags: 12.0.40-renovate-sentry1; Group: false; Parallel: true; Batch Size: 3
   Connecting to cloud orchestration service...

2023-03-10T12:16:58.989Z currents:ci {
  branch: 'debug-cypress-cloud',
  remoteOrigin: '<snip>',
  authorEmail: '<snip>',
  authorName: '<snip>,
  message: 'Try debugging cypress cloud run\n',
  sha: '5cd49b9f34dda4c7acb44e7b6f303ba30476611b'
}
   Tags: 12.0.40-debug-cypress-cloud2; Group: false; Parallel: true; Batch Size: 3
   Connecting to cloud orchestration service...
2023-03-10T12:16:58.991Z currents:api network request: { method: 'POST', url: '/runs', data: { ci: { params: {}, provider: null }, specs: [<snip-long-list-of-specs> ], commit: { branch: 'debug-cypress-cloud', remoteOrigin: '<snip>', authorEmail: '<snip>', authorName: '<snip>', message: 'Try debugging cypress cloud run\n', sha: '5cd49b9f34dda4c7acb44e7b6f303ba30476611b' }, group: undefined, platform: { osName: 'linux', osVersion: 'Debian - 11.6', osCpus: [Array], osMemory: [Object], browserName: 'Electron', browserVersion: '106.0.5249.51' }, parallel: true, ciBuildId: '802398842', projectId: '<snip>', recordKey: '<snip>', specPattern: [ 'cypress/e2e/**/*.cy.{js,jsx,ts,tsx}' ], tags: [ '12.0.40-debug-cypress-cloud2' ], testingType: 'e2e', batchSize: 3 } }
2023-03-10T12:16:59.052Z currents:api network request response: { status: 200, statusText: 'OK', headers: AxiosHeaders { 'x-powered-by': 'Express', 'content-type': 'application/json; charset=utf-8', 'content-length': '222', etag: 'W/"de-EBGeqnexR1Ku41cko97e093D8kA"', date: 'Fri, 10 Mar 2023 12:16:59 GMT', connection: 'close' }, data: { groupId: '802398842', machineId: 'b280fb2a-47fc-42bb-b18d-069fdccc52aa', runId: '33b57bfd10d28f269c7594bae08969d0', runUrl: '<snip>', isNewRun: true, warnings: [] } }
2023-03-10T12:16:59.052Z currents:capture resetting captured stdout
2023-03-10T12:16:59.053Z currents:api network request: { method: 'POST', url: 'runs/33b57bfd10d28f269c7594bae08969d0/instances', data: { runId: '33b57bfd10d28f269c7594bae08969d0', groupId: '802398842', machineId: 'b280fb2a-47fc-42bb-b18d-069fdccc52aa', platform: { osName: 'linux', osVersion: 'Debian - 11.6', osCpus: [Array], osMemory: [Object], browserName: 'Electron', browserVersion: '106.0.5249.51' } } }
2023-03-10T12:16:59.085Z currents:api network request response: { status: 200, statusText: 'OK', headers: AxiosHeaders { 'x-powered-by': 'Express', 'content-type': 'application/json; charset=utf-8', 'content-length': '147', etag: 'W/"93-KTvAcqoDNZM8DgbxZOtFGiHav2E"', date: 'Fri, 10 Mar 2023 12:16:59 GMT', connection: 'close' }, data: { spec: '<snip>', instanceId: '6e6e42be-3d3d-4890-b47d-daf1f3b108a9', claimedInstances: 1, totalInstances: 62 } }

Typescript types seem missing

Before opening, please confirm:

  • I have searched for duplicate or closed issues](https://github.com/currents-dev/cypress-cloud/issues) and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

Typescript can't seem to find the types for the plugin:
#65 (comment)

Expected behavior

No errors for typescript.

Command and Setup

Follow the installation steps where cypress is configured to use typescript for its config files.
https://github.com/currents-dev/cypress-cloud#setup

where cypress uses cypress.config.ts

Full log and debug output

// Put your logs below this line


Unknown file extension ".ts" for /cypress.config.ts

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line
  System:
    OS: macOS 13.2.1
    CPU: (8) arm64 Apple M1 Pro
    Memory: 2.11 GB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.2.0 - /usr/local/bin/node
    Yarn: 1.22.19 - ~/Code/aprilon-web/node_modules/.bin/yarn
    npm: 8.9.0 - /usr/local/bin/npm
  Browsers:
    Brave Browser: 110.1.48.171
    Chrome: 111.0.5563.64
    Firefox: 110.0.1
    Safari: 16.3
  npmPackages:
    @cypress/angular:  0.0.0-development 
    @cypress/grep: ^3.1.4 => 3.1.4 
    @cypress/mount-utils:  0.0.0-development 
    @cypress/react:  0.0.0-development 
    @cypress/react18:  0.0.0-development 
    @cypress/svelte:  0.0.0-development 
    @cypress/vue:  0.0.0-development 
    @cypress/vue2:  0.0.0-development 
    @faker-js/faker: ^7.5.0 => 7.6.0 
    @types/node: ^18.14.0 => 18.14.1 (14.18.36)
    @types/pdf-parse: ^1.1.1 => 1.1.1 
    cypress: ^12.5.1 => 12.5.1 
    cypress-cloud: ^1.4.2 => 1.4.2 
    cypress-mailosaur: ^2.13.0 => 2.13.0 
    dayjs: ^1.11.7 => 1.11.7 
    fs: ^0.0.1-security => 0.0.1-security 
    pdf-parse: ^1.1.1 => 1.1.1 
    typescript: ^4.9.5 => 4.9.5 
  npmGlobalPackages:
    corepack: 0.10.0
    npm: 8.9.0

Describe the bug

I'm using cypress with Typescript. So I tried to create a currents.config.ts but Andrew in currents chat told me it wasn't supported and that I should rename it to 'currents.config.js` as it's only supporting js files.

Then, when running the command:

% npx cypress-cloud run -s cypress/e2e/test.cy.ts --record --ci-build-id test-001 -k <key> 


    ERROR  Resolving cypress configuration failed:
{
  stdout: [
    'Your configFile is invalid: /Users/stephane.colson/Code//e2e/cypress.config.ts',
    '',
    'It threw an error when required, check the stack trace below:',
    '',
    'TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/stephane.colson/Code/e2e/cypress.config.ts',
...

My cypress.config.ts contains this:

import { defineConfig } from 'cypress';
import { cloudPlugin } from 'cypress-cloud/plugin';
import { readPdf } from './cypress/support/readPdf';

export default defineConfig({
  projectId: '<key>', // currents
  e2e: {
    setupNodeEvents(on: Cypress.PluginEvents, config: Cypress.PluginConfigOptions) {
      const items = {};
      on('task', {
        readPdf,
        setItem({ name, value }) {
          if (typeof value === 'undefined') {
            throw new Error(`Cannot store undefined value for item "${name}"`);
          }
          items[name] = value;
          return null;
        },
        getItem(name) {
          if (name in items) {
            return items[name];
          }
          const msg = `Missing item "${name}"`;
          console.error(msg);
          throw new Error(msg);
        },
      });
      return cloudPlugin(on, config);
    },

    baseUrl: 'https://<url/',
....

and my currents.config.js is:

// currents.config.ts
module.exports = {
  projectId: '<ID>', // ProjectID obtained from https://app.currents.dev or Sorry Cypress
  recordKey: '<key>', // Record key obtained from https://app.currents.dev, any value for Sorry Cypress
  cloudServiceUrl: 'https://cy.currents.dev', // Sorry Cypress users - the director service URL
  // e2e: {
  //   batchSize: 3, // orchestration batch size for e2e tests (Currents only)
  // },
  // component: {
  //   batchSize: 5, // orchestration batch size for component tests (Currents only)
  // },
};

Expected behavior

We should be able to use a TypeScript currents.config.ts or be able to use a Javascript one in a TypeScript project.

Command and Setup

npx cypress-cloud run -s cypress/e2e/test.cy.ts --record --ci-build-id test-001 -k

Full log and debug output

// Put your logs below this line
% DEBUG=currents:*,cypress:* npx cypress-cloud run -s cypress/e2e/test.ts --record --ci-build-id test-001 -k <key> 
  currents:config loading currents config file from '/Users/stephane.colson/Code//e2e/currents.config.js' +0ms
  cypress:cli exporting Cypress module interface +0ms
  currents:cli parsed CLI flags { component: false, e2e: true, parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>' } +0ms
  currents:config loading currents config file from '/Users/stephane.colson/Code//e2e/currents.config.js' +213ms
  currents:capture capturing stdout +0ms
  currents:cli parsed run params: { parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'SU67I3', batchSize: 3 } +2ms


  currents:index run api params { parallel: false, record: true, spec: [ 'cypress/e2e/test.ts' ], ciBuildId: 'test-001', key: '<key>', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'SU67I3', batchSize: 3 } +0ms
  currents:config resolving cypress config  +2ms
  currents:boot booting cypress... +0ms
  currents:boot booting cypress with args: [ 'run', '--spec', 'lreuvhtvhq', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--e2e' ] +2ms
  currents:boot cypress executable location: /Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress +1ms
  currents:boot read config temp file failed: Error: Is cypress-cloud/plugin installed? at bootCypress (/Users/stephane.colson/Code//e2e/node_modules/lib/bootstrap.ts:70:13) at getConfig (/Users/stephane.colson/Code//e2e/node_modules/lib/config.ts:58:19) at run (/Users/stephane.colson/Code//e2e/node_modules/index.ts:45:18) +1s
    ERROR  Resolving cypress configuration failed:
{
  stdout: [
    'Your configFile is invalid: /Users/stephane.colson/Code//e2e/cypress.config.ts',
    '',
    'It threw an error when required, check the stack trace below:',
    '',
    'TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/stephane.colson/Code//e2e/cypress.config.ts',
    '    at new NodeError (node:internal/errors:377:5)',
    '    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:80:11)',
    '    at defaultGetFormat (node:internal/modules/esm/get_format:122:38)',
    '    at defaultLoad (node:internal/modules/esm/load:21:20)',
    '    at ESMLoader.load (node:internal/modules/esm/loader:431:26)',
    '    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:350:22)',
    '    at new ModuleJob (node:internal/modules/esm/module_job:66:26)',
    '    at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:369:17)',
    '    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:328:34)',
    '    at processTicksAndRejections (node:internal/process/task_queues:95:5)',
    '    at async Promise.all (index 0)',
    '    at async ESMLoader.import (node:internal/modules/esm/loader:409:24)',
    '    at async importModuleDynamicallyWrapper (node:internal/vm/module:435:15)',
    '    at async loadFile (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/run_require_async_child.js:106:14)',
    '    at async EventEmitter.<anonymous> (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/run_require_async_child.js:116:32)',
    ''
  ],
  stderr: [
    '2023-03-10T08:42:57.787Z cypress:cli:cli cli starts with arguments ["/usr/local/bin/node","/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress","run","--spec","lreuvhtvhq","--env","{\\"currents_temp_file\\":\\"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I\\",\\"currents_port\\":19503,\\"currents_debug_enabled\\":\\"true\\"}","--e2e"]',
    '2023-03-10T08:42:57.788Z cypress:cli NODE_OPTIONS is not set',
    '2023-03-10T08:42:57.788Z cypress:cli:cli program parsing arguments',
    `2023-03-10T08:42:57.791Z cypress:cli:cli running Cypress with args [ Command { _events: [Object: null prototype] { 'option:browser': [Function (anonymous)], 'option:ci-build-id': [Function (anonymous)], 'option:component': [Function (anonymous)], 'option:config': [Function (anonymous)], 'option:config-file': [Function (anonymous)], 'option:e2e': [Function (anonymous)], 'option:env': [Function (anonymous)], 'option:group': [Function (anonymous)], 'option:key': [Function (anonymous)], 'option:headed': [Function (anonymous)], 'option:headless': [Function (anonymous)], 'option:no-exit': [Function (anonymous)], 'option:parallel': [Function (anonymous)], 'option:port': [Function (anonymous)], 'option:project': [Function (anonymous)], 'option:quiet': [Function (anonymous)], 'option:record': [Function (anonymous)], 'option:reporter': [Function (anonymous)], 'option:reporter-options': [Function (anonymous)], 'option:spec': [Function (anonymous)], 'option:tag': [Function (anonymous)], 'option:dev': [Function (anonymous)] }, _eventsCount: 22, _maxListeners: undefined, commands: [], options: [ [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option] ], parent: Command { _events: [Object: null prototype], _eventsCount: 1, _maxListeners: undefined, commands: [Array], options: [Array], parent: null, _allowUnknownOption: false, _args: [], rawArgs: [Array], _scriptPath: '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', _name: 'cypress', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: null, _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: undefined, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '<command> [options]', args: [Array], [Symbol(kCapture)]: false }, _allowUnknownOption: false, _args: [], rawArgs: null, _scriptPath: null, _name: 'run', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: [Function: listener], _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: 0, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '[options]', _description: 'Runs Cypress tests from the CLI without the GUI', _argsDescription: undefined, exit: true, spec: 'lreuvhtvhq', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', e2e: true, args: [], [Symbol(kCapture)]: false } ]`,
    `2023-03-10T08:42:57.839Z cypress:cli:cli variable-length opts parsed { args: [ '/usr/local/bin/node', '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', 'run', '--spec', 'lreuvhtvhq', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--e2e' ], opts: Command { _events: [Object: null prototype] { 'option:browser': [Function (anonymous)], 'option:ci-build-id': [Function (anonymous)], 'option:component': [Function (anonymous)], 'option:config': [Function (anonymous)], 'option:config-file': [Function (anonymous)], 'option:e2e': [Function (anonymous)], 'option:env': [Function (anonymous)], 'option:group': [Function (anonymous)], 'option:key': [Function (anonymous)], 'option:headed': [Function (anonymous)], 'option:headless': [Function (anonymous)], 'option:no-exit': [Function (anonymous)], 'option:parallel': [Function (anonymous)], 'option:port': [Function (anonymous)], 'option:project': [Function (anonymous)], 'option:quiet': [Function (anonymous)], 'option:record': [Function (anonymous)], 'option:reporter': [Function (anonymous)], 'option:reporter-options': [Function (anonymous)], 'option:spec': [Function (anonymous)], 'option:tag': [Function (anonymous)], 'option:dev': [Function (anonymous)] }, _eventsCount: 22, _maxListeners: undefined, commands: [], options: [ [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option], [Option] ], parent: Command { _events: [Object: null prototype], _eventsCount: 1, _maxListeners: undefined, commands: [Array], options: [Array], parent: null, _allowUnknownOption: false, _args: [], rawArgs: [Array], _scriptPath: '/Users/stephane.colson/Code//e2e/node_modules/cypress/bin/cypress', _name: 'cypress', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: null, _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: undefined, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '<command> [options]', args: [Array], [Symbol(kCapture)]: false }, _allowUnknownOption: false, _args: [], rawArgs: null, _scriptPath: null, _name: 'run', _optionValues: {}, _storeOptionsAsProperties: true, _passCommandToAction: true, _actionResults: [], _actionHandler: [Function: listener], _executableHandler: false, _executableFile: null, _defaultCommandName: null, _exitCallback: null, _aliases: [], _hidden: false, _helpFlags: '-h, --help', _helpDescription: 'display help for command', _helpShortFlag: '-h', _helpLongFlag: '--help', _hasImplicitHelpCommand: 0, _helpCommandName: 'help', _helpCommandnameAndArgs: 'help [command]', _helpCommandDescription: 'display help for command', _usage: '[options]', _description: 'Runs Cypress tests from the CLI without the GUI', _argsDescription: undefined, exit: true, spec: 'lreuvhtvhq', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', e2e: true, args: [], [Symbol(kCapture)]: false } }`,
    `2023-03-10T08:42:57.839Z cypress:cli parsed cli options { e2e: true, env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq' }`,
    '2023-03-10T08:42:57.839Z cypress:cli verifying Cypress app',
    '2023-03-10T08:42:57.840Z cypress:cli checking environment variables',
    '2023-03-10T08:42:57.841Z cypress:cli checking if executable exists /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress',
    '2023-03-10T08:42:57.842Z cypress:cli Binary is executable? : true',
    '2023-03-10T08:42:57.843Z cypress:cli binaryDir is  /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app',
    '2023-03-10T08:42:57.843Z cypress:cli Reading binary package.json from: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/package.json',
    '2023-03-10T08:42:57.845Z cypress:cli Found binary version 12.5.1 installed in: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app',
    '2023-03-10T08:42:57.846Z cypress:cli { verified: true }',
    '2023-03-10T08:42:57.847Z cypress:cli is Verified ? true',
    `2023-03-10T08:42:57.847Z cypress:cli:run processing run options { e2e: true, env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq', key: null, reporter: null, reporterOptions: null, project: '/Users/stephane.colson/Code//e2e' }`,
    '2023-03-10T08:42:57.847Z cypress:cli:run --key is not set, looking up environment variable CYPRESS_RECORD_KEY',
    '2023-03-10T08:42:57.847Z cypress:cli:run run to spawn.start args ["--run-project","/Users/stephane.colson/Code//e2e","--env","{\\"currents_temp_file\\":\\"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I\\",\\"currents_port\\":19503,\\"currents_debug_enabled\\":\\"true\\"}","--spec","lreuvhtvhq","--testing-type","e2e"]',
    '2023-03-10T08:42:57.847Z cypress:cli needs to start own Xvfb? false',
    '2023-03-10T08:42:57.847Z cypress:cli spawning, should retry on display problem? false',
    `2023-03-10T08:42:57.851Z cypress:cli spawn args [ '--no-sandbox', '--', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ] { detached: false, stdio: [ 'inherit', 'inherit', 'pipe' ] }`,
    '2023-03-10T08:42:57.851Z cypress:cli spawning Cypress with executable: /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress',
    '2023-03-10T08:42:57.854Z cypress:cli piping child STDERR to process STDERR',
    '2023-03-10T08:42:58.131Z cypress:snapshot:info Caching 3377, defining 4280 modules! Using cache',
    '2023-03-10T08:42:58.135Z cypress:snapshot:debug initializing packherd require',
    '2023-03-10T08:42:58.272Z cypress:server:appdata path: /Users/stephane.colson/Library/Application Support/Cypress/cy/production/browsers',
    `2023-03-10T08:42:58.278Z cypress:server:cypress starting cypress with argv [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ]`,
    `2023-03-10T08:42:58.278Z cypress:server:args argv array: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ]`,
    `2023-03-10T08:42:58.279Z cypress:server:args parsed argv options { options: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, 'run-project': '/Users/stephane.colson/Code//e2e', runProject: '/Users/stephane.colson/Code//e2e', env: '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', spec: 'lreuvhtvhq', 'testing-type': 'e2e', testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0' } }`,
    "2023-03-10T08:42:58.281Z cypress:server:args argv parsed: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' }, spec: 'lreuvhtvhq', testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true }",
    "2023-03-10T08:42:58.282Z cypress:server:util:proxy found proxy environment variables { npm_config_noproxy: '' }",
    "2023-03-10T08:42:58.283Z cypress:server:args options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } } }",
    "2023-03-10T08:42:58.283Z cypress:server:args argv options: { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }",
    `2023-03-10T08:42:58.283Z cypress:server:cypress from argv [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress', '--no-sandbox', '--run-project', '/Users/stephane.colson/Code//e2e', '--env', '{"currents_temp_file":"/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I","currents_port":19503,"currents_debug_enabled":"true"}', '--spec', 'lreuvhtvhq', '--testing-type', 'e2e', '--cwd', '/Users/stephane.colson/Code//e2e', '--userNodePath', '/usr/local/bin/node', '--userNodeVersion', '18.2.0' ] got options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }`,
    '2023-03-10T08:42:58.283Z cypress:server:cypress scaling electron app in headless mode',
    '2023-03-10T08:42:58.293Z cypress:server:appdata path: /Users/stephane.colson/Library/Application Support/Cypress/cy/production',
    "2023-03-10T08:42:58.320Z cypress:server:cypress starting in mode run with options { _: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/MacOS/Cypress' ], sandbox: false, runProject: '/Users/stephane.colson/Code//e2e', spec: [ '/Users/stephane.colson/Code//e2e/lreuvhtvhq' ], testingType: 'e2e', cwd: '/Users/stephane.colson/Code//e2e', userNodePath: '/usr/local/bin/node', userNodeVersion: '18.2.0', invokedFromCli: true, config: { env: { currents_temp_file: '/var/folders/7m/hm263m_x0k92hnfkjjjp29d00000gq/T/tmp-20613-F7i57zfBct1I', currents_port: 19503, currents_debug_enabled: 'true' } }, projectRoot: '/Users/stephane.colson/Code//e2e' }",
    '2023-03-10T08:42:58.320Z cypress:server:cypress running Electron currently',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudLatestRunUpdateSpecData',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudProjectBySlug',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudProjectsBySlugs',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudSpecByPath',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.cloudViewer',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.pollingIntervals',
    '2023-03-10T08:42:58.368Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for Query.versions',
    '2023-03-10T08:42:58.369Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for CurrentProject.cloudProject',
    '2023-03-10T08:42:58.370Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for RemoteFetchableCloudProjectResult.data',
    '2023-03-10T08:42:58.370Z cypress:graphql:nexusDeferIfNotLoadedPlugin Adding nexusDeferIfNotLoadedPlugin for RemoteFetchableCloudProjectSpecResult.data',
    '2023-03-10T08:42:58.374Z cypress:server:browsers:utils getBrowsers',
    "2023-03-10T08:42:58.374Z cypress:launcher:detect detecting if the following browsers are present [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', versionRegex: /Google Chrome (\\S+)/m, binary: [ 'google-chrome', 'chrome', 'google-chrome-stable' ], minSupportedVersion: 64 }, { name: 'chromium', family: 'chromium', channel: 'stable', displayName: 'Chromium', versionRegex: /Chromium (\\S+)/m, binary: [ 'chromium-browser', 'chromium' ], minSupportedVersion: 64 }, { name: 'chrome', family: 'chromium', channel: 'beta', displayName: 'Chrome Beta', versionRegex: /Google Chrome (\\S+) beta/m, binary: 'google-chrome-beta', minSupportedVersion: 64 }, { name: 'chrome', family: 'chromium', channel: 'canary', displayName: 'Canary', versionRegex: /Google Chrome Canary (\\S+)/m, binary: 'google-chrome-canary', minSupportedVersion: 64 }, { name: 'firefox', family: 'firefox', channel: 'stable', displayName: 'Firefox', versionRegex: /^Mozilla Firefox ([^\\sab]+)$/m, binary: 'firefox', minSupportedVersion: 86, validator: [Function: validator] }, { name: 'firefox', family: 'firefox', channel: 'dev', displayName: 'Firefox Developer Edition', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m, binary: [ 'firefox-developer-edition', 'firefox' ], minSupportedVersion: 86 }, { name: 'firefox', family: 'firefox', channel: 'nightly', displayName: 'Firefox Nightly', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m, binary: [ 'firefox-nightly', 'firefox-trunk' ], minSupportedVersion: 86 }, { name: 'edge', family: 'chromium', channel: 'stable', displayName: 'Edge', versionRegex: /Microsoft Edge (\\S+)/im, binary: [ 'edge', 'microsoft-edge' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'canary', displayName: 'Edge Canary', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im, binary: [ 'edge-canary', 'microsoft-edge-canary' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'beta', displayName: 'Edge Beta', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im, binary: [ 'edge-beta', 'microsoft-edge-beta' ], minSupportedVersion: 79 }, { name: 'edge', family: 'chromium', channel: 'dev', displayName: 'Edge Dev', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im, binary: [ 'edge-dev', 'microsoft-edge-dev' ], minSupportedVersion: 79 } ]",
    "2023-03-10T08:42:58.376Z cypress:server:browsers:utils WebKit is enabled, but there was an error constructing the WebKit browser: { err: Error: Cannot find module 'playwright-webkit' Require stack: - /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/browsers/utils.ts at Module._resolveFilename (node:internal/modules/cjs/loader:940:15) at n._resolveFilename (node:electron/js2c/browser_init:249:1105) at resolve (node:internal/modules/cjs/helpers:108:19) at Function.resolve (evalmachine.<anonymous>:1:733924) at N (<embedded>:4567:307214) at Object.I [as getBrowsers] (<embedded>:4567:308049) at b.machineBrowsers (<embedded>:4226:46866) at T._setCurrentProject (<embedded>:4337:78225) at new T (<embedded>:4337:71533) at new I (<embedded>:4337:122599) at N (<embedded>:4639:437733) at s.exports (<embedded>:4639:529356) at <embedded>:4646:2607 at tryCatcher (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/util.js:16:23) at Function.<anonymous> (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/method.js:39:29) at Object.runElectron (<embedded>:4646:2377) at Object.startInMode (<embedded>:4646:4857) at <embedded>:4646:3945 at tryCatcher (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:512:31) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:569:18) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:582:21) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:582:21) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at PromiseArray._resolve (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise_array.js:126:19) at PromiseArray._promiseFulfilled (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise_array.js:144:14) at Promise._settlePromise (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:574:26) at Promise._settlePromise0 (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:614:10) at Promise._settlePromises (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:694:18) at Promise._fulfill (/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/promise.js:638:18) at /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/bluebird/js/release/nodeback.js:42:21 at <embedded>:1955:88964 { code: 'MODULE_NOT_FOUND', requireStack: [ '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/browsers/utils.ts' ] } }",
    "2023-03-10T08:42:58.376Z cypress:data-context:sources:GitDataSource config: { isRunMode: true, projectRoot: '/Users/stephane.colson/Code//e2e', onError: [Function (anonymous)], onBranchChange: [Function: onBranchChange], onGitInfoChange: [Function: onGitInfoChange], onGitLogChange: [AsyncFunction: onGitLogChange] }",
    '2023-03-10T08:42:58.383Z cypress:scaffold-config:detect Checking for default Cypress config file',
    '2023-03-10T08:42:58.383Z cypress:scaffold-config:detect Detected cypress.config.ts - using TS',
    '2023-03-10T08:42:58.395Z cypress:server:video using ffmpeg from /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/node_modules/@ffmpeg-installer/darwin-arm64/ffmpeg',
    '2023-03-10T08:42:58.396Z cypress:server:performance-benchmark elapsed time at run mode ready: 268.333ms',
    "2023-03-10T08:42:58.406Z cypress:lifecycle:ProjectConfigIpc fork child process { CHILD_PROCESS_FILE_PATH: '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/require_async_child.js', configProcessArgs: [ '--projectRoot', '/Users/stephane.colson/Code//e2e', '--file', '/Users/stephane.colson/Code//e2e/cypress.config.ts' ], childOptions: { stdio: 'pipe', cwd: '/Users/stephane.colson/Code//e2e', execPath: '/usr/local/bin/node' } }",
    '2023-03-10T08:42:58.407Z cypress:lifecycle:ProjectConfigIpc found typescript in /Users/stephane.colson/Code//e2e',
    '2023-03-10T08:42:58.407Z cypress:lifecycle:ProjectConfigIpc using cjs with --require /Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/register_ts_node.js',
    '2023-03-10T08:42:58.410Z cypress:lifecycle:ProjectConfigIpc trigger the load of the file',
    '2023-03-10T08:42:58.707Z cypress:server:util:process_profiler current & mean memory and CPU usage by process group:',
    'โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”',
    'โ”‚ (index) โ”‚   group   โ”‚ processCount โ”‚  pids   โ”‚ cpuPercent โ”‚ meanCpuPercent โ”‚ memRssMb โ”‚ meanMemRssMb โ”‚ maxMemRssMb โ”‚',
    'โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค',
    "โ”‚    0    โ”‚ 'cypress' โ”‚      1       โ”‚ '20623' โ”‚    65.7    โ”‚      65.7      โ”‚   306    โ”‚     306      โ”‚     306     โ”‚",
    "โ”‚    1    โ”‚  'other'  โ”‚      1       โ”‚ '20626' โ”‚     0      โ”‚       0        โ”‚   1.94   โ”‚     1.94     โ”‚    1.94     โ”‚",
    "โ”‚    2    โ”‚  'TOTAL'  โ”‚      2       โ”‚   '-'   โ”‚    65.7    โ”‚      65.7      โ”‚  307.94  โ”‚    307.94    โ”‚   307.94    โ”‚",
    'โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜',
    "2023-03-10T08:42:58.708Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Chromium (\\S+)/m }",
    "2023-03-10T08:42:58.708Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Chromium (\\S+)/m }",
    "2023-03-10T08:42:58.721Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Google Chrome (\\S+) beta/m }",
    "2023-03-10T08:42:58.735Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Google Chrome Canary (\\S+)/m }",
    "2023-03-10T08:42:58.739Z cypress:server:register-ts-node executing register_ts_node with args { _: [ '/usr/local/bin/node', '/Users/stephane.colson/Library/Caches/Cypress/12.5.1/Cypress.app/Contents/Resources/app/packages/server/lib/plugins/child/require_async_child.js' ], projectRoot: '/Users/stephane.colson/Code//e2e', file: '/Users/stephane.colson/Code//e2e/cypress.config.ts' }",
    '2023-03-10T08:42:58.741Z cypress:server:register-ts-node registering ts-node for projectRoot: /Users/stephane.colson/Code//e2e and file: /Users/stephane.colson/Code//e2e/cypress.config.ts',
    '2023-03-10T08:42:58.741Z cypress:server:ts-node projectRoot path: /Users/stephane.colson/Code//e2e',
    '2023-03-10T08:42:58.741Z cypress:server:ts-node registeredFile: /Users/stephane.colson/Code//e2e/cypress.config.ts',
    "2023-03-10T08:42:58.741Z cypress:server:plugins resolving typescript with projectRoot '/Users/stephane.colson/Code//e2e'",
    '2023-03-10T08:42:58.742Z cypress:server:plugins resolved typescript /Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js',
    '2023-03-10T08:42:58.742Z cypress:server:ts-node typescript path: /Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js',
    "2023-03-10T08:42:58.757Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m }",
    "2023-03-10T08:42:58.757Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+b\\S*)$/m }",
    "2023-03-10T08:42:58.768Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m }",
    "2023-03-10T08:42:58.769Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /^Mozilla Firefox (\\S+a\\S*)$/m }",
    "2023-03-10T08:42:58.778Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge (\\S+)/im }",
    "2023-03-10T08:42:58.779Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge (\\S+)/im }",
    "2023-03-10T08:42:58.789Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im }",
    "2023-03-10T08:42:58.790Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= canary)|(?<=canary )\\S*)/im }",
    "2023-03-10T08:42:58.802Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im }",
    "2023-03-10T08:42:58.802Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= beta)|(?<=beta )\\S*)/im }",
    "2023-03-10T08:42:58.812Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im }",
    "2023-03-10T08:42:58.813Z cypress:launcher:linux Could not extract version from stdout using regex: { stdout: '', versionRegex: /Microsoft Edge.+?(\\S*(?= dev)|(?<=dev )\\S*)/im }",
    "2023-03-10T08:42:58.813Z cypress:server:browsers:utils found browsers { browsers: [ { name: 'chrome', family: 'chromium', channel: 'stable', displayName: 'Chrome', version: '111.0.5563.64', path: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', minSupportedVersion: 64, majorVersion: '111' }, { name: 'firefox', family: 'firefox', channel: 'stable', displayName: 'Firefox', version: '110.0.1', path: '/Applications/Firefox.app/Contents/MacOS/firefox', minSupportedVersion: 86, majorVersion: '110' } ] }",
    "2023-03-10T08:42:58.853Z cypress:server:ts-node registering project TS with options { compiler: '/Users/stephane.colson/Code//e2e/node_modules/typescript/lib/typescript.js', compilerOptions: { module: 'commonjs', preserveValueImports: false }, dir: '/Users/stephane.colson/Code//e2e', transpileOnly: true }",
    "2023-03-10T08:42:58.870Z cypress:server:ts-node typescript doesn't exist. ts-node setup failed.",
    '2023-03-10T08:42:58.870Z cypress:server:ts-node error message: โจฏ Unable to compile TypeScript:',
    "error TS6046: Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', 'webworker.iterable', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.asyncgenerator', 'es2018.asynciterable', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.object', 'es2019.string', 'es2019.symbol', 'es2019.intl', 'es2020.bigint', 'es2020.date', 'es2020.promise', 'es2020.sharedmemory', 'es2020.string', 'es2020.symbol.wellknown', 'es2020.intl', 'es2020.number', 'es2021.promise', 'es2021.string', 'es2021.weakref', 'es2021.intl', 'es2022.array', 'es2022.error', 'es2022.intl', 'es2022.object', 'es2022.sharedmemory', 'es2022.string', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint', 'esnext.string', 'esnext.promise', 'esnext.weakref'.",
    '',
    '2023-03-10T08:42:58.904Z cypress:lifecycle:child:run_require_async_child:20640 configFile: /Users/stephane.colson/Code//e2e/cypress.config.ts',
    '2023-03-10T08:42:58.904Z cypress:lifecycle:child:run_require_async_child:20640 projectRoot: /Users/stephane.colson/Code//e2e',
    '2023-03-10T08:42:58.905Z cypress:lifecycle:child:run_require_async_child:20640 try loading /Users/stephane.colson/Code//e2e/cypress.config.ts',
    ... 119 more items
  ]
}

====================================================================================================

    ERROR  Error: Unable to resolve cypress configuration
    at bootCypress (/Users/stephane.colson/Code//e2e/node_modules/lib/bootstrap.ts:81:11)
    at getConfig (/Users/stephane.colson/Code//e2e/node_modules/lib/config.ts:58:19)
    at run (/Users/stephane.colson/Code//e2e/node_modules/index.ts:45:18)

Provide meaningful traces and logs

  • Add debug messages

    • Configuration loading - both plugin and the main script
    • Communication with the API
  • Add user-facing messages and status updates

    • Happy paths
    • Meaningfull error message for unhappy paths
  • Use a popular library for colorful terminal output

  • Use the relevant dashboard link

Create a manual test for component tests

Create a simple structure for component tests, put the tests in a different directory and make sure it's working as expected.
Make the configuration slightly different between e2e and component tests.

Capture the reproduction step in a script.
Make sure everything is working as expected.
Measure the performance penalty due to reloading cypress.

Setting env var CYPRESS_RECORD_KEY confuses the system

Setting CYPRESS_RECORD_KEY triggers a warning message:

rec

I suspect running a config loader is triggering the message because cypress sees the key, without --record flag
rec01


We need to spawn config loader without passing down the record key

Error 400 from sorry-cypress since updating from 1.4.4 to 1.4.5-beta.0 or 1.5.0

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

  System:
    OS: Windows 10 10.0.19044
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz   
    Memory: 8.29 GB / 31.74 GB
  Binaries:
    Node: 18.13.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD 
    npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (111.0.1661.41)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @cypress/angular:  0.0.0-development 
    @cypress/mount-utils:  0.0.0-development 
    @cypress/react:  0.0.0-development 
    @cypress/react18:  0.0.0-development 
    @cypress/svelte:  0.0.0-development 
    @cypress/vue:  0.0.0-development 
    @cypress/vue2:  0.0.0-development 
    cypress: ^12.7.0 => 12.7.0 
    cypress-cloud: 1.5.0 => 1.5.0 
  npmGlobalPackages:
    corepack: 0.15.2
    npm: 8.19.3
    rimraf: 4.1.2

Describe the bug

Since upgrading from 1.4.4 to 1.4.5-beta0 (and 1.5.0) the plugin itself can no longer communicate with sorry-cypress (error 400).

I tested it twice, with two instance of sorry-cypress (one with version 2.5.3 and one with 2.1.3). They both responded with error "400". I guess it's purely a client side error but it's suboptimal that the Module API version just returns an undefined object rather than some kind of error message details like with the command "npx cypress-cloud".

Expected behavior

Communcation works as in 1.4.4

Command and Setup

Error from "./run-tests-ci.sh" command (this worked in 1.4.4):

 ERROR  Error: Request failed with status code 400
    at C:\views\_\cypress-cloud-module-api\node_modules\lib\httpClient\httpClient.ts:92:13
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at createRun (C:\views\_\cypress-cloud-module-api\node_modules\lib\api\api.ts:17:20)
    at run (C:\views\_\cypress-cloud-module-api\node_modules\index.ts:70:15)

Error from "node run-tests-ci.js" command:

...
const result = await run({
    ciBuildId: getCiBuildId(),
  }).catch((err) => {
    console.error(`error occurred`);
    console.error(JSON.stringify(err, null, 2));
    exitCode = 999;
  });
...

produced output:

error occurred
{}
Result object from cypress-cloud run command:
undefined

Full log and debug output

Full logs and used scripts are here:

https://github.com/mirobo/cypress-cloud-module-api/blob/main/run-tests-ci.sh
https://github.com/mirobo/cypress-cloud-module-api/blob/main/log-sh.txt

https://github.com/mirobo/cypress-cloud-module-api/blob/main/run-tests-ci.js
https://github.com/mirobo/cypress-cloud-module-api/blob/main/log-js.txt

Verify git commit information

Discovered a bug when circleCI couldn't report git information properly
Test for:

  • GH actions
  • GitLab
  • Azure
  • BitBucket?

Unit tests for CLI flags

Make sure we provide only the necessary flags to cypress when running config loader and actual execution
Test configuration options like -c key=val, etc

Module API (1.4.4) not working with Javascript

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

cypress: ^12.7.0 => 12.7.0
cypress-cloud: ^1.4.4 => 1.4.4

npx envinfo --system --binaries --browsers --npmPackages --duplicates --npmGlobalPackages


  System:
    OS: Windows 10 10.0.19044
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 8.35 GB / 31.74 GB
  Binaries:
    Node: 18.13.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - C:\Program Files (x86)\Yarn\bin\yarn.CMD
    npm: 8.19.3 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (110.0.1587.69)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @cypress/angular:  0.0.0-development
    @cypress/mount-utils:  0.0.0-development
    @cypress/react:  0.0.0-development
    @cypress/react18:  0.0.0-development
    @cypress/svelte:  0.0.0-development
    @cypress/vue:  0.0.0-development
    @cypress/vue2:  0.0.0-development
    cypress: ^12.7.0 => 12.7.0
    cypress-cloud: ^1.4.4 => 1.4.4
  npmGlobalPackages:
    corepack: 0.15.2
    npm: 8.19.3
    rimraf: 4.1.2

Describe the bug

I'm not able to use the cypress-cloud module API within a JS file.

Starting cypress-cloud via "npx cypress-cloud" works fine. But it is still a blocker since I cannot pass Cypress config options to "npx cypress-cloud".

I dynamically configure some Cypress env variables in a JavaScript file and because of it I need (it is much more convenient) to start cypress-cloud via the Module API

Expected behavior

Module API works everywhere :)

Command and Setup

Simple demo project: https://github.com/mirobo/cypress-cloud-module-api

Run commands:

  • npm i
  • node run-tests-ci.js

Full log and debug output

C:\views\_\cypress-cloud-module-api>node run-tests-ci.js
node:internal/modules/cjs/loader:544
      throw e;
      ^

Error: Cannot find module 'C:\views\_\cypress-cloud-module-api\node_modules\cypress-cloud\'
    at createEsmNotFoundErr (node:internal/modules/cjs/loader:1060:15)
    at finalizeEsmResolution (node:internal/modules/cjs/loader:1053:15)
    at resolveExports (node:internal/modules/cjs/loader:538:14)
    at Module._findPath (node:internal/modules/cjs/loader:607:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1025:27)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Module.require (node:internal/modules/cjs/loader:1105:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (C:\views\_\cypress-cloud-module-api\run-tests-ci.js:1:17)
    at Module._compile (node:internal/modules/cjs/loader:1218:14) {
  code: 'MODULE_NOT_FOUND',
  path: 'C:\\views\\_\\cypress-cloud-module-api\\node_modules\\cypress-cloud\\package.json'
}

Node.js v18.13.0

Implement module API

Allow invoking run programmatically

e.g.

import { run } from '@currents/cypress-runner`

const results await run({
projectId,
key,
specPattern
});
  • define TS for parameters and response
  • accept projectId, key, groupId and specPattern - those should override other sources if provided
  • test overriding the other sources

Show errors and warning from director responses

currents/director package can return responses with various error messages, like for example GenericResponseError

We need to enumerate all those warnings and messages and handle them in the new runner. Please create a list of errors emitted and the associated request and what type of error is displayed. You can also refer to the original cypress implementation

Don't worry about the formating yet - we will polish it later.

`(intermediate value).default is not a function` is being return when running cypress-cloud commands

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line
System:
    OS: Linux 5.10 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
    CPU: (16) x64 AMD Ryzen 7 5800U with Radeon Graphics
    Memory: 2.92 GB / 6.71 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 14.17.3 - ~/.nvm/versions/node/v14.17.3/bin/node
    npm: 6.14.13 - ~/.nvm/versions/node/v14.17.3/bin/npm
  Browsers:
    Chrome: 111.0.5563.64
  npmPackages:
    @currents/cli: ^4.0.3 => 4.0.3 
    @cypress/angular:  0.0.0-development 
    @cypress/mount-utils:  0.0.0-development 
    @cypress/react:  0.0.0-development 
    @cypress/react18:  0.0.0-development 
    @cypress/svelte:  0.0.0-development 
    @cypress/vue:  0.0.0-development 
    @cypress/vue2:  0.0.0-development 
    @faker-js/faker: ^7.6.0 => 7.6.0 
    cypress: ^12.7.0 => 12.7.0 
    cypress-cloud: ^1.4.2 => 1.4.2 
    cypress-recurse: ^1.27.0 => 1.27.0 
    fs: ^0.0.1-security => 0.0.1-security 
    moment: ^2.29.4 => 2.29.4 
    numeral: ^2.0.6 => 2.0.6 
    q: ^1.5.1 => 1.5.1 
    shelljs: ^0.8.5 => 0.8.5 
    swagger-client: ^3.18.5 => 3.18.5 
    xvfb: ^0.4.0 => 0.4.0 
  npmGlobalPackages:
    npm: 6.14.13


Describe the bug

When running the command npx cypress-cloud --parallel --record --key <your_key> --ci-build-id hello-cypress-cloud the CLI always return (intermediate value).default is not a function and doesn't run the test

Expected behavior

Should be able to run the test using cypress-cloud

Command and Setup

*projectRoot/currents.config.js file

module.exports = {
  projectId: "Sun9p6",
  recordKey: "*******",
  cloudServiceUrl: "https://cy.currents.dev",
};

=========================================
*projectRoot/cypress.config.js file

const { defineConfig } = require("cypress");
const { cloudPlugin } = require("cypress-cloud/plugin");

module.exports = defineConfig({
  e2e: {

    setupNodeEvents(on, config) {
      return cloudPlugin(on, config);
    },
  },
});

============================================

Full log and debug output

image

Implement generic https client with retries

Implement a unified http client, which can be used for sending API calls. Every request needs to be retried several times with a backoff.

Here's an example implementation from cypress:
retryWithBackoff

Each outgoing request should attach a header x-cypress-request-attempt with the attempt counter

Record key can't be found

Before opening, please confirm:

  • I have searched for duplicate or closed issues](https://github.com/currents-dev/cypress-cloud/issues) and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

Our problem is a weird one around the record key... I didn't think we needed to pass the --key in the start up command when we were using currents/cli. Our record key is stored as a variable inside the pipeline runs in Azure. Now getting this error:

It currently has the projectId: XXXXXX

You also provided your Record Key, but you did not pass the --record flag.

This run will not be recorded.

If you meant to have this run recorded please additionally pass this flag:

  $ cypress run --record

If you don't want to record these runs, you can silence this warning:

  $ cypress run --record false

https://on.cypress.io/recording-project-runs

Now I have updated our startup command to this:

npx cypress-cloud run --browser chrome --config-file cypress/config/${{ parameters.environmentName }}.config.js --record --key $(CYPRESS_RECORD_KEY) --parallel --ci-build-id $(GUID) --spec "cypress/e2e/$(UI_AREA)/**/*.spec.ts" --tag $(CY_TAG) --env tags=$(UI_AREA)

where I am passing the key after --record but I am still seeing the error above

Describe the bug

Even though we are passing a record key from an configuration on our pipeline, the CLI claims we are not. We tried it with and without the record key inside currents.config.js and both gave us the error above

Expected behavior

I would expect the startup command I posted to work without telling us that the key is missing. Oddly, it still does seem to record to Currents anyway!

Command and Setup

npx cypress-cloud run --browser chrome --config-file cypress/config/${{ parameters.environmentName }}.config.js --record --key $(CYPRESS_RECORD_KEY) --parallel --ci-build-id $(GUID) --spec "cypress/e2e/$(UI_AREA)/**/*.spec.ts" --tag $(CY_TAG) --env tags=$(UI_AREA)

Full log and debug output

// Put your logs below this line
It currently has the projectId: XXXXXX

You also provided your Record Key, but you did not pass the --record flag.

This run will not be recorded.

If you meant to have this run recorded please additionally pass this flag:

  $ cypress run --record

If you don't want to record these runs, you can silence this warning:

  $ cypress run --record false

https://on.cypress.io/recording-project-runs

Wrong mime-type for artifacts

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

Opened by @mirobo in #101

On sorry-cypress 2.5.3 I saw that when I run tests with cypress-cloud 1.5.0 and 1.5.3, the screenshots and videos are uploaded in a way that sorry-cypress delivers them as application/json rather than binary/octet-stream. Is this the same issue?

Wrong (Cypress 12.6.0 + cypress-cloud 1.5.3):
image

image

Correct (Test was run with cy2 and older version of Cypress):
image

I think it worked (need to check) when I ran tests with cypress-cloud 1.4.4 via npx cypress-cloud..

Expected behavior

Artifacts should have the correct mime type:

  • video/mp4 for videos
  • image/png for screenshots

Command and Setup

n/a

Full log and debug output

// Put your logs below this line


Basic e2e test

Please use https://mswjs.io/ or just create a dummy server and use it for running the e2e:

  • Mock API responses and endpoint

  • Execute a node script at 'nextjs/example' - it should run the tool with a standard set of flags, e.g.:
    CURRENTS_API_BASE_URL=http://localhost:1234 yarn cypress-runner --parallel --record --ci-build-id date +%s``

  • assert the script status

  • run just one spec (use cypress config or script flags to limit)

Videos are not getting uploaded when `videoUploadOnPasses` is true

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line
Reported via in-app chat

Describe the bug

Reported via in-app chat - customer has videoUploadOnPasses: true and no videos are getting uploaded

Expected behavior

Videos should appear

Command and Setup

n/a

Full log and debug output

// Put your logs below this line


Show group and a few parameters before running specs

Example output from cypress:

  โ”‚ Cypress:        12.0.2                                                                         โ”‚
  โ”‚ Browser:        Electron 106 (headless)                                                        โ”‚
  โ”‚ Node Version:   v16.14.2 (/usr/local/bin/node)                                                 โ”‚
  โ”‚ Specs:          8 found (all.spec.js, all2.spec.js, orchestration_100.spec.js, orchestration_1 โ”‚
  โ”‚                 01.spec.js, orchestration_102.spec.js, orchestration_103.spec.js, orchestratio โ”‚
  โ”‚                 n_104.spec.js, skipped.spec.js)                                                โ”‚
  โ”‚ Searched:       cypress/integration/*.spec.js                                                  โ”‚
  โ”‚ Params:         Tag: false, Group: false, Parallel: true                                       โ”‚
  โ”‚ Run URL:        https://app.currents.dev/run/5d7e48a321d2e381386dd9f8ad764681                  โ”‚

[CSR-3] Report results for spec files when cypress has a hard crash

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line
System:
    OS: Linux 5.4 Debian GNU/Linux 10 (buster) 10 (buster)
    CPU: (10) x64 AMD EPYC 7282 16-Core Processor
    Memory: 11.78 GB / 58.88 GB
    Container: Yes
    Shell: 5.0.3 - /bin/bash
  Binaries:
    Node: 14.16.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.11 - /usr/local/bin/npm
  npmPackages:
    @currents/cli: ^4.0.3 => 4.0.3 
    @cypress/angular:  0.0.0-development 
    @cypress/mount-utils:  0.0.0-development 
    @cypress/react:  0.0.0-development 
    @cypress/react18:  0.0.0-development 
    @cypress/svelte:  0.0.0-development 
    @cypress/vue:  0.0.0-development 
    @cypress/vue2:  0.0.0-development 
    @cypress/webpack-batteries-included-preprocessor: ^2.4.0 => 2.4.0 
    @cypress/webpack-preprocessor: ^5.17.0 => 5.17.0 
    @faker-js/faker: ^7.6.0 => 7.6.0 
    cypress: ^12.7.0 => 12.7.0 
    cypress-cloud: ^1.4.4 => 1.4.4 
    cypress-recurse: ^1.27.0 => 1.27.0 
    moment: ^2.29.4 => 2.29.4 
    numeral: ^2.0.6 => 2.0.6 
    swagger-client: ^3.18.5 => 3.18.5 
    uuid: ^9.0.0 => 9.0.0 (8.3.2)
    xvfb: ^0.4.0 => 0.4.0 
  npmGlobalPackages:
    npm: 6.14.11
    yarn: 1.22.10


Describe the bug

When the Jenkins Job is already finished and is a success, the run associated with that build in the Currents keeps on running. This only happens whenever we encounter the warning message WARNING Cannot find run result for spec ../spec/Path and WARNING Cannot determine run result for spec ../spec/Path every after Reporting results and artifacts in background... in the console log

image
image
image

Expected behavior

Should be able to finish the run and perhaps give more information as to why it cannot find and determine the result for a particular spec that was run.

Command and Setup

Jenkins File Snippet

 stage('CBS UI Test') { 
            environment {
                CURRENTS_RECORD_KEY = credentials('currents-record-key')
                CURRENTS_PROJECT_ID = credentials('currents-master-projectid')
                CURRENTS_API_URL = credentials('currents-cloud-url')
                CYPRESS_trashAssetsBeforeRuns = 'false'
            }

            parallel {
                stage('Tester A') {
                    steps {
                        echo "Running build ${env.BUILD_ID} on Tester A"
                        sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
                    }
                }

                stage('Tester B') {
                    steps {
                        echo "Running build ${env.BUILD_ID} on Tester B"
                        sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
                    }
                }

                stage('Tester C') {
                    steps {
                        echo "Running build ${env.BUILD_ID} on Tester C"
                        sh "NO_COLOR=1 npx cypress-cloud run --parallel --record --key ${env.CURRENTS_RECORD_KEY} --ci-build-id ${env.GIT_BRANCH}-${env.BUILD_ID}"
                    }
                }

            }
           
        }

Full log and debug output

This is an intermittent issue and produces a lot of logs if we do it in Jenkins CI and doesn't happen all the time but here's a screen recording of it

2023-03-14_12h31_02.mp4

Edit by @agoldis

Also, make sure to mark the run as failed in CI when a crash is detected

Error: Npx cypress-cloud error

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line

  System:
    OS: Windows 10 10.0.19045
    CPU: (8) x64 Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz
    Memory: 4.91 GB / 9.99 GB
  Binaries:
    Node: 18.12.1 - C:\Program Files\nodejs\node.EXE
    npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Spartan (44.19041.1266.0), Chromium (111.0.1661.41)
    Internet Explorer: 11.0.19041.1566
  npmPackages:
    @cypress/angular:  0.0.0-development
    @cypress/mount-utils:  0.0.0-development
    @cypress/react:  0.0.0-development
    @cypress/react18:  0.0.0-development
    @cypress/svelte:  0.0.0-development
    @cypress/vue:  0.0.0-development
    @cypress/vue2:  0.0.0-development
    cypress: ^12.6.0 => 12.6.0
    cypress-cloud: ^1.4.4 => 1.4.4
    cypress-terminal-report: ^5.0.0 => 5.0.0
    ts-node: ^10.9.1 => 10.9.1


Describe the bug

I run test cypress-cloud with connected to sorry-cypress server and the test didn't run. The sorry-cypress server is configured correctly and cy2 works correctly. attempts to configure with the help of the cypress-cloud package have not yet worked out for me

Expected behavior

Run clear example my test

Command and Setup

default docker-compose sorry-cypress in linux server

use yml with cahnged passwords
https://github.com/sorry-cypress/sorry-cypress/blob/master/docker-compose.minio.yml

Full log and debug output

// Put your logs below this line
 C:\work\nstarkov\first>npx cypress-cloud --parallel --record --key somekey --ci-build-id hello-cypress-cloud
  cypress:cli exporting Cypress module interface +0ms
  currents:cli parsed CLI flags { component: false, e2e: true, parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud' } +0ms
  currents:config loading currents config file from 'C:\work\nstarkov\first\currents.config.js' +0ms
  currents:capture capturing stdout +0ms
  currents:cli parsed run params: { parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'dev2cloud', batchSize: 3 } +93ms

  currents:index run api params { parallel: true, record: true, key: 'somekey', ciBuildId: 'hello-cypress-cloud', config: undefined, env: undefined, reporterOptions: undefined, testingType: 'e2e', projectId: 'dev2cloud', batchSize: 3 } +0ms
  currents:config resolving cypress config  +148ms
  currents:boot booting cypress... +0ms
  currents:boot booting cypress with args: [ 'run', '--spec', 'ppdzmvxbjo', '--env', '{"currents_temp_file":"C:\\\\Users\\\\jenkins\\\\AppData\\\\Local\\\\Temp\\\\tmp-7988-d4FFwrL3yWpb","currents_port":58449,"currents_debug_enabled":"true"}', '--e2e' ] +60ms
  currents:boot cypress executable location: C:\work\nstarkov\first\node_modules\cypress\bin\cypress +9ms
  currents:boot read config temp file failed: Error: Is cypress-cloud/plugin installed? at bootCypress (C:\work\nstarkov\first\node_modules\lib\bootstrap.ts:70:13) at getConfig (C:\work\nstarkov\first\node_modules\lib\config.ts:65:19) at run (C:\work\nstarkov\first\node_modules\index.ts:45:18) +9ms

====================================================================================================

 ERROR  TypeError: Cannot read properties of null (reading 'toString')
    at bootCypress (C:\work\nstarkov\first\node_modules\lib\bootstrap.ts:76:46)
    at getConfig (C:\work\nstarkov\first\node_modules\lib\config.ts:65:19)
    at run (C:\work\nstarkov\first\node_modules\index.ts:45:18)

C:\work\nstarkov\first>
![screenshot](https://user-images.githubusercontent.com/2722116/225479319-896aa6d6-b5d9-42b5-b740-102f0ecdf594.png)

Unable to load currents.config.js

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line
  System:
    OS: macOS 13.2.1
    CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
    Memory: 23.83 MB / 16.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 16.13.1 - ~/.nvm/versions/node/v16.13.1/bin/node
    Yarn: 1.22.17 - ~/.nvm/versions/node/v16.13.1/bin/yarn
    npm: 8.1.2 - ~/.nvm/versions/node/v16.13.1/bin/npm
  Browsers:
    Chrome: 111.0.5563.64
    Safari: 16.3
  npmPackages:
    @cypress/angular:  0.0.0-development 
    @cypress/mount-utils:  0.0.0-development 
    @cypress/react:  0.0.0-development 
    @cypress/react18:  0.0.0-development 
    @cypress/svelte:  0.0.0-development 
    @cypress/vue:  0.0.0-development 
    @cypress/vue2:  0.0.0-development 
    cypress: ^12.8.1 => 12.8.1 
    cypress-cloud: ^1.5.1 => 1.5.1 
  npmGlobalPackages:
    corepack: 0.10.0
    npm: 8.1.2
    yarn: 1.22.17

Describe the bug

Unable to load currents.config.js message displayed.

$ DEBUG=cypress:* node index.js
 WARNING  failed to load config file: /Users/xxxx/cypress-cloud-module-api/currents.config.js

file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:81
    throw new ValidationError(projectIdError);
          ^
Error: Cannot resolve projectId. Please use one of the following:
- set CURRENTS_PROJECT_ID environment variable
- set "projectId" in "currents.config.js" file
- provide it as a "projectId" property for "run" API method
    at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:81:11)
    at run (file:///Users/xxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
    at run2 (file:///Users/xxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
    at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
    at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
    at async Promise.all (index 0)
    at ESMLoader.import (node:internal/modules/esm/loader:281:24)
    at loadESM (node:internal/process/esm_loader:88:5)
    at handleMainPromise (node:internal/modules/run_main:65:12)

After adding projectId and recordKey to the run parameters,

$ DEBUG=cypress:* node index.js
 WARNING  failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js

file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20
  const cypressBin = await getBinPath(require.resolve("cypress"));
                                              ^
TypeError: __require.resolve is not a function
    at bootCypress (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20:47)
    at getMergedConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:66:19)
    at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:34:18)
    at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:17

Expected behavior

Should be able to start Cypress with either currents.config.js or using parameters in run function

Command and Setup

clone https://github.com/lpanger/cypress-cloud-module-api

Then run:

yarn
node index.js

Full log and debug output

// Put your logs below this line
  currents:run run params { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true } } +0ms
  currents:config loading currents config file from '/Users/xxxxx/cypress-cloud-module-api/currents.config.js' +0ms
 WARNING  failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js
  currents:config failure details: Error: Dynamic require of "/Users/xxxxx/cypress-cloud-module-api/currents.config.js" is not supported
    at file:///Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/index.mjs:7:9
    at getCurrentsConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:43:22)
    at resolveCurrentsParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:20:26)
    at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:76:18)
    at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
    at run2 (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
    at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
    at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
    at async Promise.all (index 0)
    at ESMLoader.import (node:internal/modules/esm/loader:281:24)
    at loadESM (node:internal/process/esm_loader:88:5)
    at handleMainPromise (node:internal/modules/run_main:65:12) +1ms
  currents:capture capturing stdout +0ms

When parameters are directly passed to run function

  currents:run run params { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true }, projectId: 'blah', recordKey: 'key' } +0ms
  currents:config loading currents config file from '/Users/xxxxx/cypress-cloud-module-api/currents.config.js' +0ms
 WARNING  failed to load config file: /Users/xxxxx/cypress-cloud-module-api/currents.config.js
  currents:config failure details: Error: Dynamic require of "/Users/xxxxx/cypress-cloud-module-api/currents.config.js" is not supported
    at file:///Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/index.mjs:7:9
    at getCurrentsConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:43:22)
    at resolveCurrentsParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:20:26)
    at validateParams (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/params.ts:76:18)
    at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:20:27)
    at run2 (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/index.ts:13:10)
    at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:23
    at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
    at async Promise.all (index 0)
    at ESMLoader.import (node:internal/modules/esm/loader:281:24)
    at loadESM (node:internal/process/esm_loader:88:5)
    at handleMainPromise (node:internal/modules/run_main:65:12) +0ms
  currents:validateParams validated currents parametes: { reporter: 'junit', browser: 'chrome', config: { baseUrl: 'http://localhost:8080', video: true }, projectId: 'blah', recordKey: 'key', cloudServiceUrl: 'https://cy.currents.dev', batchSize: 3, testingType: 'e2e' } +0ms
  currents:config resolving cypress config  +31ms
  currents:boot booting cypress... +0ms
  currents:capture capturing stdout +0ms

file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20
  const cypressBin = await getBinPath(require.resolve("cypress"));
                                              ^
TypeError: __require.resolve is not a function
    at bootCypress (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/bootstrap/bootstrap.ts:20:47)
    at getMergedConfig (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/config/config.ts:66:19)
    at run (file:///Users/xxxxx/cypress-cloud-module-api/node_modules/lib/run.ts:34:18)
    at file:///Users/xxxxx/cypress-cloud-module-api/index.js:3:17

Reporting results error

my config

  const { totalFailed } = await cyCloud.run({
    record: true,
    headless: true,
    parallel: true,
    config:{
      video: true,
      videoUploadOnPasses:true
    },
    key: recordKey,
    spec: pathToSpec,
    project: pathToProject,
    configFile: runConfigFile,
    ciBuildId: 'cikeys123',
  });

Describe the bug

In sorry-cypress, in function getVideoUploadUrl reuslt need to check cypressConfig to getUrl

but in cyprss-cloud instanceResults in runtime dont have cypressConfig

return updateInstanceResults(instanceId, instanceResults);

Expected behavior

upload video

Prepare the package for release

  • Configure release-it
    • Changelog
    • Git Release
    • NPM
    • Tag
    • Push
  • Establish a build process
  • Bundle, minify
  • 2 entry points - index.ts and plugin/index.ts
  • Enforce
    • unit tests
    • No lint or formatting errors
    • No TS errors
  • Enforce commit messages
  • Do not release typedefs yet

Cannot import run function

When trying to import the run function like the provided example import { run } from "cypress-cloud"; I get the following error:

Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/' is not supported resolving ES modules imported from /Users/xxxxx/cypress-cloud-module-api/index.js

I tried to do import using import { run } from "cypress-cloud/index.js"; I get:

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './index.js' is not defined by "exports" in /Users/xxxxx/cypress-cloud-module-api/node_modules/cypress-cloud/package.json imported from /Users/xxxxx/cypress-cloud-module-api/index-import-file.js

Test code can be found at https://github.com/lpanger/cypress-cloud-module-api

Using the same CI Build ID with different spec files - ambiguous behaviour

Before opening, please confirm:

  • I have searched for duplicate or closed issues and discussions.
  • I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
  • I acknowledge that I will attach a full debug log, otherwise the issue will be closed with no response.

Environment information

# Put output below this line


Describe the bug

Reusing the same ci build id with different spec files gives an ambiguous message. It's better to show an explicit message.
Also need to check why isn't backed rejected the request for a different list of specs for classic load-balancing.

Example:

Can't run because no spec files were found.

We searched for specs matching this glob pattern:

  > /Users/agoldis/currents-demo/cypress/e2e_03/item.spec.js,cypress/e2e_03/smoke.spec.js,cypress/e2e_smoke/smoke.spec.js

  Reporting results and artifacts in background...  

 WARNING  Cannot find run result for spec "cypress/e2e_03/item.spec.js"
 WARNING  Cannot determine run result for spec "cypress/e2e_03/item.spec.js"
 WARNING  Cannot find run result for spec "cypress/e2e_03/smoke.spec.js"
 WARNING  Cannot determine run result for spec "cypress/e2e_03/smoke.spec.js"
 WARNING  Cannot find run result for spec "cypress/e2e_smoke/smoke.spec.js"
 WARNING  Cannot determine run result for spec "cypress/e2e_smoke/smoke.spec.js"

Expected behavior

Show an informative message

Command and Setup

Running cc with different spec files and the same ci build id

Full log and debug output

// Put your logs below this line


Unit tests for passing down flags to cypress

  • when the cli is getting invoked with different permutations of flags, make sure that we
    • launch cypress with all the flags serialized, except from the excluded
    • pass down the flags as options to cypress.run, except from the stripped flags

here's an example of a test scenario:

  • populate program with set of flags (from cli.ts module)
  • invoke bootCypress function while mocking IO ops
  • make sure that we pass down all the flags except filtered in getStrippedCypressOptions

another example:

  • populate program with set of flags (from cli.ts module)
  • invoke runSpecFile function while mocking IO ops
  • make sure that we pass down all the flags except filtered in getStrippedCypressOptions

Unit tests for spec files resolution

  • When user provides a specific spec pattern, make sure we pass idt down to cypress
  • When we get the configuration from cypress bootstrap module, make sure that we merge the results and take the testing type into account - we should get the specPattern as appears in cypress.config.ts
  • Make sure we retrieve the right spec files with different permutations of testing type, cypress.config.ts and actual filesystem structure (see Matcher)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.