Additionally,
* Adds tests for ID withdraw and restore
* Renames withdrawOrRestoreIdentification function for clarity
* Adds some accessibility labels for testing and accessibility
Closes#1129
* Restored Suggestions navigation tests
* Restored SuggestionsWithSyncedObs.test.js tests
* Mocked vision-camera-plugin-inatvision instead of useOfflineSuggestions
* Removed unnecessarily complex object from navigation params
There were a lot of issues here, but the main ones (I think) were related to
rendering all the navigators and waiting for asynchronous stuff to happen
before proceeding with the test.
* 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
* Refactor ObsStatus, add filled property
* Remove viewed prop from observation
* Update properties for ObsDetail mark viewed
* Use separate fields for comments and ids for ObsStatus
* Add hook for fetching updates
* Unit tests for the updates hook
* Unit tests for different paths for updating the realm observation when using the hook
* Update MyObservations.test.js
* Add integration test if updates has been called in my observations
* Update Podfile.lock
* Update observation to not viewed if the keys have not been initialized
* Add test case if observation fields are not initialized
* Add test case
* Refetch stale data on coming back from the background
* Subscribe to observation updates also in ObsDetail screen
This also invalidates and refetches the data after a successful mutation of the id or comment being viewed.
* Refetch observation updates data on sync button press
* Throw error in updates query
* Return refetch function from hook
* Add mock to ObsDetails
* Remove unused var
* Update useObservationsUpdates.test.js
* Reset realm viewed state to true ...
for all observations on app mount and coming to the foreground.
* Reorder function calls
* Change hook to use boolean as enabled param
* Create ObsDetails.test.js
* Update date handle tests to make sure Remote data classes have parseable date
* Add test case for comment and identification
* Update ObsDetails.test.js
* Also check for user in ObsDetails
* Refactored into separate hook for App.js
* Unit and integration test for new hook
* Rename const
* Rename field
* Rename field
* Export query key from hook
* Refactor true check
* Additional methods for obs being viewed or not
* Changed test description
* Add per_page to observations updated
* Create Explore screen
* Add input field component
* Add input fields
* UI for list view in Explore; dropdown taxa picker
* UI for list view in Explore; dropdown taxa picker
* ObservationViews component is shared between Explore and My Observations
* Get tests passing with Explore + ObservationViews
* Add map view, iOS location permission whenInUse, and geolocation fetch
* Add RN permissions and geolocation to jest mocks
* Explore filters, testing, explore provider/navigation stack
* Crash fix for grid items with no observation photos
* Code cleanup; remove duplicate files
* Remove more duplication
* Consolidate pickers into a single component
* Move copyRealmSchema into Observation model
* Move copyRealmSchema into Observation model
* Move observation photo logic to Obs model
* Obs details fetches an observation from API instead of from realm/exploreList
* Rename hooks files with 'use' instead of 'fetch'
* Add user to observation schema
* Change realm keys from camelcase to snakecase with mapping
* Simplify model code
* Fix tests for ObsDetails
* Attempt to clean up ObsList code; move useObservations hook into provider
* Several minor changes to get tests passing
* Stopped mocking useObservation hook in MyObservations integration test; this
should not be mocked in an integration test since the point is to test the
integration of all the different moving pieces within the app, and it was
causing a failure because it was mocked but none of the methods were
actually provided with mock responses, so it wasn't doing anything
* Used the LocalObservation factory for ObsDetails.test.js, where the
useObservation hook should return an observation in the Realm schema
(or something like it), not in the remote schema
* Updated the LocalObservation factory to meet expectations
* Attempting to work around weird problem with fkirc/skip-duplicate-actions
* Removed fkirc/skip-duplicate-actions from CI for now
* CI fix
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>