* Access MediaViewer from TaxonDetails
* Added our own presets for ActivityIndicator
* TaxonDetail should show a local taxon if one is available
* Made it a little easier to import the custom logger
* Refactored MediaViewer to accept photo-like objects instead of URIs
* Added license / attribution button to MediaViewer
* Moved delete button into MainPhotoDisplay so each photo has its own button
and it can be laid out relative to its photo
* Add custom header to MediaViewer when accessed from TaxonDetial
* Allow DisplayTaxonName to accept custom text components as props
* Added darker bg to photo on TaxonDetail to make title more legible
* Make minimum viable RemoteComment
* Minimum vialbe RemoteIdentification
* Minimum viable remote project, place, and messages
* Create minimum viable records for all remote factories
* Remove factories for local device data
* Minimum viable local taxon, comment, id
* Minimum viable for local observation photo (photo has no primary key)
* Minimum viable LocalUser
* Minimum viable record for LocalObservation
* Sign out user when encountering a 401 error while fetching JWT
* Save currently signed in user in Realm
* Check for logged in user on app start, add loading wheel to obs list, sign user out when no user ID
Closes#99
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Several updates to testing
* Restructured tests so they are in their own dir at the root
* Added an integration test that mocks the response from inaturalistjs
* Instead of mocking Realm, I mocked the Realm config so it writes to an
in-memory database for tests
* Added test data factories with factoria and faker
TODO
* Try mocking hooks to make a unit tests for the ObsList component; it should
be possible to write unit tests for components with hooks
* Data in the in-memory Realm db is probably sticking around between tests; we
need a way to trash the db after each test
* Tried to address logbox failure in Github Actions test run
* Tried bumping the timeout for tests for github actions
* Added skip duplicates and Slack notification to test action
* Added unit test for ObsList
* Seriously, how much time do you need to run a test...
* Added missing factory import
* Test fixes for context & providers
* DRY out ObsList.test.js a bit
* Made ObsList.test.js synchronous
In theory I suspect all component tests should be synchronous because if
you've mocked out all the hooks, there should be no reason to wait for
effects to complete.
Also removed subscriptionRef which didn't seem to be doing anything.