mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-24 14:09:53 +05:30
90 lines
3.1 KiB
TypeScript
90 lines
3.1 KiB
TypeScript
import { openSectionByName, confirmWithPassword } from './utils';
|
|
|
|
describe('Profile — Change password', () => {
|
|
it('should change password', () => {
|
|
cy.login({ accounts: ['default'] }).then(({ accounts: [account] }) => {
|
|
cy.server();
|
|
cy.route({
|
|
method: 'POST',
|
|
url: `/api/v1/accounts/${account.id}/password`,
|
|
}).as('password');
|
|
cy.visit('/');
|
|
|
|
openSectionByName('Password');
|
|
|
|
cy.location('pathname').should('eq', '/profile/change-password');
|
|
|
|
cy.get('[name=newPassword]').type(account.password);
|
|
cy.get('[name=newRePassword]').type(account.password);
|
|
cy.get('[name=logoutAll]').should('be.checked');
|
|
cy.get('[type=submit]').click();
|
|
|
|
cy.wait('@password')
|
|
.its('requestBody')
|
|
.should(
|
|
'eq',
|
|
new URLSearchParams({
|
|
password: '',
|
|
newPassword: account.password,
|
|
newRePassword: account.password,
|
|
logoutAll: '1',
|
|
}).toString(),
|
|
);
|
|
|
|
confirmWithPassword(account.password);
|
|
|
|
cy.wait('@password')
|
|
.its('requestBody')
|
|
.should(
|
|
'eq',
|
|
new URLSearchParams({
|
|
password: account.password,
|
|
newPassword: account.password,
|
|
newRePassword: account.password,
|
|
logoutAll: '1',
|
|
}).toString(),
|
|
);
|
|
|
|
cy.location('pathname').should('eq', '/');
|
|
});
|
|
});
|
|
|
|
it('should close password popup if form has errors', () => {
|
|
cy.login({ accounts: ['default'] }).then(({ accounts: [account] }) => {
|
|
cy.server();
|
|
cy.route({
|
|
method: 'POST',
|
|
url: `/api/v1/accounts/${account.id}/password`,
|
|
response: {
|
|
success: false,
|
|
errors: {
|
|
password: 'force popup to be shown',
|
|
},
|
|
},
|
|
}).as('password');
|
|
cy.visit('/');
|
|
|
|
openSectionByName('Password');
|
|
|
|
cy.location('pathname').should('eq', '/profile/change-password');
|
|
|
|
cy.get('[name=newPassword]').type(account.password);
|
|
// make a mistake to hide confirm popup in future
|
|
cy.get('[name=newRePassword]').type(`${account.password}lol`);
|
|
cy.get('[name=logoutAll]').should('be.checked');
|
|
cy.get('[type=submit]').click();
|
|
|
|
// disable response mocks
|
|
cy.route({
|
|
method: 'POST',
|
|
url: `/api/v1/accounts/${account.id}/password`,
|
|
}).as('password');
|
|
|
|
confirmWithPassword(account.password);
|
|
|
|
cy.findByTestId('password-request-form').should('not.be.visible');
|
|
cy.contains('The passwords does not match').should('be.visible');
|
|
});
|
|
});
|
|
});
|