diff --git a/README.md b/README.md
index a1572b123c..f9a916194d 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ New version of Topcoder Community website.
*Disclaimer:* Current instructions are biased towards Ubuntu 16.04. Hovewer, similar recipies should work for other OS. Should you encounter and overcome any tricky issues on other OS, you are welcome to add notes/hints into this file.
-1. You should have NodeJS 6.10.0 (other recent versions should also work fine);
+1. You should have NodeJS 6.10.2 (other recent versions should also work fine);
2. Install dependencies with one of the following commands:
- `$ npm install` Installs all dependencies. Recommended for local development;
diff --git a/__tests__/server/server.js b/__tests__/server/server.js
index b6d3da43cc..b86ad9457f 100644
--- a/__tests__/server/server.js
+++ b/__tests__/server/server.js
@@ -48,23 +48,23 @@ describe('Api test', () => {
server = require(MODULE).default;
});
test('post to /api/logger', () => request(server).post('/api/logger')
- .send({ data: 'data' })
- .then((response) => {
- expect(response.statusCode).toBe(200);
- }));
+ .send({ data: 'data' })
+ .then((response) => {
+ expect(response.statusCode).toBe(200);
+ }));
test('post to /api/xml2json', () => request(server).post('/api/xml2json')
- .send({ xml: '' })
- .then((response) => {
- expect(response.text).toBe('{"xml":{}}');
- }));
+ .send({ xml: '' })
+ .then((response) => {
+ expect(response.text).toBe('{"xml":{}}');
+ }));
test('status 404', () => request(server).get('/ELB-HealthChecker/2.0')
- .then((response) => {
- expect(response.statusCode).toBe(404);
- }));
+ .then((response) => {
+ expect(response.statusCode).toBe(404);
+ }));
test('status 500', () => request(server).post('/api/logger')
- .then((response) => {
- expect(response.statusCode).toBe(500);
- }));
+ .then((response) => {
+ expect(response.statusCode).toBe(500);
+ }));
test('status 500 Internal Error', () => {
process.env.NODE_ENV = 'development';
jest.resetModules();
diff --git a/__tests__/server/tc-communities.js b/__tests__/server/tc-communities.js
index 4b9229295a..fc4525489d 100644
--- a/__tests__/server/tc-communities.js
+++ b/__tests__/server/tc-communities.js
@@ -9,15 +9,15 @@ describe('tc-communities api test', () => {
server = require(MODULE).default;
});
test('get community filter', () => request(server).get('/api/tc-communities')
- .then((response) => {
- expect(response.statusCode).toBe(200);
- }));
+ .then((response) => {
+ expect(response.statusCode).toBe(200);
+ }));
test('get community meta', () => request(server).get('/api/tc-communities/wipro/meta')
- .then((response) => {
- expect(response.statusCode).toBe(200);
- }));
+ .then((response) => {
+ expect(response.statusCode).toBe(200);
+ }));
test('get non-exist community meta', () => request(server).get('/api/tc-communities/noop/meta')
- .then((response) => {
- expect(response.statusCode).toBe(404);
- }));
+ .then((response) => {
+ expect(response.statusCode).toBe(404);
+ }));
});
diff --git a/__tests__/shared/actions/challenge.js b/__tests__/shared/actions/challenge.js
index b221f7c2fa..3ef9c23cad 100644
--- a/__tests__/shared/actions/challenge.js
+++ b/__tests__/shared/actions/challenge.js
@@ -21,48 +21,53 @@ afterAll(() => {
});
describe('challenge.fetchChallengeInit', () => {
- const a = actions.fetchChallengeInit();
+ const a = actions.challenge.getDetailsInit(12345);
test('has expected type', () => {
- expect(a.type).toBe('FETCH_CHALLENGE_INIT');
+ expect(a.type).toBe('CHALLENGE/GET_DETAILS_INIT');
});
- test('payload is undefined', () =>
- expect(a.payload).toBeUndefined());
+ test('payload is the challenge ID, converted to string, if necessary', () =>
+ expect(a.payload).toBe('12345'));
});
describe('challenge.fetchSubmissionsInit', () => {
- const a = actions.fetchSubmissionsInit();
+ const a = actions.challenge.getSubmissionsInit();
test('has expected type', () => {
- expect(a.type).toBe('FETCH_SUBMISSIONS_INIT');
+ expect(a.type).toBe('CHALLENGE/GET_SUBMISSIONS_INIT');
});
test('payload is undefined', () =>
expect(a.payload).toBeUndefined());
});
-describe('challenge.fetchChallengeDone', () => {
+describe('challenge.getDetailsDone', () => {
global.fetch = mockFetch({ result: { content: ['DUMMY DATA'] } });
- const a = actions.fetchChallengeDone({});
+ const a = actions.challenge.getDetailsDone(12345);
test('has expected type', () => {
- expect(a.type).toBe('FETCH_CHALLENGE_DONE');
+ expect(a.type).toBe('CHALLENGE/GET_DETAILS_DONE');
});
- test('payload is a promise which resolves to the expected object', () =>
- a.payload.then(res => expect(res).toEqual('DUMMY DATA')));
+ /* TODO: This test does not work anymore, as the action was refactored to
+ * use challenges service for API v3 calls, while API v2 calls still happen
+ * the way they used to. Thus, we need a better mock of fetch to test it,
+ * or some alternative approach. */
+ test.skip('payload is a promise which resolves to the expected object', () =>
+ a.payload.then(res => expect(res).toEqual(
+ ['DUMMY DATA', { result: { content: ['DUMMY DATA'] } }, {}])));
});
describe('challenge.fetchSubmissionsDone', () => {
global.fetch = mockFetch({ submissions: 'DUMMY DATA' });
- const a = actions.fetchSubmissionsDone({});
+ const a = actions.challenge.getSubmissionsDone({});
test('has expected type', () => {
- expect(a.type).toBe('FETCH_SUBMISSIONS_DONE');
+ expect(a.type).toBe('CHALLENGE/GET_SUBMISSIONS_DONE');
});
test('payload is a promise which resolves to the expected object', () =>
diff --git a/__tests__/shared/components/TopcoderHeader/__snapshots__/Auth.jsx.snap b/__tests__/shared/components/TopcoderHeader/__snapshots__/Auth.jsx.snap
index bc7bd9d5f4..e1d8f1be9f 100644
--- a/__tests__/shared/components/TopcoderHeader/__snapshots__/Auth.jsx.snap
+++ b/__tests__/shared/components/TopcoderHeader/__snapshots__/Auth.jsx.snap
@@ -6,13 +6,13 @@ exports[`Snapshot match 1`] = `
>
Join
Log In
@@ -25,13 +25,13 @@ exports[`Snapshot match 2`] = `
>
Join
Log In
diff --git a/__tests__/shared/components/TopcoderHeader/__snapshots__/index.jsx.snap b/__tests__/shared/components/TopcoderHeader/__snapshots__/index.jsx.snap
index 5b45076f7c..f8ba49bd12 100644
--- a/__tests__/shared/components/TopcoderHeader/__snapshots__/index.jsx.snap
+++ b/__tests__/shared/components/TopcoderHeader/__snapshots__/index.jsx.snap
@@ -49,13 +49,13 @@ exports[`Default render 1`] = `
>
Join
Log In
@@ -232,13 +232,13 @@ exports[`Render with open menu 1`] = `
>
Join
Log In
diff --git a/__tests__/shared/components/challenge-listing/Listing/Bucket.jsx b/__tests__/shared/components/challenge-listing/Listing/Bucket.jsx
index 5cc402f702..432e13f917 100644
--- a/__tests__/shared/components/challenge-listing/Listing/Bucket.jsx
+++ b/__tests__/shared/components/challenge-listing/Listing/Bucket.jsx
@@ -19,7 +19,7 @@ const mockDatas = [{
expanded: true,
expand,
challenges: [
- { id: '1', status: 'b' },
+ { id: '1', status: 'b' },
{
id: '2',
status: 'a',
diff --git a/__tests__/shared/components/examples/__snapshots__/Content.jsx.snap b/__tests__/shared/components/examples/__snapshots__/Content.jsx.snap
index 2dbaae67d8..463527c608 100644
--- a/__tests__/shared/components/examples/__snapshots__/Content.jsx.snap
+++ b/__tests__/shared/components/examples/__snapshots__/Content.jsx.snap
@@ -101,77 +101,62 @@ exports[`Matches shallow shapshot 1`] = `
- New Topcoder Pages
+ Main Topcoder website
-
- Submission Management Page
-
- – New submission management page, is available at the endpoint
+ Challenge Details Page
+
+ – generally availabel at the endpoint
- /challenge/:challengeId/my-submissions
+ /challenges/:challengeId
- . The link here leads to the test challenge.
+ ; the link here leads to a sample challenge.
- Main Website Challenge Listing Page
+ Dashboard
- – Ported Challenge Listing for the main website.
- Community Challenge Listing Page
+ Main Challenge Listing
- – An example of community challenge list apge which shows only challenges with special criteria. In this case only challenges which has JavaScript technology tag.
-
- Leaderboard
-
- – Leaderboard page.
+ Submission Management Page
+
+ – generally available at the endpoint
+
+ /challenges/:challengeId/my-submissions
+
+ ; the link here leads to a test challenge.
+
+
+ Separate Topcoder Communities
+
+
- Community header example
-
- – An example of cummunity header with default style. Also, there are examples of
-
- custom red theme
-
- ,
-
- custom green theme
-
- and
-
- non-existent community page
+ Community 2
- .
- Topcoder Product Development
+ Topcoder Product Development community
- Wipro Community Homepage
-
- – Example of community implementation with new design. This community has three more pages:
-
- Learn
-
- ,
-
- Challenges
-
- and
-
- Leaderboard
-
- . There is also an example of
-
- non-existent community page
-
- .
-
-
-
- Community 2
+ TopGear (Wipro) community
+
+
+ Misc Examples
+
+
- Dashboard
+ Buttons
- – Dashboard page.
+ - Demo/test of standard buttons already available in the code, and customizable with help of
+
+ react-css-themr
+
+ .