Skip to content

Commit a0ca5c1

Browse files
authored
Challenge page Review Link encodeURI fix (#1588)
* add encode function to link challengeName * add a render test * add routing to withProvider
1 parent 5a48f05 commit a0ca5c1

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

src/components/ChallengeDetail/ChallengeDetail.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export class ChallengeDetail extends Component {
235235
className={classNames(
236236
"mr-text-green-lighter hover:mr-text-white mr-mr-4 mr-leading-none",
237237
{"mr-border-r-2 mr-border-white-10 mr-pr-4 mr-mr-4": manageControl})}
238-
to={`/review?challengeId=${challenge.id}&challengeName=${challenge.name}`}
238+
to={`/review?challengeId=${challenge.id}&challengeName=${encodeURIComponent(challenge.name)}`}
239239
>
240240
<FormattedMessage {...messages.viewReviews} />
241241
</Link>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import "@testing-library/jest-dom";
2+
import * as React from "react";
3+
import { IntlProvider } from "react-intl";
4+
import { render, fireEvent, screen, waitFor } from "@testing-library/react";
5+
import { ChallengeDetail } from "./ChallengeDetail.js";
6+
7+
describe("ChallengeDetail", () => {
8+
it("doesn't break if only required props are provided", () => {
9+
const { getByText } = render(
10+
<IntlProvider locale="en">
11+
<ChallengeDetail />
12+
<div>Test Passes</div>
13+
</IntlProvider>
14+
);
15+
const text = getByText("Test Passes");
16+
expect(text).toBeInTheDocument();
17+
});
18+
});

src/setupTests.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import "@testing-library/jest-dom";
22
import React, { Fragment } from "react";
33
import Enzyme, { shallow, render, mount } from "enzyme";
44
import Adapter from "enzyme-adapter-react-16";
5+
import { createBrowserHistory } from "history";
6+
import { Router } from "react-router-dom";
57
import { render as rtlRender } from "@testing-library/react";
68
import { Provider } from "react-redux";
79
import { IntlProvider } from "react-intl";
@@ -14,9 +16,11 @@ Enzyme.configure({ adapter: new Adapter() });
1416
global.shallow = shallow;
1517
global.render = render;
1618
global.mount = mount;
19+
global.scrollTo = jest.fn();
1720

1821
// React testing library methods
1922
const reduxStore = initializeStore();
23+
const routerHistory = createBrowserHistory();
2024

2125
global.withProvider = (
2226
ui,
@@ -26,7 +30,9 @@ global.withProvider = (
2630
return (
2731
<Fragment>
2832
<Provider store={store}>
29-
<IntlProvider locale="en">{children}</IntlProvider>
33+
<IntlProvider locale="en">
34+
<Router history={routerHistory}>{children}</Router>
35+
</IntlProvider>
3036
</Provider>
3137
<div id="external-root"></div>
3238
</Fragment>

0 commit comments

Comments
 (0)