fix(client): remove auto redirect in email sign up page (#42832)
parent
21be9df82a
commit
0b15f0e505
File diff suppressed because it is too large
Load Diff
|
@ -161,6 +161,7 @@
|
|||
"jest-json-schema-extended": "1.0.1",
|
||||
"monaco-editor-webpack-plugin": "4.2.0",
|
||||
"react-test-renderer": "16.14.0",
|
||||
"redux-mock-store": "^1.5.4",
|
||||
"redux-saga-test-plan": "4.0.4",
|
||||
"serve": "12.0.1",
|
||||
"webpack": "5.64.0",
|
||||
|
|
|
@ -0,0 +1,176 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<EmailSignUp /> Authenticated user "accepted terms and condition" it should render correctly 1`] = `null`;
|
||||
|
||||
exports[`<EmailSignUp /> Non-Authenticated user "not accepted terms and condition" it should render correctly 1`] = `
|
||||
<div
|
||||
className="container"
|
||||
>
|
||||
<div
|
||||
className="row"
|
||||
>
|
||||
<div
|
||||
className="col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1 col-xs-12"
|
||||
>
|
||||
<div
|
||||
className="spacer"
|
||||
style={
|
||||
Object {
|
||||
"height": "1px",
|
||||
"padding": "15px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<div
|
||||
className="intro-description"
|
||||
>
|
||||
<strong>
|
||||
learn.read-this.heading
|
||||
</strong>
|
||||
<div
|
||||
className="spacer"
|
||||
style={
|
||||
Object {
|
||||
"height": "1px",
|
||||
"padding": "15px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<p>
|
||||
learn.read-this.p1
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p2
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p3
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p4
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p5
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p6
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p7
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p8
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
className="inline"
|
||||
href="https://youtube.com/freecodecamp"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p10
|
||||
</p>
|
||||
<p>
|
||||
<a
|
||||
className="inline"
|
||||
href="https://forum.freecodecamp.org"
|
||||
rel="noopener noreferrer"
|
||||
target="_blank"
|
||||
/>
|
||||
</p>
|
||||
<p>
|
||||
learn.read-this.p12
|
||||
</p>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className="email-sign-up row"
|
||||
data-cy="email-sign-up"
|
||||
>
|
||||
<div
|
||||
className="col-md-8 col-md-offset-2 col-sm-10 col-sm-offset-1 col-xs-12"
|
||||
>
|
||||
<strong>
|
||||
misc.quincy
|
||||
</strong>
|
||||
<div
|
||||
className="spacer"
|
||||
style={
|
||||
Object {
|
||||
"height": "1px",
|
||||
"padding": "15px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
<p>
|
||||
misc.email-blast
|
||||
</p>
|
||||
<div
|
||||
className="spacer"
|
||||
style={
|
||||
Object {
|
||||
"height": "1px",
|
||||
"padding": "15px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="col-md-4 col-md-offset-2 col-sm-5 col-sm-offset-1 col-xs-12"
|
||||
>
|
||||
<button
|
||||
className="big-cta-btn btn btn-lg btn-primary btn-block"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
buttons.yes-please
|
||||
</button>
|
||||
<div
|
||||
className="button-spacer"
|
||||
style={
|
||||
Object {
|
||||
"padding": "5px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="col-md-4 col-sm-5 col-xs-12"
|
||||
>
|
||||
<button
|
||||
className="big-cta-btn btn btn-lg btn-primary btn-block"
|
||||
disabled={false}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
buttons.no-thanks
|
||||
</button>
|
||||
<div
|
||||
className="button-spacer"
|
||||
style={
|
||||
Object {
|
||||
"padding": "5px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
className="col-xs-12"
|
||||
>
|
||||
<div
|
||||
className="spacer"
|
||||
style={
|
||||
Object {
|
||||
"height": "1px",
|
||||
"padding": "15px 0",
|
||||
}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
|
@ -7,6 +7,6 @@
|
|||
@media (min-width: 500px) {
|
||||
.email-sign-up strong,
|
||||
.email-sign-up p {
|
||||
font-size: 1.22rem;
|
||||
font-size: 1.17rem;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
import { navigate } from 'gatsby';
|
||||
import React from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import renderer from 'react-test-renderer';
|
||||
import configureStore from 'redux-mock-store';
|
||||
import EmailSignUp from './email-sign-up';
|
||||
|
||||
const middlewares = [];
|
||||
const mockStore = configureStore(middlewares);
|
||||
|
||||
jest.mock('../analytics');
|
||||
|
||||
jest.mock('gatsby', () => ({
|
||||
navigate: jest.fn()
|
||||
}));
|
||||
|
||||
describe('<EmailSignUp />', () => {
|
||||
let component;
|
||||
let tree;
|
||||
|
||||
describe('Non-Authenticated user "not accepted terms and condition"', () => {
|
||||
beforeEach(() => {
|
||||
const initialState = { app: { appUsername: '', user: {} } };
|
||||
|
||||
const store = mockStore(initialState);
|
||||
const container = renderer.create(
|
||||
<Provider store={store}>
|
||||
<EmailSignUp />
|
||||
</Provider>
|
||||
);
|
||||
|
||||
component = container.root;
|
||||
tree = container.toJSON();
|
||||
});
|
||||
|
||||
it('it should render correctly', () => {
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('it should have a intro description section', () => {
|
||||
// eslint-disable-next-line testing-library/await-async-query
|
||||
const sectionIntroDescription = component.findByProps({
|
||||
className: 'intro-description'
|
||||
});
|
||||
|
||||
expect(sectionIntroDescription).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Authenticated user "accepted terms and condition"', () => {
|
||||
beforeEach(() => {
|
||||
const initialState = {
|
||||
app: {
|
||||
appUsername: 'John Doe',
|
||||
user: {
|
||||
'John Doe': {
|
||||
acceptedPrivacyTerms: true,
|
||||
name: 'John Doe'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
const store = mockStore(initialState);
|
||||
store.dispatch = jest.fn();
|
||||
|
||||
const container = renderer.create(
|
||||
<Provider store={store}>
|
||||
<EmailSignUp />
|
||||
</Provider>
|
||||
);
|
||||
|
||||
component = container.root;
|
||||
tree = container.toJSON();
|
||||
});
|
||||
|
||||
it('it should render correctly', () => {
|
||||
expect(tree).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('it should redirect to learn url', () => {
|
||||
expect(navigate).toHaveBeenCalledWith('/learn');
|
||||
});
|
||||
});
|
||||
});
|
|
@ -9,7 +9,6 @@ import { createSelector } from 'reselect';
|
|||
import IntroDescription from '../components/Intro/components/IntroDescription';
|
||||
import createRedirect from '../components/create-redirect';
|
||||
import { ButtonSpacer, Spacer } from '../components/helpers';
|
||||
import SectionHeader from '../components/settings/section-header';
|
||||
|
||||
import { acceptTerms, userSelector } from '../redux';
|
||||
|
||||
|
@ -67,20 +66,21 @@ function AcceptPrivacyTerms({
|
|||
<Helmet>
|
||||
<title>{t('misc.email-signup')} | freeCodeCamp.org</title>
|
||||
</Helmet>
|
||||
<Grid
|
||||
className='default-page-wrapper email-sign-up'
|
||||
data-cy='email-sign-up'
|
||||
>
|
||||
<SectionHeader>{t('misc.email-signup')}</SectionHeader>
|
||||
<Grid>
|
||||
<Row>
|
||||
<IntroDescription />
|
||||
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>
|
||||
<Spacer />
|
||||
<IntroDescription />
|
||||
<hr />
|
||||
</Col>
|
||||
</Row>
|
||||
<Row className='email-sign-up' data-cy='email-sign-up'>
|
||||
<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>
|
||||
<strong>{t('misc.quincy')}</strong>
|
||||
<Spacer />
|
||||
<p>{t('misc.email-blast')}</p>
|
||||
<Spacer />
|
||||
</Col>
|
||||
|
||||
<Col md={4} mdOffset={2} sm={5} smOffset={1} xs={12}>
|
||||
<Button
|
||||
block={true}
|
||||
|
|
Loading…
Reference in New Issue