Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: mep #264

Merged
merged 26 commits into from
Feb 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
96fce4f
feat: hint text color update
BrianRid Jan 17, 2025
acc75e3
fix: removing alt attributes on sp+ image and adding fieldset to radi…
BrianRid Jan 17, 2025
bb23f47
fix: mobile display in entity card
BrianRid Jan 17, 2025
08fedb6
feat: adding p tag to entityAccessRightCard
BrianRid Jan 17, 2025
45dc0de
fix: adding icon to menu in review page
BrianRid Jan 17, 2025
801af1b
fix: sort by name and date display in entity card
BrianRid Jan 17, 2025
99d85ea
fix: add value on select entity filter
BrianRid Jan 17, 2025
654ed32
fix: badge position on service card on mobile
BrianRid Jan 17, 2025
7f95709
fix: adding div role=status to each alert in the project
BrianRid Jan 17, 2025
4d057a0
fix: role img in stat smiley component
BrianRid Jan 17, 2025
b12e5db
fix: login button and resetform
BrianRid Jan 17, 2025
ffac2c1
fix: tests for login
BrianRid Jan 17, 2025
7c613fb
fit: remaining test on login change
BrianRid Jan 17, 2025
00dd3a2
fix: test files
BrianRid Jan 17, 2025
dd4d898
feat: removing AlertPannel on register page
BrianRid Jan 20, 2025
2ffb3cc
wip: icon position conditionned on zoom level
BrianRid Jan 20, 2025
890a396
fix: link title adjustment
BrianRid Jan 23, 2025
d346cf5
fix: breakpoint tablet for pills display
BrianRid Jan 23, 2025
0b87f8b
Merge branch 'feat/clevercloud' into feat/accessibility-review
YoannNumericite Jan 29, 2025
f842b18
Merge pull request #259 from DISIC/feat/accessibility-review
YoannNumericite Jan 29, 2025
f28dbdf
fix: increase characters limit verbatim
YoannNumericite Jan 29, 2025
f71e9e6
fix: fix a11é
YoannNumericite Jan 30, 2025
333a90f
Merge pull request #266 from DISIC/feat/a11é_fix
YoannNumericite Jan 30, 2025
d310997
fix: fix scrool top form
YoannNumericite Jan 30, 2025
244d92b
fix: a11é adjust firefox
YoannNumericite Feb 3, 2025
b55f7dc
fix: fix tests
YoannNumericite Feb 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
266 changes: 149 additions & 117 deletions webapp-backoffice/cypress/e2e/jdma/bo/account.cy.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
const app_url = Cypress.env('app_base_url');
const app_form_url = Cypress.env('app_form_base_url')
const app_form_url = Cypress.env('app_form_base_url');
const adminEmail = Cypress.env('admin_user_mail');
const adminPassword = Cypress.env('admin_user_password');
const userPassword = Cypress.env('user_password');
const mailer_url = Cypress.env('mailer_base_url');
const invitedEmail = Cypress.env('admin_guest_mail_bis');
const firstNameTest = "Stevie";
const lastNameTest = "Wonder"
const newEmailTest = "[email protected]"
const firstNameTest = 'Stevie';
const lastNameTest = 'Wonder';
const newEmailTest = '[email protected]';

// Sélecteurs communs
const selectors = {
Expand All @@ -16,85 +16,109 @@ const selectors = {
password: 'input[type="password"]',
continueButton: '[class*="LoginForm-button"]'
},
accountForm: {
firstName: 'input[name="firstName"]',
lastName: 'input[name="lastName"]',
email: 'input[name="email"]',
emailConfirmation: 'input[name="emailConfirmation"]',
confirm: 'input[name="word"]'
},
card: {
identity: 'Identité',
credentials: 'Identifiants de connexion'
},
menu: {
account: 'Informations personnelles'
},
action: {
save: 'Sauvegarder',
modify: 'Modifier',
delete: 'Supprimer le compte',
confirmDelete: 'Supprimer'
}
accountForm: {
firstName: 'input[name="firstName"]',
lastName: 'input[name="lastName"]',
email: 'input[name="email"]',
emailConfirmation: 'input[name="emailConfirmation"]',
confirm: 'input[name="word"]'
},
card: {
identity: 'Identité',
credentials: 'Identifiants de connexion'
},
menu: {
account: 'Informations personnelles'
},
action: {
save: 'Sauvegarder',
modify: 'Modifier',
delete: 'Supprimer le compte',
confirmDelete: 'Supprimer'
}
};

