Forgot password flow
This commit is contained in:
@@ -165,6 +165,55 @@ describe('app routes', () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it('loads the recover password page inside the simple layout', async () => {
|
||||
const { fixture, router } = await renderAppAt('/recuperar-contrasena');
|
||||
const compiled = fixture.nativeElement as HTMLElement;
|
||||
const recoverPasswordPage = compiled.querySelector('app-recover-password-page');
|
||||
|
||||
expect(router.url).toBe('/recuperar-contrasena');
|
||||
expect(compiled.querySelector('.simple-layout')).not.toBeNull();
|
||||
expect(recoverPasswordPage).not.toBeNull();
|
||||
expect(recoverPasswordPage?.textContent).toContain('Recuperar contraseña');
|
||||
expect(recoverPasswordPage?.querySelector('input')?.getAttribute('placeholder')).toBe('Email');
|
||||
expect(recoverPasswordPage?.textContent).toContain('Recuperar acceso');
|
||||
expect(recoverPasswordPage?.textContent).toContain('Volver');
|
||||
});
|
||||
|
||||
it('loads the recovery code page and shows the entered email', async () => {
|
||||
const { fixture, router } = await renderAppAt(
|
||||
'/recuperar-contrasena/codigo?email=ada%40example.com'
|
||||
);
|
||||
const compiled = fixture.nativeElement as HTMLElement;
|
||||
const codePage = compiled.querySelector('app-recover-password-code-page');
|
||||
|
||||
expect(router.url).toBe('/recuperar-contrasena/codigo?email=ada%40example.com');
|
||||
expect(compiled.querySelector('.simple-layout')).not.toBeNull();
|
||||
expect(codePage).not.toBeNull();
|
||||
expect(codePage?.textContent).toContain('ada@example.com');
|
||||
expect(codePage?.querySelectorAll('app-input')).toHaveLength(4);
|
||||
expect(codePage?.textContent).toContain('Validar');
|
||||
});
|
||||
|
||||
it('loads the reset password page with the shared password inputs', async () => {
|
||||
const { fixture, router } = await renderAppAt(
|
||||
'/recuperar-contrasena/restablecer?email=ada%40example.com&code=1234'
|
||||
);
|
||||
const compiled = fixture.nativeElement as HTMLElement;
|
||||
const resetPage = compiled.querySelector('app-reset-password-page');
|
||||
const placeholders = Array.from(resetPage?.querySelectorAll('input') ?? []).map((input) =>
|
||||
input.getAttribute('placeholder')
|
||||
);
|
||||
|
||||
expect(router.url).toBe(
|
||||
'/recuperar-contrasena/restablecer?email=ada%40example.com&code=1234'
|
||||
);
|
||||
expect(compiled.querySelector('.simple-layout')).not.toBeNull();
|
||||
expect(resetPage).not.toBeNull();
|
||||
expect(resetPage?.textContent).toContain('Restablecer contraseña');
|
||||
expect(placeholders).toEqual(['Nueva Contraseña', 'Repetir Nueva Contraseña']);
|
||||
expect(resetPage?.textContent).toContain('Guardar');
|
||||
});
|
||||
|
||||
it('redirects authenticated users away from /login', async () => {
|
||||
const { router } = await renderAppAt('/login', createTenantServiceStub(), createAuthServiceStub(true));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user