Implement a feature that shows current time and weather temperature of 5 largest cities in the world.
- Use the provided code structure
- Only use dependencies that are already specified in package.json
- Create a GitHub issue and a pull request that resolves the issue
- Find and use weather API of your choice
- If the requirements are not clear, use your best judgement
- Acceptance tests are located at:
e2e/features/*.feature
: Cucumber tests in Gherkine2e/steps/[feature].steps.js
: Feature step definitions
- Application code is under
src/
:index.ts
: Load the appcomponents/
: React components[Component]
/index.tsx
: Component codeindex.test.tsx
: Component tests (snapshot verification)__snapshots__/
: Generated snapshots for tests
index.tsx
/index.test.tsx
/__snapshots__/
: Root layout component
app/
:index.tsx
: Setup react context providersstore.ts
: Redux store initializationactions.ts
: Redux action creatorsreducers/
index.ts
: Combine and export Redux reducers[reducer]/
index.ts
: Reducer functionindex.test.ts
: Reducer function tests
epics/
index.ts
: Combine and export redux-observable epicstypes.ts
: Types used by epicstest-helpers.ts
: Helper functions for testing epics[epic]/
index.ts
: Epicindex.test.ts
: Epic observable tests
services/
index.ts
: Combine and export services[service]/
index.ts
: Service codeindex.test.ts
: Service tests
Tests are not required to pass the challenge. You can write no tests, some tests, or go full BDD - up to you.
- Acceptance tests using
puppeteer
,jest
andjest-cucumber
- React component snapshot tests using
jest
,enzyme
andenzyme-to-json
jest
unit tests forredux
reducers,redux-observable
epics and services
Note: to mock 3rd party services in e2e tests you can use TEST_BUILD variable that is exported by webpack.