describe('Account page', () => {

beforeEach(() => {
cy.visit(`${app_url}/login`);
});

it('change identity parameters', () => {
login(invitedEmail, userPassword);
checkAccountHeader('John Doe', invitedEmail)
cy.contains('li', selectors.menu.account).click({force : true});
cy.wait(1000);
clickModifyCard(selectors.card.identity)
cy.wait(1000);
fillForm({firstName: firstNameTest, lastName: lastNameTest})
cy.wait(1000);
cy.contains('button', selectors.action.save).click()
cy.wait(1000);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, invitedEmail)
logout();
})

it('change email : bad emails patterns should not work', () => {
testEmail({email: 'zrgzgr.gr', confirmationEmail: '[email protected]', expectedMEssage: "Les adresses e-mail ne correspondent pas"});
})

it('change email : different emails should not work', () => {
testEmail({email: '[email protected]', confirmationEmail: '[email protected]', expectedMEssage: "Les adresses e-mail ne correspondent pas"});
})

it('change email : not whitelisted emails should not work', () => {
testEmail({email: '[email protected]', confirmationEmail: '[email protected]', expectedMEssage: "Cette adresse mail ne fait pas partie des domaines autorisés. Veuillez contacter le support si vous souhaitez utiliser cette adresse."});
})

it('change email : allready existing emails should not work', () => {
testEmail({email: adminEmail, confirmationEmail: adminEmail, expectedMEssage: "Cette adresse mail existe déjà"});
})

it('change email : should work if everything OK', () => {
testEmail({email: newEmailTest, confirmationEmail: newEmailTest});
})

it('delete account', () => {
login(newEmailTest, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest);
cy.contains('li', selectors.menu.account).click({force : true});
cy.contains('button', selectors.action.delete).click({force : true});
cy.contains('button', selectors.action.confirmDelete).should('be.disabled');
cy.get(selectors.accountForm.confirm).clear({force: true}).type('blabla', {force: true});
cy.contains('button', selectors.action.confirmDelete).should('be.disabled');
cy.contains('p', 'Mot de confirmation incorrect').should('exist')
cy.get(selectors.accountForm.confirm).clear({force: true}).type('supprimer', {force: true});
cy.contains('button', selectors.action.confirmDelete).should('not.be.disabled').click({force: true});
cy.url().should('include', '/login');
cy.get(selectors.loginForm.email).type(newEmailTest);
cy.get(selectors.loginForm.continueButton).contains('Continuer').click();
cy.contains('p', 'Aucun compte connu avec cette adresse e-mail.').should('exist')
})
login(invitedEmail, userPassword);
checkAccountHeader('John Doe', invitedEmail);
cy.contains('li', selectors.menu.account).click({ force: true });
cy.wait(1000);
clickModifyCard(selectors.card.identity);
cy.wait(1000);
fillForm({ firstName: firstNameTest, lastName: lastNameTest });
cy.wait(1000);
cy.contains('button', selectors.action.save).click();
cy.wait(1000);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, invitedEmail);
logout();
});

it('change email : bad emails patterns should not work', () => {
testEmail({
email: 'zrgzgr.gr',
confirmationEmail: '[email protected]',
expectedMEssage: 'Les adresses e-mail ne correspondent pas'
});
});

it('change email : different emails should not work', () => {
testEmail({
email: '[email protected]',
confirmationEmail: '[email protected]',
expectedMEssage: 'Les adresses e-mail ne correspondent pas'
});
});

it('change email : not whitelisted emails should not work', () => {
testEmail({
email: '[email protected]',
confirmationEmail: '[email protected]',
expectedMEssage:
'Cette adresse mail ne fait pas partie des domaines autorisés. Veuillez contacter le support si vous souhaitez utiliser cette adresse.'
});
});

it('change email : allready existing emails should not work', () => {
testEmail({
email: adminEmail,
confirmationEmail: adminEmail,
expectedMEssage: 'Cette adresse mail existe déjà'
});
});

it('change email : should work if everything OK', () => {
testEmail({ email: newEmailTest, confirmationEmail: newEmailTest });
});

