diff --git a/.circleci/config.yml b/.circleci/config.yml
index 94a5a54a0b37..ec679f49bf8a 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -27,7 +27,6 @@ mainBuildFilters: &mainBuildFilters
branches:
only:
- develop
- - 'release/11.0.0'
# usually we don't build Mac app - it takes a long time
# but sometimes we want to really confirm we are doing the right thing
@@ -36,7 +35,6 @@ macWorkflowFilters: &darwin-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'release/11.0.0', << pipeline.git.branch >> ]
- matches:
pattern: "-release$"
value: << pipeline.git.branch >>
@@ -45,7 +43,6 @@ linuxArm64WorkflowFilters: &linux-arm64-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'release/11.0.0', << pipeline.git.branch >> ]
- matches:
pattern: "-release$"
value: << pipeline.git.branch >>
@@ -63,7 +60,6 @@ windowsWorkflowFilters: &windows-workflow-filters
when:
or:
- equal: [ develop, << pipeline.git.branch >> ]
- - equal: [ 'release/11.0.0', << pipeline.git.branch >> ]
- matches:
pattern: "-release$"
value: << pipeline.git.branch >>
@@ -130,7 +126,7 @@ commands:
- run:
name: Check current branch to persist artifacts
command: |
- if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/11.0.0" ]]; then
+ if [[ "$CIRCLE_BRANCH" != "develop" ]]; then
echo "Not uploading artifacts or posting install comment for this branch."
circleci-agent step halt
fi
diff --git a/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts b/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts
index 0de6ff6af504..54e2349cba1e 100644
--- a/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts
+++ b/packages/app/cypress/e2e/runner/reporter-ct-mount-hover.cy.ts
@@ -12,9 +12,13 @@ const PROJECTS: {projectName: ProjectDirs[number], test: string}[] = [
{ projectName: 'nuxtjs-vue2-configured', test: 'Tutorial.cy' },
]
+// These are especially flaky on windows, skipping them there.
+const describeSkipIfWindows = Cypress.platform === 'win32' ? describe.skip : describe
+
// TODO: Add these tests to another cy-in-cy framework test to reduce CI cost as these scaffolding is expensive
for (const { projectName, test } of PROJECTS) {
- describe(`CT Mount ${projectName}`, { viewportWidth: 1500, defaultCommandTimeout: 30000 }, () => {
+ // Flaky, especially on windows. Issue to improve these tests: https://github.com/cypress-io/cypress/issues/24579
+ describeSkipIfWindows(`CT Mount ${projectName}`, { viewportWidth: 1500, defaultCommandTimeout: 30000 }, () => {
beforeEach(() => {
cy.scaffoldProject(projectName)
cy.findBrowsers()
@@ -25,7 +29,7 @@ for (const { projectName, test } of PROJECTS) {
cy.startAppServer('component')
cy.visitApp()
cy.contains(`${test}`).click()
- cy.waitForSpecToFinish()
+ cy.waitForSpecToFinish(undefined)
cy.get('.collapsible-header-inner:first').click().get('.command.command-name-mount > .command-wrapper').click().then(() => {
cy.get('iframe.aut-iframe').its('0.contentDocument.body').then(cy.wrap).within(() => {
cy.get('[data-cy-root]').children().should('have.length.at.least', 1)
@@ -36,7 +40,7 @@ for (const { projectName, test } of PROJECTS) {
cy.startAppServer('component')
cy.visitApp()
cy.contains(`${test}`).click()
- cy.waitForSpecToFinish()
+ cy.waitForSpecToFinish(undefined)
cy.get('.command.command-name-mount > .command-wrapper').click().then(() => {
if (`${projectName}` === 'angular-14') {
cy.get('iframe.aut-iframe').its('0.contentDocument.body').children().should('have.length.at.least', 2)
diff --git a/packages/app/cypress/e2e/runs.cy.ts b/packages/app/cypress/e2e/runs.cy.ts
index 263a65218663..2f15f5d393c8 100644
--- a/packages/app/cypress/e2e/runs.cy.ts
+++ b/packages/app/cypress/e2e/runs.cy.ts
@@ -848,9 +848,10 @@ describe('App: Runs', { viewportWidth: 1200 }, () => {
})
})
+ const RUNNING_COUNT = 3
+
describe('refetching', () => {
let obj: {toCall?: Function} = {}
- const RUNNING_COUNT = 3
beforeEach(() => {
cy.scaffoldProject('component-tests')
@@ -874,7 +875,7 @@ describe('App: Runs', { viewportWidth: 1200 }, () => {
const setTimeout = win.setTimeout
// @ts-expect-error
- win.setTimeout = function (fn, time) {
+ win.setTimeout = function (fn: () => void, time: number) {
if (fn.name === 'fetchNewerRuns') {
obj.toCall = fn
} else {
@@ -885,7 +886,10 @@ describe('App: Runs', { viewportWidth: 1200 }, () => {
})
})
- it('should re-query for executing runs', () => {
+ // https://github.com/cypress-io/cypress/issues/24575
+ const itSkipIfWindows = Cypress.platform === 'win32' ? it.skip : it
+
+ itSkipIfWindows('should re-query for executing runs', () => {
cy.get('[data-cy="run-card-icon-RUNNING"]').should('have.length', RUNNING_COUNT).should('be.visible')
cy.remoteGraphQLIntercept(async (obj) => {
@@ -918,7 +922,7 @@ describe('App: Runs', { viewportWidth: 1200 }, () => {
completeNext(1)
})
- it('should fetch newer runs and maintain them when navigating', () => {
+ itSkipIfWindows('should fetch newer runs and maintain them when navigating', () => {
cy.get('[data-cy="run-card-icon-RUNNING"]').should('have.length', RUNNING_COUNT).should('be.visible')
cy.remoteGraphQLIntercept(async (obj) => {
diff --git a/packages/app/cypress/e2e/support/execute-spec.ts b/packages/app/cypress/e2e/support/execute-spec.ts
index 2067bc030b57..911d0bc61bbc 100644
--- a/packages/app/cypress/e2e/support/execute-spec.ts
+++ b/packages/app/cypress/e2e/support/execute-spec.ts
@@ -1,7 +1,6 @@
import { shouldHaveTestResults } from '../runner/support/spec-loader'
-export interface ExpectedResults
-{
+export interface ExpectedResults {
passCount?: number
failCount?: number
pendingCount?: number
@@ -23,13 +22,10 @@ declare global {
}
}
-// Here we export the function with no intention to import it
-// This only tells the typescript type checker that this definitely is a module
-// This way, we are allowed to use the global namespace declaration
export const waitForSpecToFinish = (expectedResults, timeout?: number) => {
// First ensure the test is loaded
- cy.get('.passed > .num').should('contain', '--')
- cy.get('.failed > .num').should('contain', '--')
+ cy.get('.passed > .num').should('exist')
+ cy.get('.failed > .num').should('exist')
// Then ensure the tests are running
cy.contains('Your tests are loading...', { timeout: timeout || 20000 }).should('not.exist')
diff --git a/packages/launchpad/cypress/e2e/top-nav-launchpad.cy.ts b/packages/launchpad/cypress/e2e/top-nav-launchpad.cy.ts
index 6130c129886f..ed5085533743 100644
--- a/packages/launchpad/cypress/e2e/top-nav-launchpad.cy.ts
+++ b/packages/launchpad/cypress/e2e/top-nav-launchpad.cy.ts
@@ -472,7 +472,7 @@ describe('Launchpad Top Nav Workflows', () => {
cy.findByTestId(headerBarId).findByTestId('user-avatar-title').should('be.visible')
})
- it('if the project has no runs, shows "record your first run" prompt after clicking', () => {
+ it('if the project has no runs, shows "record your first run" prompt after choosing testing type', () => {
cy.remoteGraphQLIntercept((obj) => {
if (obj.result?.data?.cloudProjectBySlug?.runs?.nodes?.length) {
obj.result.data.cloudProjectBySlug.runs.nodes = []
@@ -483,10 +483,11 @@ describe('Launchpad Top Nav Workflows', () => {
cy.contains('Component Testing').click()
+ cy.contains(defaultMessages.setupWizard.chooseBrowser.title).should('be.visible')
+
mockLogInActionsForUser(mockUserNoName)
logIn({ expectedNextStepText: 'Continue', displayName: mockUserNoName.email })
-
cy.contains('[data-cy=standard-modal] h2', defaultMessages.specPage.banners.record.title).should('be.visible')
cy.contains('[data-cy=standard-modal]', defaultMessages.specPage.banners.record.content).should('be.visible')
cy.contains('button', 'Copy').should('be.visible')
diff --git a/packages/launchpad/src/migration/MajorVersionWelcome.cy.tsx b/packages/launchpad/src/migration/MajorVersionWelcome.cy.tsx
index 432a74298624..c578ebfc1d0e 100644
--- a/packages/launchpad/src/migration/MajorVersionWelcome.cy.tsx
+++ b/packages/launchpad/src/migration/MajorVersionWelcome.cy.tsx
@@ -21,7 +21,7 @@ describe('