diff --git a/packages/frontend-shared/src/locales/en-US.json b/packages/frontend-shared/src/locales/en-US.json index 46a7a1378b..014f02f053 100644 --- a/packages/frontend-shared/src/locales/en-US.json +++ b/packages/frontend-shared/src/locales/en-US.json @@ -774,7 +774,7 @@ "openBrowser": { "startComponent": "Start Component Testing in {browser}", "startE2E": "Start E2E Testing in {browser}", - "openingComponent": "Opening component testing in {browser}", + "openingComponent": "Opening Component Testing in {browser}", "openingE2E": "Opening E2E Testing in {browser}", "running": "Running {browser}", "focus": "Focus", diff --git a/packages/launchpad/cypress/e2e/open-mode.cy.ts b/packages/launchpad/cypress/e2e/open-mode.cy.ts index fbc4bebc19..ae5eb7cb64 100644 --- a/packages/launchpad/cypress/e2e/open-mode.cy.ts +++ b/packages/launchpad/cypress/e2e/open-mode.cy.ts @@ -4,6 +4,23 @@ import { MAJOR_VERSION_FOR_CONTENT } from '@packages/types/src' describe('Launchpad: Open Mode', () => { describe('global mode', () => { + it('shows a loading spinner before application mounts, and cleans up after mount', () => { + cy.openGlobalMode() + + // Since these elements are removed when JS runs and the app mounts, + // they are gone by the time Cypress can assert about them + // but we can still make sure they are provided in the HTML payload + cy.request(`/__launchpad/index.html`) + .should(({ body }) => { + expect(body.includes('data-cy="plain-html-loading-spinner"')).to.be.true + expect(body.includes('data-cy="plain-html-spinner-styles"')).to.be.true + }) + + cy.visitLaunchpad() + cy.findByTestId('plain-html-loading-spinner').should('not.exist') + cy.findByTestId('plain-html-spinner-styles').should('not.exist') + }) + it('shows Add Project when no projects have been added', () => { cy.openGlobalMode() cy.visitLaunchpad() diff --git a/packages/launchpad/index.html b/packages/launchpad/index.html index 4b60695202..e89dcbec02 100644 --- a/packages/launchpad/index.html +++ b/packages/launchpad/index.html @@ -1,11 +1,68 @@ +