it('delete account', () => {
login(newEmailTest, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest);
cy.contains('li', selectors.menu.account).click({ force: true });
cy.contains('button', selectors.action.delete).click({ force: true });
cy.contains('button', selectors.action.confirmDelete).should('be.disabled');
cy.get(selectors.accountForm.confirm)
.clear({ force: true })
.type('blabla', { force: true });
cy.contains('button', selectors.action.confirmDelete).should('be.disabled');
cy.contains('p', 'Mot de confirmation incorrect').should('exist');
cy.get(selectors.accountForm.confirm)
.clear({ force: true })
.type('supprimer', { force: true });
cy.contains('button', selectors.action.confirmDelete)
.should('not.be.disabled')
.click({ force: true });
cy.url().should('include', '/login');
cy.get(selectors.loginForm.email).type(newEmailTest);
cy.get(selectors.loginForm.continueButton).contains('Continuer').click();
cy.contains('p', 'Aucun compte connu avec cette adresse e-mail.').should(
'exist'
);
});
});

// Helpers
Expand All @@ -103,7 +127,7 @@ function login(email, password) {
cy.get(selectors.loginForm.email).type(email);
cy.get(selectors.loginForm.continueButton).contains('Continuer').click();
cy.get(selectors.loginForm.password).type(password);
cy.get(selectors.loginForm.continueButton).contains('Confirmer').click();
cy.get(selectors.loginForm.continueButton).contains('Se connecter').click();
}

function logout() {
Expand All @@ -116,55 +140,63 @@ function logout() {
}

function checkAccountHeader(name, invitedEmail) {
cy.get('header').contains('Compte').click({ force: true });
cy.get('ul.MuiList-root')
.find('li')
.first()
.within(() => {
cy.get('div.fr-text--bold')
.should('contain.text', name)
cy.get('div').should('contain.text', invitedEmail);
});
cy.get('header').contains('Compte').click({ force: true });
cy.get('ul.MuiList-root')
.find('li')
.first()
.within(() => {
cy.get('div.fr-text--bold').should('contain.text', name);
cy.get('div').should('contain.text', invitedEmail);
});
}

function clickModifyCard(nameCard) {
cy.contains('h4', nameCard)
.parents('.fr-card')
.find('button.fr-btn')
.click();
cy.contains('h4', nameCard).parents('.fr-card').find('button.fr-btn').click();
}

function fillForm({ firstName = '', lastName = '', email = '', emailConfirmation = '' }) {
if(firstName !== '') {
cy.get(selectors.accountForm.firstName).clear().type(firstName, { force: true });
}
if(lastName !== '') {
cy.get(selectors.accountForm.lastName).clear().type(lastName);
}
if(email !== '') {
function fillForm({
firstName = '',
lastName = '',
email = '',
emailConfirmation = ''
}) {
if (firstName !== '') {
cy.get(selectors.accountForm.firstName)
.clear()
.type(firstName, { force: true });
}
if (lastName !== '') {
cy.get(selectors.accountForm.lastName).clear().type(lastName);
}
if (email !== '') {
cy.get(selectors.accountForm.email).clear().type(email);
}
if(emailConfirmation !== '') {
cy.get(selectors.accountForm.emailConfirmation).clear().type(emailConfirmation);
if (emailConfirmation !== '') {
cy.get(selectors.accountForm.emailConfirmation)
.clear()
.type(emailConfirmation);
}
}

function testEmail({email = '', confirmationEmail = '', expectedMEssage = ''}) {
login(invitedEmail, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, invitedEmail)
cy.contains('li', selectors.menu.account).click({force : true});
clickModifyCard(selectors.card.credentials)
fillForm({email: email, emailConfirmation: confirmationEmail})
cy.contains('button', selectors.action.save).click()
if (expectedMEssage !== '') {
cy.contains('p', expectedMEssage).should('exist')
cy.contains('button', selectors.action.save).should('exist')
} else {
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest)
logout();
login(newEmailTest, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest)
}
logout();
function testEmail({
email = '',
confirmationEmail = '',
expectedMEssage = ''
}) {
login(invitedEmail, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, invitedEmail);
cy.contains('li', selectors.menu.account).click({ force: true });
clickModifyCard(selectors.card.credentials);
fillForm({ email: email, emailConfirmation: confirmationEmail });
cy.contains('button', selectors.action.save).click();
if (expectedMEssage !== '') {
cy.contains('p', expectedMEssage).should('exist');
cy.contains('button', selectors.action.save).should('exist');
} else {
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest);
logout();
login(newEmailTest, userPassword);
checkAccountHeader(`${firstNameTest} ${lastNameTest}`, newEmailTest);
}
logout();
}

Loading
Loading