diff --git a/packages/frontend-shared/src/components/Select.cy.tsx b/packages/frontend-shared/src/components/Select.cy.tsx index f7ee25a42a3a..28723f5ab3bf 100644 --- a/packages/frontend-shared/src/components/Select.cy.tsx +++ b/packages/frontend-shared/src/components/Select.cy.tsx @@ -194,7 +194,8 @@ describe('', () => { // Choose an option .then(selectFirstOption) + cy.contains('This is the footer').should('be.visible') + // The options list should be closed cy.get(optionsSelector).should('not.exist') .get(inputSelector).should('have.text', 'Selected') diff --git a/packages/frontend-shared/src/components/Select.vue b/packages/frontend-shared/src/components/Select.vue index d4455eef68d7..8be9cba968f8 100644 --- a/packages/frontend-shared/src/components/Select.vue +++ b/packages/frontend-shared/src/components/Select.vue @@ -136,6 +136,7 @@ + diff --git a/packages/frontend-shared/src/locales/en-US.json b/packages/frontend-shared/src/locales/en-US.json index 0e05b81e5cd2..fd85798eb6bc 100644 --- a/packages/frontend-shared/src/locales/en-US.json +++ b/packages/frontend-shared/src/locales/en-US.json @@ -355,7 +355,8 @@ "bundlerPlaceholder": "Pick a bundler", "languageLabel": "Language", "configFileLanguageLabel": "Cypress config file", - "detected": "(detected)" + "detected": "(detected)", + "browseIntegrations": "Browse our list of third-party framework integrations" }, "step": { "continue": "Continue", diff --git a/packages/launchpad/src/setup/EnvironmentSetup.cy.tsx b/packages/launchpad/src/setup/EnvironmentSetup.cy.tsx index b7f90fdd5628..1644b018e2df 100644 --- a/packages/launchpad/src/setup/EnvironmentSetup.cy.tsx +++ b/packages/launchpad/src/setup/EnvironmentSetup.cy.tsx @@ -54,6 +54,11 @@ describe('', { viewportWidth: 800 }, () => { cy.findByRole('button', { name: 'Next step' }) .should('have.disabled') + + cy.findByRole('link', { name: 'Browse our list of third-party framework integrations' }) + .should('have.attr', 'href', 'https://on.cypress.io/component-integrations?utm_medium=Select+Framework+Dropdown&utm_source=Binary%3A+Launchpad&utm_campaign=Browse+third-party+frameworks') + + cy.percySnapshot() }) it('renders the detected flag', () => { diff --git a/packages/launchpad/src/setup/FrameworkOptionsFooter.vue b/packages/launchpad/src/setup/FrameworkOptionsFooter.vue new file mode 100644 index 000000000000..38aea0650f40 --- /dev/null +++ b/packages/launchpad/src/setup/FrameworkOptionsFooter.vue @@ -0,0 +1,39 @@ + + + diff --git a/packages/launchpad/src/setup/SelectFwOrBundler.vue b/packages/launchpad/src/setup/SelectFwOrBundler.vue index 26519a526b63..45c9e530d809 100644 --- a/packages/launchpad/src/setup/SelectFwOrBundler.vue +++ b/packages/launchpad/src/setup/SelectFwOrBundler.vue @@ -74,6 +74,12 @@ v-html="itemValue.icon" /> + @@ -88,6 +94,7 @@ import type { import { useI18n } from '@cy/i18n' import AlphaLabel from './AlphaLabel.vue' import CommunityLabel from './CommunityLabel.vue' +import FrameworkOptionsFooter from './FrameworkOptionsFooter.vue' const { t } = useI18n()