* refactor: stop spreading challenge over the node
Instead of creating a Gatsby node with id of challenge.id, we create a
single node field that has all the challenge data.
While this makes the GraphQL queries more verbose, it means we're free
to create multiple nodes with the same challenge.id.
* test: update time-line test for new GQL schema
* test: update mocks with new GQL schema
The previous approach did avoid a fair number of jest.mock calls, but
made debugging the tests harder. If you don't know about the mapping
it's unclear why the imported module does not behave as normal.
By forcing the use of jest.mock it means that the answer to that
question is in the test you are working on.
* feat/ add smooth scroll from landing to map
* feat: scroll to currentChallengeId if it exist
* fix: update tests
* refactor: migrate from componentWillMount
* fix: update Map and Block's tests and mocks
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>