From 423dd72cb5161c580f7ce5c01a9db100fb442f34 Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Tue, 1 Aug 2023 13:10:25 +0200 Subject: [PATCH] Ajoute des tests E2E pour le comparateur de statut --- .../entreprise/catégorie-juridique.yaml | 2 +- .../assistants/choix-du-statut.ts | 56 +++++++++++++++++++ .../détermination-charges-sociales.ts} | 4 +- .../mon-entreprise/english/navigation.ts | 4 +- site/cypress/support/simulateur.js | 10 ++-- site/source/components/SimulateurCard.tsx | 1 - site/source/locales/ui-en.yaml | 6 +- site/source/locales/ui-fr.yaml | 4 +- .../_components/Navigation.tsx | 8 +-- .../_components/StatutsPossibles.tsx | 2 +- .../assistants/choix-du-statut/associé.tsx | 4 +- .../pages/assistants/choix-du-statut/home.tsx | 2 +- .../choix-du-statut/rémunération.tsx | 2 + 13 files changed, 81 insertions(+), 24 deletions(-) create mode 100644 site/cypress/integration/mon-entreprise/assistants/choix-du-statut.ts rename site/cypress/integration/mon-entreprise/{assistant-détermination-charges-sociales.ts => assistants/détermination-charges-sociales.ts} (85%) diff --git a/modele-social/règles/entreprise/catégorie-juridique.yaml b/modele-social/règles/entreprise/catégorie-juridique.yaml index 842f4f752..0a6bc847a 100644 --- a/modele-social/règles/entreprise/catégorie-juridique.yaml +++ b/modele-social/règles/entreprise/catégorie-juridique.yaml @@ -213,7 +213,7 @@ entreprise . catégorie juridique . association: par défaut: non applicable si: activité . nature . libérale . réglementée références: - Tout savoir l'association: https://www.service-public.fr/particuliers/vosdroits/N31931 + Tout savoir sur l'association: https://www.service-public.fr/particuliers/vosdroits/N31931 'associations.gouv.fr : créer, gérer et développer son association': https://www.associations.gouv.fr/ entreprise . catégorie juridique . autre: diff --git a/site/cypress/integration/mon-entreprise/assistants/choix-du-statut.ts b/site/cypress/integration/mon-entreprise/assistants/choix-du-statut.ts new file mode 100644 index 000000000..4cc9bd607 --- /dev/null +++ b/site/cypress/integration/mon-entreprise/assistants/choix-du-statut.ts @@ -0,0 +1,56 @@ +import { checkA11Y, fr } from '../../../support/utils' + +describe(`Assistant choix du statut`, { testIsolation: false }, function () { + if (!fr) { + return + } + before(function () { + cy.visit(encodeURI('/')) + cy.clearAllLocalStorage() + }) + + it('should allow start assistant', function () { + cy.visit(encodeURI('/')) + cy.contains("J'aimerais créer mon entreprise").click() + checkA11Y() + cy.contains('Trouver le bon statut').click() + }) + + it('should allow to select activity', function () { + cy.get('input[type=search]').type('coiff') + cy.contains('Coiffure').click() + checkA11Y() + cy.contains('Enregistrer et continuer').click() + checkA11Y() + cy.contains('Continuer avec cette activité').click() + }) + + it('should allow to select commune', function () { + cy.get('input[aria-autocomplete="list"]').type('Saint-Remy-en-B') + cy.contains('Saint-Remy-en-Bouzemont-Saint-Genest-et-Isson').click() + cy.contains('Enregistrer et continuer').not('[disabled]').click() + }) + + it('should allow to specify if non profit', function () { + cy.contains("Dans le but de gagner de l'argent").click() + checkA11Y() + cy.contains('Enregistrer et continuer').click() + }) + + it('should allow to specify associates', function () { + cy.contains('Seul').click() + cy.contains('Oui').click() + checkA11Y() + cy.contains('Enregistrer et continuer').click() + }) + + it('should allow to input remuneration and select appropriate statut', function () { + cy.get('#CA').click().type('50000') + cy.get('#charges').click().type('10000') + + checkA11Y() + cy.contains('Enregistrer et continuer').not('[disabled]').click() + cy.contains('Choisir ce statut').click() + cy.contains('Vous avez choisi le statut :') + }) +}) diff --git a/site/cypress/integration/mon-entreprise/assistant-détermination-charges-sociales.ts b/site/cypress/integration/mon-entreprise/assistants/détermination-charges-sociales.ts similarity index 85% rename from site/cypress/integration/mon-entreprise/assistant-détermination-charges-sociales.ts rename to site/cypress/integration/mon-entreprise/assistants/détermination-charges-sociales.ts index 5efd8dcc2..d38aded48 100644 --- a/site/cypress/integration/mon-entreprise/assistant-détermination-charges-sociales.ts +++ b/site/cypress/integration/mon-entreprise/assistants/détermination-charges-sociales.ts @@ -1,6 +1,6 @@ -import { checkA11Y, fr } from '../../support/utils' +import { checkA11Y, fr } from '../../../support/utils' -describe(`Formulaire demande mobilité`, function () { +describe(`Assistant charges sociales`, function () { if (!fr) { return } diff --git a/site/cypress/integration/mon-entreprise/english/navigation.ts b/site/cypress/integration/mon-entreprise/english/navigation.ts index 728da2fd2..6a4a0eb3c 100644 --- a/site/cypress/integration/mon-entreprise/english/navigation.ts +++ b/site/cypress/integration/mon-entreprise/english/navigation.ts @@ -82,7 +82,7 @@ describe(`Navigation to income simulator using company name (${ .parentsUntil('li') .find('button') .click() - cy.contains('SAS(U)').click() + cy.contains('SAS(U)').siblings('a').click() cy.location().should((loc) => { expect(loc.pathname).to.match(/sasu$/) }) @@ -103,7 +103,7 @@ describe(`Navigation to income simulator using company name (${ .type('jeremy rialland') .wait('@search') - cy.contains('493096580') + cy.contains('850556812') .should('be.visible') .parentsUntil('li') .find('button') diff --git a/site/cypress/support/simulateur.js b/site/cypress/support/simulateur.js index 71640a2c9..1a2e2318f 100644 --- a/site/cypress/support/simulateur.js +++ b/site/cypress/support/simulateur.js @@ -17,7 +17,7 @@ export const runSimulateurTest = (simulateur) => { }) it('should display a result when entering a value in any of the currency input', function () { - cy.contains(fr ? 'Montant annuel' : 'Yearly amount').click() + cy.contains(fr ? 'Montant annuel' : 'Annual amount').click() if (['indépendant', 'profession-liberale'].includes(simulateur)) { cy.get(chargeInputSelector).type(1000) } @@ -40,7 +40,7 @@ export const runSimulateurTest = (simulateur) => { }) it('should allow to change period', function () { - cy.contains(fr ? 'Montant annuel' : 'Yearly amount').click() + cy.contains(fr ? 'Montant annuel' : 'Annual amount').click() cy.get(inputSelector).first().type('{selectall}12000') if (['indépendant', 'profession-liberale'].includes(simulateur)) { cy.get(chargeInputSelector).type('{selectall}6000') @@ -54,14 +54,14 @@ export const runSimulateurTest = (simulateur) => { if (['indépendant', 'profession-liberale'].includes(simulateur)) { cy.get(chargeInputSelector).first().invoke('val').should('match', /500/) } - cy.contains(fr ? 'Montant annuel' : 'Yearly amount').click() + cy.contains(fr ? 'Montant annuel' : 'Annual amount').click() }) it('should allow to navigate to a documentation page', function () { cy.get(inputSelector).first().type('{selectall}2000') - cy.contains(fr ? 'Cotisations' : /(c|C)ontributions/).click() + cy.contains(fr ? 'Cotisations' : "Contributions").click() cy.location().should((loc) => { - expect(loc.pathname).to.match(/\/documentation\/.*\/cotisations/) + expect(loc.pathname).to.match(/\/documentation\/.*\/cotisations.*/) }) }) diff --git a/site/source/components/SimulateurCard.tsx b/site/source/components/SimulateurCard.tsx index 6001a0ecb..a4d683596 100644 --- a/site/source/components/SimulateurCard.tsx +++ b/site/source/components/SimulateurCard.tsx @@ -28,7 +28,6 @@ export function SimulateurCard({ beta, small = false, fromGérer = false, - as = undefined, ...props }: SimulateurCardProps) { const isIframe = useIsEmbedded() diff --git a/site/source/locales/ui-en.yaml b/site/source/locales/ui-en.yaml index 01f342a53..17eaf0a3a 100644 --- a/site/source/locales/ui-en.yaml +++ b/site/source/locales/ui-en.yaml @@ -97,7 +97,7 @@ En savoir plus sur impots: "fr, nouvelle fenêtre": More information on impots.gouv.fr, new window "En savoir plus, nouvelle fenêtre": Find out more, new window English version of the website enabled.: English version of the website enabled. -Enregistrer et passer à la suite: Save and continue +Enregistrer et continuer: Save and continue Enregistrer et voir le résultat: Save and view results Entreprise Individuelle: Sole proprietorship Entreprise créée le <2><0> et domiciliée à <6><0>: Company founded on <2><0> and domiciled at <6><0> @@ -289,7 +289,7 @@ Situation personnelle: Personal situation Statistiques: Statistics Statut du conjoint: Spouse's status Suivant: Next -"Suivant, passer à l'étape suivante": Next, go to the next step +"Suivant, enregistrer et passer à l'étape suivante": Next, save and go to the next step "Suivant, passer à la question suivante": Next, move on to the next question "Suivant, voir le résultat": Next, see the result Switch to the english version of the website: Switch to the english version of the website @@ -756,7 +756,7 @@ landing: cash flow accordingly. subtitle: Simulators and wizards to help you develop your business, from legal status to hiring. - title: The official assistant to contractors + title: Official tools for entrepreneurs "le portail officiel, accéder à aides-entreprises": "fr, nouvelle fenêtre": the official portal, access to aides-entreprises.fr, new window "le site de l'Urssaf, accéder au site de l'Urssaf, nouvelle fenêtre": Urssaf website, access to Urssaf website, new window diff --git a/site/source/locales/ui-fr.yaml b/site/source/locales/ui-fr.yaml index 066ee1d95..209d4fb3c 100644 --- a/site/source/locales/ui-fr.yaml +++ b/site/source/locales/ui-fr.yaml @@ -97,7 +97,7 @@ En savoir plus sur impots: "fr, nouvelle fenêtre": En savoir plus sur impots.gouv.fr, nouvelle fenêtre "En savoir plus, nouvelle fenêtre": En savoir plus, nouvelle fenêtre English version of the website enabled.: English version of the website enabled. -Enregistrer et passer à la suite: Enregistrer et passer à la suite +Enregistrer et continuer: Enregistrer et continuer Enregistrer et voir le résultat: Enregistrer et voir le résultat Entreprise Individuelle: Entreprise Individuelle Entreprise créée le <2><0> et domiciliée à <6><0>: Entreprise créée le <2><0> et domiciliée à <6><0> @@ -299,7 +299,7 @@ Situation personnelle: Situation personnelle Statistiques: Statistiques Statut du conjoint: Statut du conjoint Suivant: Suivant -"Suivant, passer à l'étape suivante": Suivant, passer à l'étape suivante +"Suivant, enregistrer et passer à l'étape suivante": Suivant, enregistrer et passer à l'étape suivante "Suivant, passer à la question suivante": Suivant, passer à la question suivante "Suivant, voir le résultat": Suivant, voir le résultat Switch to the english version of the website: Switch to the english version of the website diff --git a/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx b/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx index dd331e352..cc0c8f78a 100644 --- a/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx +++ b/site/source/pages/assistants/choix-du-statut/_components/Navigation.tsx @@ -62,11 +62,11 @@ export default function Navigation({ onPress={onNextStep} to={choixDuStatutPath[nextStep]} isDisabled={!currentStepIsComplete} - aria-label={t("Suivant, passer à l'étape suivante")} + aria-label={t( + "Suivant, enregistrer et passer à l'étape suivante" + )} > - {nextStepLabel || ( - Enregistrer et passer à la suite - )}{' '} + {nextStepLabel || Enregistrer et continuer}{' '} diff --git a/site/source/pages/assistants/choix-du-statut/_components/StatutsPossibles.tsx b/site/source/pages/assistants/choix-du-statut/_components/StatutsPossibles.tsx index 485641b2c..aab84e9da 100644 --- a/site/source/pages/assistants/choix-du-statut/_components/StatutsPossibles.tsx +++ b/site/source/pages/assistants/choix-du-statut/_components/StatutsPossibles.tsx @@ -38,7 +38,7 @@ export default function StatutsPossibles() { professionnelle que vous exercez - + {statuts.map((statut) => ( ))} diff --git a/site/source/pages/assistants/choix-du-statut/associé.tsx b/site/source/pages/assistants/choix-du-statut/associé.tsx index c8aaf26cf..bf380cbb7 100644 --- a/site/source/pages/assistants/choix-du-statut/associé.tsx +++ b/site/source/pages/assistants/choix-du-statut/associé.tsx @@ -91,7 +91,7 @@ export default function Associés() { -

+

Envisagez-vous d’ajouter des associé(e)s dans un second temps ? @@ -119,7 +119,7 @@ export default function Associés() { -

+

Préférez-vous exercer votre activité sous la forme d'une société uniquement ? diff --git a/site/source/pages/assistants/choix-du-statut/home.tsx b/site/source/pages/assistants/choix-du-statut/home.tsx index e3ff783d1..c98558c08 100644 --- a/site/source/pages/assistants/choix-du-statut/home.tsx +++ b/site/source/pages/assistants/choix-du-statut/home.tsx @@ -115,7 +115,7 @@ export default function AccueilChoixStatut() { : theme.colors.bases.primary[100] } > -

+

Ressources utiles

diff --git a/site/source/pages/assistants/choix-du-statut/rémunération.tsx b/site/source/pages/assistants/choix-du-statut/rémunération.tsx index aadfa0ec1..90386eb9b 100644 --- a/site/source/pages/assistants/choix-du-statut/rémunération.tsx +++ b/site/source/pages/assistants/choix-du-statut/rémunération.tsx @@ -52,6 +52,7 @@ export default function Rémunération() { "Montant du chiffre d'affaires HT" )} displayedUnit="€/an" + id="CA" />

@@ -83,6 +84,7 @@ export default function Rémunération() { )} displayedUnit="€/an" onChange={(value) => setState({ charges: value })} + id="charges" />