Files
iNaturalistReactNative/ctrf-report.json
2025-12-12 16:44:48 -06:00

7907 lines
305 KiB
JSON

{
"results": {
"tool": {
"name": "jest"
},
"summary": {
"tests": 717,
"passed": 708,
"failed": 0,
"pending": 0,
"skipped": 0,
"other": 9,
"start": 1765578485570,
"stop": 1765578514673
},
"tests": [
{
"name": "useObservationsUpdates should return an object",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates"
},
{
"name": "useObservationsUpdates when there is no local observation with the resource_uuid should return without writing to a local observation",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when there is no local observation with the resource_uuid"
},
{
"name": "useObservationsUpdates when the update is a comment when the local observation has viewed fields not initialized should write correct viewed status for comments and identifications",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a comment > when the local observation has viewed fields not initialized"
},
{
"name": "useObservationsUpdates when the update is a comment when the local observation has viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a comment > when the local observation has viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a comment when the local observation has viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a comment > when the local observation has viewed comments and not viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a comment when the local observation has not viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a comment > when the local observation has not viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a comment when the local observation has not viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a comment > when the local observation has not viewed comments and not viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a identification when the local observation has viewed fields not initialized should write correct viewed status for comments and identifications",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a identification > when the local observation has viewed fields not initialized"
},
{
"name": "useObservationsUpdates when the update is a identification when the local observation has viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a identification > when the local observation has viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a identification when the local observation has viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a identification > when the local observation has viewed comments and not viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a identification when the local observation has not viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a identification > when the local observation has not viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a identification when the local observation has not viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a identification > when the local observation has not viewed comments and not viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a both when the local observation has viewed fields not initialized should write correct viewed status for comments and identifications",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a both > when the local observation has viewed fields not initialized"
},
{
"name": "useObservationsUpdates when the update is a both when the local observation has viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a both > when the local observation has viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a both when the local observation has viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a both > when the local observation has viewed comments and not viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a both when the local observation has not viewed comments and viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a both > when the local observation has not viewed comments and viewed identifications"
},
{
"name": "useObservationsUpdates when the update is a both when the local observation has not viewed comments and not viewed identifications should write correct viewed status for comments and identifications",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationsUpdates.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationsUpdates.test.js > useObservationsUpdates > when the update is a both > when the local observation has not viewed comments and not viewed identifications"
},
{
"name": "Notifications should show a notification",
"duration": 222,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Notifications.test.js",
"retries": 0,
"flaky": false,
"suite": "Notifications.test.js > Notifications"
},
{
"name": "Notifications should show a photo for an observation not in the local database",
"duration": 64,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Notifications.test.js",
"retries": 0,
"flaky": false,
"suite": "Notifications.test.js > Notifications"
},
{
"name": "MyObservations localization for current user should be English by default",
"duration": 210,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservationsLocalization.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsLocalization.test.js > MyObservations > localization for current user"
},
{
"name": "with local taxon should return an object",
"duration": 112,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > with local taxon"
},
{
"name": "with local taxon when there is a local taxon with taxon id should return local taxon with default photo",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > with local taxon > when there is a local taxon with taxon id"
},
{
"name": "with local taxon when there is a local taxon with taxon id should request a taxon from the API if the local copy is out of date",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > with local taxon > when there is a local taxon with taxon id"
},
{
"name": "when there is no local taxon with taxon id with fetchRemote: true should request the taxon from the API",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > when there is no local taxon with taxon id > with fetchRemote: true"
},
{
"name": "when there is no local taxon with taxon id with fetchRemote: true should return the argument taxon if request fails",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > when there is no local taxon with taxon id > with fetchRemote: true"
},
{
"name": "when there is no local taxon with taxon id with fetchRemote: true should return a taxon like a local taxon record if the request succeeds",
"duration": 66,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > when there is no local taxon with taxon id > with fetchRemote: true"
},
{
"name": "when there is no local taxon with taxon id with fetchRemote: false should not call the API and return passed in taxon",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxon.test.js > when there is no local taxon with taxon id > with fetchRemote: false"
},
{
"name": "ObsDetails ObsDetailsContainer with an observation where we don't know if the user has viewed comments should make a request to observation/viewedUpdates",
"duration": 277,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > ObsDetailsContainer > with an observation where we don't know if the user has viewed comments"
},
{
"name": "ObsDetails ObsDetailsDefaultModeScreensWrapper with an observation where we don't know if the user has viewed comments should make a request to observation/viewedUpdates",
"duration": 111,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > ObsDetailsDefaultModeScreensWrapper > with an observation where we don't know if the user has viewed comments"
},
{
"name": "ActivityHeaderContainer withdraw ID should request an update to the identification without touching the body",
"duration": 245,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsDetails/ActivityTab/ActivityHeaderContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderContainer.test.js > ActivityHeaderContainer > withdraw ID"
},
{
"name": "ActivityHeaderContainer restore ID should update the identification's current attribute to false",
"duration": 141,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsDetails/ActivityTab/ActivityHeaderContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderContainer.test.js > ActivityHeaderContainer > restore ID"
},
{
"name": "Explore should render observations view list correctly on page load",
"duration": 221,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > Explore"
},
{
"name": "Explore should switch to species view list correctly",
"duration": 171,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > Explore"
},
{
"name": "Explore should display observations view grid correctly",
"duration": 80,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > Explore"
},
{
"name": "Explore should trigger new observation fetch on pull-to-refresh in list view",
"duration": 137,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > Explore"
},
{
"name": "Explore should trigger new observation fetch when filters change",
"duration": 186,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > Explore"
},
{
"name": "basic rendering should render place_guess and latitude",
"duration": 251,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > basic rendering"
},
{
"name": "location fetching should fetch location when new observation hasn't saved",
"duration": 91,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > location fetching"
},
{
"name": "location fetching shouldn't fetch location for existing obs on device that hasn't uploaded",
"duration": 101,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > location fetching"
},
{
"name": "location fetching shouldn't fetch location for existing observation created elsewhere",
"duration": 118,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > location fetching"
},
{
"name": "multiple observation upload/save progress should show upload status when upload button pressed",
"duration": 135,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > multiple observation upload/save progress"
},
{
"name": "multiple observation upload/save progress should show saved status when saved button pressed",
"duration": 103,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > multiple observation upload/save progress"
},
{
"name": "multiple observation upload/save progress should show both saved and uploading status when saved and upload button pressed",
"duration": 160,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > multiple observation upload/save progress"
},
{
"name": "multiple observation upload/save progress should show uploaded status when 1 observation is uploaded in multi-observation upload flow",
"duration": 116,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOnline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOnline.test.js > multiple observation upload/save progress"
},
{
"name": "ObsEdit offline creation should fetch coordinates",
"duration": 425,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/ObsEditOffline.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditOffline.test.js > ObsEdit offline > creation"
},
{
"name": "SimpleUploadBannerContainer displays syncing text before beginning uploads when sync button tapped",
"duration": 40,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays a pending upload",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays an upload in progress",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays a completed upload",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays multiple pending uploads",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays multiple uploads in progress",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays multiple completed uploads",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays 1 upload completed and 4 failed",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays only error when all 5 uploads failed",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays 4 uploads completed and 1 failed",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays deletions completed",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer displays deletion error",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer should hide banner if logged out and only one observation",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "SimpleUploadBannerContainer should show banner if logged out with more than one observation",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/SimpleUploadBannerContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "SimpleUploadBannerContainer.test.js > SimpleUploadBannerContainer"
},
{
"name": "ObsDetails renders obs details from remote call",
"duration": 83,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails"
},
{
"name": "ObsDetails Observation with no evidence should render fallback image icon instead of photos",
"duration": 32,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > Observation with no evidence"
},
{
"name": "ObsDetails viewing someone else's observation should agree with another user's identification when agree button pressed",
"duration": 53,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > viewing someone else's observation"
},
{
"name": "MyObservations when signed out should not make a request to users/me",
"duration": 156,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed out"
},
{
"name": "MyObservations when signed out should not make a request to observations/updates",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed out"
},
{
"name": "MyObservations when signed in with unsynced observations displays unuploaded status",
"duration": 135,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with unsynced observations"
},
{
"name": "MyObservations when signed in with unsynced observations displays upload in progress status when toolbar tapped",
"duration": 415,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with unsynced observations"
},
{
"name": "MyObservations when signed in with unsynced observations displays upload in progress status when individual upload tapped",
"duration": 257,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with unsynced observations"
},
{
"name": "MyObservations when signed in with unsynced observations shows error when upload network connection fails",
"duration": 234,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with unsynced observations"
},
{
"name": "MyObservations when signed in with synced observations should make a request to observations/updates",
"duration": 58,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations hides observation status in grid view",
"duration": 69,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations renders list view on button press",
"duration": 65,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations displays observation status in list view in advanced mode",
"duration": 80,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations doesn't throw an error when sync button tapped",
"duration": 65,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations should trigger manual observation sync on pull-to-refresh",
"duration": 105,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations"
},
{
"name": "MyObservations when signed in with synced observations on screen focus downloads deleted observations from server when screen focused",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations > on screen focus"
},
{
"name": "MyObservations when signed in with synced observations on screen focus deletes local observations if they have been deleted on server",
"duration": 43,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with synced observations > on screen focus"
},
{
"name": "MyObservations when signed in with no observations should show AI camera button to create first observation",
"duration": 36,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservations.test.js > MyObservations > when signed in > with no observations"
},
{
"name": "ObsDetails should not have accessibility errors",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails"
},
{
"name": "ObsDetails renders obs details from remote call",
"duration": 90,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails"
},
{
"name": "ObsDetails renders data tab on button press",
"duration": 61,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails"
},
{
"name": "ObsDetails renders observed date of observation in header",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails"
},
{
"name": "ObsDetails Observation with no evidence should render fallback image icon instead of photos",
"duration": 30,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > Observation with no evidence"
},
{
"name": "ObsDetails activity tab navigates to taxon details on button press",
"duration": 27,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > activity tab"
},
{
"name": "ObsDetails activity tab shows network error image instead of observation photos if user is offline",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > activity tab"
},
{
"name": "ObsDetails viewing someone else's observation should agree with another user's identification when agree button pressed",
"duration": 78,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetails.test.js > ObsDetails > viewing someone else's observation"
},
{
"name": "TaxonDetails renders taxon photos from API response",
"duration": 98,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails"
},
{
"name": "TaxonDetails does not show sticky select taxon button on default screen",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails"
},
{
"name": "TaxonDetails select button should appear from Explore via ObsDetails via Suggestions",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from Explore via ObsDetails via Suggestions via taxonomy",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from MyObs via ObsDetails via Suggestions",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from ObsEdit via Suggestions",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from ObsEdit via Suggestions via taxonomy",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from ObsEdit via TaxonSearch",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear from ObsEdit via TaxonSearch via taxonomy",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear"
},
{
"name": "TaxonDetails select button should appear when logged out from Explore via ObsDetails via Suggestions",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear > when logged out"
},
{
"name": "TaxonDetails select button should appear when logged out from ObsEdit via Suggestions",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear > when logged out"
},
{
"name": "TaxonDetails select button should appear when logged out from ObsEdit via Suggestions via taxonomy",
"duration": 30,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should appear > when logged out"
},
{
"name": "TaxonDetails select button should not appear from Explore",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should not appear"
},
{
"name": "TaxonDetails select button should not appear from Explore via taxonomy",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should not appear"
},
{
"name": "TaxonDetails select button should not appear from Explore via ObsDetails",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should not appear"
},
{
"name": "TaxonDetails select button should not appear from MyObs via ObsDetails",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should not appear"
},
{
"name": "TaxonDetails select button should not appear from AICamera",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > select button > should not appear"
},
{
"name": "TaxonDetails for taxon with Wikipedia content renders Wikipedia content form API response",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > for taxon with Wikipedia content"
},
{
"name": "TaxonDetails for taxon with Wikipedia content navigates to Wikipedia on button press",
"duration": 55,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetails.test.js > TaxonDetails > for taxon with Wikipedia content"
},
{
"name": "automatic sync while user is logged out should not fetch remote observations or deletions when user is logged out",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged out"
},
{
"name": "automatic sync while user is logged out should delete local observations without making a server call",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged out"
},
{
"name": "automatic sync while user is logged in fetch remote deletions should fetch deleted observations from server",
"duration": 54,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged in > fetch remote deletions"
},
{
"name": "automatic sync while user is logged in handle local deletions should not make deletion API call for unsynced observations",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged in > handle local deletions"
},
{
"name": "automatic sync while user is logged in handle local deletions should make deletion API call for previously synced observations",
"duration": 61,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged in > handle local deletions"
},
{
"name": "automatic sync while user is logged in should fetch remote observations from server in automatic sync",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged in"
},
{
"name": "automatic sync while user is logged in should not create upload queue",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/useSyncObservations.test.js",
"retries": 0,
"flaky": false,
"suite": "useSyncObservations.test.js > automatic sync while user is logged in"
},
{
"name": "uploadObservation should start and complete progress tracking",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should validate the API token",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should throw an error if no API token is available",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should prepare the observation for upload",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should create a new observation if it was not previously synced",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should update an existing observation if it was previously synced",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should call uploadObservationMedia with correct parameters",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should call attachMediaToObservation with correct parameters after observation creation",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should mark the record as uploaded after media is attached",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should return the API response",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should throw an error if observation creation fails",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should throw an error if media upload fails",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should throw an error if media attachment fails",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should not complete progress tracking when errors occur",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should throw an error when observation creation returns null response",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "uploadObservation should pass custom options to API calls",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/observationUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "observationUploader.test.js > uploadObservation"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon for species",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon w/o common name",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon w/o common name and no species",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon for a subfamily",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon for subspecies",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon for improperly capitalized common name",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first renders correct taxon for species in grid view",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when common name is first displays correct capitalization for multiple lexicons",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when common name is first"
},
{
"name": "DisplayTaxonName when scientific name is first renders correct taxon for species",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when scientific name is first"
},
{
"name": "DisplayTaxonName when scientific name is first renders correct taxon w/o common name",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when scientific name is first"
},
{
"name": "DisplayTaxonName when scientific name is first renders correct taxon w/o common name and no species",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when scientific name is first"
},
{
"name": "DisplayTaxonName when scientific name is first renders correct taxon for species",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when scientific name is first"
},
{
"name": "DisplayTaxonName when scientific name is first renders correct taxon for species in grid view",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when scientific name is first"
},
{
"name": "DisplayTaxonName when only scientific name renders correct taxon for species",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when only scientific name"
},
{
"name": "DisplayTaxonName when only scientific name renders correct taxon w/o common name",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when only scientific name"
},
{
"name": "DisplayTaxonName when only scientific name renders correct taxon w/o common name and no species",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when only scientific name"
},
{
"name": "DisplayTaxonName when only scientific name renders correct taxon for species",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when only scientific name"
},
{
"name": "DisplayTaxonName when only scientific name renders correct taxon for species in grid view",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when only scientific name"
},
{
"name": "DisplayTaxonName when taxon is a Realm object fills in a missing genus rank from the rank_level",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when taxon is a Realm object"
},
{
"name": "DisplayTaxonName when taxon is undefined it displays fallback text",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when taxon is undefined"
},
{
"name": "DisplayTaxonName when displayed as plain text within a Trans component it displays common name followed by scientific name",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when displayed as plain text within a Trans component"
},
{
"name": "DisplayTaxonName when displayed as plain text within a Trans component it displays scientific name followed by common name",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when displayed as plain text within a Trans component"
},
{
"name": "DisplayTaxonName when displayed as plain text within a Trans component it displays scientific name only",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/DisplayTaxonName.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxonName.test.js > DisplayTaxonName > when displayed as plain text within a Trans component"
},
{
"name": "PhotoSharing Share Single Photo should handle single photo in default mode",
"duration": 97,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Single Photo"
},
{
"name": "PhotoSharing Share Single Photo should handle single photo in advanced mode",
"duration": 110,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Single Photo"
},
{
"name": "PhotoSharing Share Single Photo should handle observation creation error",
"duration": 76,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Single Photo"
},
{
"name": "PhotoSharing Share Single Photo should handle photo with no description",
"duration": 86,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Single Photo"
},
{
"name": "PhotoSharing Share Multiple Photos should navigate to GroupPhotos for multiple photos",
"duration": 18,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Multiple Photos"
},
{
"name": "PhotoSharing Share Multiple Photos should filter out non-image files",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Share Multiple Photos"
},
{
"name": "PhotoSharing Back navigation should handle expected behavior for blur/focus navigation",
"duration": 35,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > PhotoSharing > Back navigation"
},
{
"name": "MediaViewer navigation from ObsDetail should show the first photo when tapped",
"duration": 553,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from ObsDetail"
},
{
"name": "MediaViewer navigation from ObsDetail should not show the first photo when second tapped",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from ObsDetail"
},
{
"name": "MediaViewer navigation from ObsDetail should not show delete button",
"duration": 270,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from ObsDetail"
},
{
"name": "MediaViewer navigation from TaxonDetail should show the first photo when tapped",
"duration": 416,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from TaxonDetail"
},
{
"name": "MediaViewer navigation from TaxonDetail should not show delete button",
"duration": 333,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from TaxonDetail"
},
{
"name": "MediaViewer navigation from Suggestions should show the selected photo when tapped",
"duration": 287,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from Suggestions"
},
{
"name": "MediaViewer navigation from Suggestions should not show the currently not selected photo when tapped",
"duration": 324,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from Suggestions"
},
{
"name": "MediaViewer navigation from Suggestions should not show delete button",
"duration": 408,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer navigation > from Suggestions"
},
{
"name": "prepareMediaForUpload should map Photo upload",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should map ObservationPhoto attachment",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should map ObservationPhoto update",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should map ObservationSound upload",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should map ObservationSound attachment",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should throw an error for unsupported media type",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should throw an error for unsupported action",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should throw an error if attach observationId is required but not provided",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "prepareMediaForUpload should throw an error if update observationId is required but not provided",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareMediaForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareMediaForUpload.test.js > prepareMediaForUpload"
},
{
"name": "mediaUploader uploadObservationMedia should upload photos and sounds in parallel",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > uploadObservationMedia"
},
{
"name": "mediaUploader uploadObservationMedia should handle empty media arrays",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > uploadObservationMedia"
},
{
"name": "mediaUploader uploadObservationMedia should handle photos that need updates",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > uploadObservationMedia"
},
{
"name": "mediaUploader uploadObservationMedia should handle missing photo objects gracefully",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > uploadObservationMedia"
},
{
"name": "mediaUploader attachMediaToObservation should attach photos and sounds to an observation",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > attachMediaToObservation"
},
{
"name": "mediaUploader attachMediaToObservation should handle empty media arrays",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > attachMediaToObservation"
},
{
"name": "mediaUploader filterMediaForUpload should correctly filter media for upload",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > filterMediaForUpload"
},
{
"name": "mediaUploader progress tracking should track progress for upload evidence operations",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > progress tracking"
},
{
"name": "mediaUploader progress tracking should track progress for attach operations",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > progress tracking"
},
{
"name": "mediaUploader error handling should handle API errors gracefully",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > error handling"
},
{
"name": "mediaUploader error handling should filter out null photos",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/mediaUploader.test.js",
"retries": 0,
"flaky": false,
"suite": "mediaUploader.test.js > mediaUploader > error handling"
},
{
"name": "formatApiDatetime in default locale should return missing date string if no date is present",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return missing date string if date is empty",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized date when a date string is passed in",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized datetime when a datetime string is passed in",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized datetime for a remote observation created_at date",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized datetime for a remote identification created_at date",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized datetime for a remote comment created_at date",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return the date in the local time zone by default",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return the date in a requested time zone",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should return a localized datetime for a local observation created_at date",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in default locale should optionally show the date in the original time zone",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in default locale"
},
{
"name": "formatApiDatetime in es-MX should return a localized date when a date string is passed in",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatApiDatetime > in es-MX"
},
{
"name": "getNowISO should return a valid ISO8601 string",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > getNowISO"
},
{
"name": "getNowISO should not have a time zone",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > getNowISO"
},
{
"name": "formatISONoSeconds should not include seconds",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatISONoSeconds"
},
{
"name": "formatDifferenceForHumans should show difference in minutes",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show difference in hours",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show difference in days",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show not show fractional days",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show difference in weeks",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show not show fractional weeks",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show day and month if over 30 days ago but still this year",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "formatDifferenceForHumans should show full date for prior years",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/dateAndTime.test.js",
"retries": 0,
"flaky": false,
"suite": "dateAndTime.test.js > formatDifferenceForHumans"
},
{
"name": "logged in from MyObs from TaxonDetails should show observations view and navigate back to TaxonDetails",
"duration": 875,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from MyObs > from TaxonDetails"
},
{
"name": "logged in from MyObs from UserProfile observations button should show observations view and navigate back to UserProfile",
"duration": 498,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from MyObs > from UserProfile observations button"
},
{
"name": "logged in from MyObs from UserProfile species button should show species view and navigate back to UserProfile",
"duration": 362,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from MyObs > from UserProfile species button"
},
{
"name": "logged in from bottom tab navigator Explore button from RootExplore -> X -> Explore -> back should navigate from TaxonDetails to Explore and back to TaxonDetails",
"duration": 450,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from bottom tab navigator Explore button > from RootExplore -> X -> Explore -> back"
},
{
"name": "logged in from bottom tab navigator Explore button from RootExplore -> X -> Explore -> back should navigate from UserProfile to Explore and back to UserProfile",
"duration": 561,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from bottom tab navigator Explore button > from RootExplore -> X -> Explore -> back"
},
{
"name": "logged in from bottom tab navigator Explore button without location permissions should default to global species view and not have a back button",
"duration": 97,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from bottom tab navigator Explore button > without location permissions"
},
{
"name": "logged in from bottom tab navigator Explore button with location permissions should default to nearby location",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/Explore.test.js",
"retries": 0,
"flaky": false,
"suite": "Explore.test.js > logged in > from bottom tab navigator Explore button > with location permissions"
},
{
"name": "ActivityHeaderKebabMenu renders kebab menu buttons",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for non-withdrawn id from current user",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for withdrawn id from current user",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for comment from current user",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders WithdrawIDSheet when withdraw is pressed",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders delete comment sheet when delete comment is pressed",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders kebab menu buttons",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for non-withdrawn id from current user",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for withdrawn id from current user",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders correct kebab menu for comment from current user",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders WithdrawIDSheet when withdraw is pressed",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "ActivityHeaderKebabMenu renders delete comment sheet when delete comment is pressed",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityHeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityHeaderKebabMenu.test.js > ActivityHeaderKebabMenu"
},
{
"name": "DetailsTab should show description of observation",
"duration": 60,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should display map if user is online",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should show tiles on map for given taxon",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should not show tiles for observation with no taxon id",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should display current location coordinates",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should show data quality options",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should display DQA button if current user is logged in",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should not display DQA button if current user is logged out",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should not display projects section if observation belongs to zero projects",
"duration": 35,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "DetailsTab should display project count from both collection & traditional projects ",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DetailsTab.test.js",
"retries": 0,
"flaky": false,
"suite": "DetailsTab.test.js > DetailsTab"
},
{
"name": "MyObservationsSimple renders an observation",
"duration": 113,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple"
},
{
"name": "MyObservationsSimple renders multiple observations",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple"
},
{
"name": "MyObservationsSimple render grid view",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple"
},
{
"name": "MyObservationsSimple grid view portrait orientation on a phone should have 2 columns",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple > grid view > portrait orientation > on a phone"
},
{
"name": "MyObservationsSimple grid view landscape orientation on a phone should have 2 columns",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple > grid view > landscape orientation > on a phone"
},
{
"name": "LanguageSettings uses locale preference of the local device",
"duration": 41,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/LanguageSettings.test.js",
"retries": 0,
"flaky": false,
"suite": "LanguageSettings.test.js > LanguageSettings"
},
{
"name": "LanguageSettings when signed in as Russian language user uses locale preference from server",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/LanguageSettings.test.js",
"retries": 0,
"flaky": false,
"suite": "LanguageSettings.test.js > LanguageSettings > when signed in as Russian language user"
},
{
"name": "LanguageSettings when signed in as Russian language user allows change to Swedish and requests remote locale change",
"duration": 128,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/LanguageSettings.test.js",
"retries": 0,
"flaky": false,
"suite": "LanguageSettings.test.js > LanguageSettings > when signed in as Russian language user"
},
{
"name": "LanguageSettings when signed in as Russian language user reverts to system locale on sign out",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/LanguageSettings.test.js",
"retries": 0,
"flaky": false,
"suite": "LanguageSettings.test.js > LanguageSettings > when signed in as Russian language user"
},
{
"name": "SavedMatch should not show learn more button when offline",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/SavedMatch.test.js",
"retries": 0,
"flaky": false,
"suite": "SavedMatch.test.js > SavedMatch"
},
{
"name": "SavedMatch should not show map section for no latitude",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/SavedMatch.test.js",
"retries": 0,
"flaky": false,
"suite": "SavedMatch.test.js > SavedMatch"
},
{
"name": "SavedMatch should show map section when latitude is present",
"duration": 84,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/SavedMatch.test.js",
"retries": 0,
"flaky": false,
"suite": "SavedMatch.test.js > SavedMatch"
},
{
"name": "DQA Vote Buttons renders DQA vote buttons",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/DataQualityAssesment/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > DQA Vote Buttons"
},
{
"name": "DQA Vote Buttons calls api when DQA disagree button is pressed",
"duration": 51,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/DataQualityAssesment/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > DQA Vote Buttons"
},
{
"name": "DQA Vote Buttons calls api when DQA agree button is pressed",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/DataQualityAssesment/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > DQA Vote Buttons"
},
{
"name": "MyObservationsSimple when signed out displays correct header",
"duration": 85,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/MyObservationsSimple.test.js",
"retries": 0,
"flaky": false,
"suite": "MyObservationsSimple.test.js > MyObservationsSimple > when signed out"
},
{
"name": "AddObsButton navigates user to AI camera",
"duration": 36,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > AddObsButton"
},
{
"name": "AddObsButton opens model on long press",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > AddObsButton"
},
{
"name": "with advanced user layout opens AddObsBottomSheet",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > with advanced user layout"
},
{
"name": "with advanced user layout navigates user to obs edit with no evidence",
"duration": 18,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > with advanced user layout"
},
{
"name": "with advanced user layout does not open model on long press",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > with advanced user layout"
},
{
"name": "with advanced user layout with advanced AICamera-only setting opens model on long press",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/navigation/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > with advanced user layout > with advanced AICamera-only setting"
},
{
"name": "Sharing photos into the app should handle iOS photo share on app launch",
"duration": 121,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > Sharing photos into the app"
},
{
"name": "Sharing photos into the app should handle Android photo share on app launch",
"duration": 56,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/PhotoSharing.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoSharing.test.js > Sharing photos into the app"
},
{
"name": "MediaViewer without media should not have accessibility errors",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > without media"
},
{
"name": "MediaViewer without media should not have any CustomImageZoom components",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > without media"
},
{
"name": "MediaViewer with media with one photo should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > with one photo"
},
{
"name": "MediaViewer with media with one photo should have a CustomImageZoom component",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > with one photo"
},
{
"name": "MediaViewer with media with multiple photos should show the image specified by the uri prop",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > with multiple photos"
},
{
"name": "MediaViewer with media when editable should show the delete button",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when editable"
},
{
"name": "MediaViewer with media when editable should not show AttributionButton",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when editable"
},
{
"name": "MediaViewer with media when not editable should not show the delete button",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when not editable"
},
{
"name": "MediaViewer with media when not editable should show that a photographer reserves all rights",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when not editable"
},
{
"name": "MediaViewer with media when not editable should show that a photographer has applied a license",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when not editable"
},
{
"name": "MediaViewer with media when not editable should not render the AttributionButton if attribution is not present",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when not editable"
},
{
"name": "MediaViewer with media when not editable should render the AttributionButton if attribution is present",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MediaViewer/MediaViewer.test.js",
"retries": 0,
"flaky": false,
"suite": "MediaViewer.test.js > MediaViewer > with media > when not editable"
},
{
"name": "Data Quality Assessment renders correct quality grade status",
"duration": 51,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct quality grade status title",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct quality grade status description",
"duration": 18,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct metric titles",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct metric vote titles",
"duration": 48,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders about section",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct quality grade status",
"duration": 42,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct quality grade status title",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct quality grade status description",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct metric titles",
"duration": 36,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders correct metric vote titles",
"duration": 43,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "Data Quality Assessment renders about section",
"duration": 51,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DataQualityAssessment.test.js",
"retries": 0,
"flaky": false,
"suite": "DataQualityAssessment.test.js > Data Quality Assessment"
},
{
"name": "GroupPhotosContainer combines photos",
"duration": 54,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoImporter/GroupPhotosContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "GroupPhotosContainer.test.js > GroupPhotosContainer"
},
{
"name": "GroupPhotosContainer combines previously combined photos",
"duration": 134,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoImporter/GroupPhotosContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "GroupPhotosContainer.test.js > GroupPhotosContainer"
},
{
"name": "GroupPhotosContainer separates combined photos",
"duration": 78,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/PhotoImporter/GroupPhotosContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "GroupPhotosContainer.test.js > GroupPhotosContainer"
},
{
"name": "FilterModal should not have accessibility errors",
"duration": 92,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/Modals/FilterModal.test.js",
"retries": 0,
"flaky": false,
"suite": "FilterModal.test.js > FilterModal"
},
{
"name": "ProjectDetails should not have accessibility errors",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails displays project details",
"duration": 152,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails renders when project has no description",
"duration": 34,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails should display date range if collection project has date range",
"duration": 39,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails should display date range if collection project has no date range",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails should display project type if project is traditional project",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ProjectDetails should display date range if umbrella project has date range",
"duration": 55,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectDetails.test.js > ProjectDetails"
},
{
"name": "ActivityTab renders",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityTab.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityTab.test.js > ActivityTab"
},
{
"name": "ActivityItem renders name of identification taxon",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem renders agree button if user is logged in",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem does not render agree button if user is logged out",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem does not render agree button on second taxon display",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem shows agree sheet with correct taxon",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem renders withdrawn id label",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem should not show hidden content",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem should show unhidden content",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "TaxonGridItem should be accessible",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/TaxonGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonGridItem.test.js > TaxonGridItem"
},
{
"name": "TaxonGridItem should navigate to user profile on tap",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/TaxonGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonGridItem.test.js > TaxonGridItem"
},
{
"name": "OtherDataSection has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/OtherDataSection.test.js",
"retries": 0,
"flaky": false,
"suite": "OtherDataSection.test.js > OtherDataSection"
},
{
"name": "OtherDataSection opens notes sheet when notes dropdown is tapped",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/OtherDataSection.test.js",
"retries": 0,
"flaky": false,
"suite": "OtherDataSection.test.js > OtherDataSection"
},
{
"name": "OtherDataSection opens captive sheet when captive dropdown is tapped",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/OtherDataSection.test.js",
"retries": 0,
"flaky": false,
"suite": "OtherDataSection.test.js > OtherDataSection"
},
{
"name": "OtherDataSection opens geoprivacy sheet when geoprivacy dropdown is tapped",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/OtherDataSection.test.js",
"retries": 0,
"flaky": false,
"suite": "OtherDataSection.test.js > OtherDataSection"
},
{
"name": "IconicTaxonChooser should be accessible",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/IconicTaxonChooser.test.js",
"retries": 0,
"flaky": false,
"suite": "IconicTaxonChooser.test.js > IconicTaxonChooser"
},
{
"name": "IconicTaxonChooser should show an iconic taxa as selected",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/IconicTaxonChooser.test.js",
"retries": 0,
"flaky": false,
"suite": "IconicTaxonChooser.test.js > IconicTaxonChooser"
},
{
"name": "Map should be accessible",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Map.test.js",
"retries": 0,
"flaky": false,
"suite": "Map.test.js > Map"
},
{
"name": "Map displays filtered observations on map",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Map.test.js",
"retries": 0,
"flaky": false,
"suite": "Map.test.js > Map"
},
{
"name": "Map displays location indicator when given an observation w/ lat/lng",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Map.test.js",
"retries": 0,
"flaky": false,
"suite": "Map.test.js > Map"
},
{
"name": "useCurrentUser should return current user",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useCurrentUser.test.js",
"retries": 0,
"flaky": false,
"suite": "useCurrentUser.test.js > useCurrentUser"
},
{
"name": "AddObsButton should not have accessibility errors",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > AddObsButton"
},
{
"name": "AddObsButton renders correctly",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > AddObsButton"
},
{
"name": "AddObsButton does not render tooltip in default state",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > AddObsButton"
},
{
"name": "shows tooltip to logged out users with 2 observations",
"duration": 529,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > shows tooltip"
},
{
"name": "shows tooltip to logged in users with less than 50 observations",
"duration": 521,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > shows tooltip"
},
{
"name": "shows tooltip to new users only after they dismissed the account creation card",
"duration": 544,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > shows tooltip"
},
{
"name": "shows tooltip to logged in users with more than 50 observations after card dismissal",
"duration": 536,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsButton.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsButton.test.js > shows tooltip"
},
{
"name": "CustomTabBar should not have accessibility errors",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar"
},
{
"name": "CustomTabBar should display person icon while user is logged out",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar"
},
{
"name": "CustomTabBar should display avatar while user is logged in",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar"
},
{
"name": "CustomTabBar should display person icon when connectivity is low",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar"
},
{
"name": "CustomTabBar with advanced user layout should render correctly",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar with advanced user layout"
},
{
"name": "CustomTabBar with advanced user layout should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/BottomTabNavigator/CustomTabBar.test.js",
"retries": 0,
"flaky": false,
"suite": "CustomTabBar.test.js > CustomTabBar with advanced user layout"
},
{
"name": "Heading2 renders correctly",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Heading2.test.js",
"retries": 0,
"flaky": false,
"suite": "Heading2.test.js > Heading2"
},
{
"name": "useWatchPosition with inaccurate location should be loading by default",
"duration": 106,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useWatchPosition.test.js",
"retries": 0,
"flaky": false,
"suite": "useWatchPosition.test.js > useWatchPosition with inaccurate location"
},
{
"name": "useWatchPosition with inaccurate location should return a user location",
"duration": 156,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useWatchPosition.test.js",
"retries": 0,
"flaky": false,
"suite": "useWatchPosition.test.js > useWatchPosition with inaccurate location"
},
{
"name": "useWatchPosition with accurate location should stop watching position when target accuracy reached",
"duration": 359,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useWatchPosition.test.js",
"retries": 0,
"flaky": false,
"suite": "useWatchPosition.test.js > useWatchPosition with accurate location"
},
{
"name": "useWatchPosition when shouldn't fetch should not watch position when shouldFetchLocation is false",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useWatchPosition.test.js",
"retries": 0,
"flaky": false,
"suite": "useWatchPosition.test.js > useWatchPosition when shouldn't fetch"
},
{
"name": "Tabs should render correctly",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Tabs/Tabs.test.js",
"retries": 0,
"flaky": false,
"suite": "Tabs.test.js > Tabs"
},
{
"name": "Tabs should not have accessibility errors",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Tabs/Tabs.test.js",
"retries": 0,
"flaky": false,
"suite": "Tabs.test.js > Tabs"
},
{
"name": "Tabs should be clicked and display proper text",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Tabs/Tabs.test.js",
"retries": 0,
"flaky": false,
"suite": "Tabs.test.js > Tabs"
},
{
"name": "Announcements should call inaturalistjs with locale as param",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements"
},
{
"name": "Announcements should not render without announcements",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements"
},
{
"name": "Announcements with announcement should render correctly",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements > with announcement"
},
{
"name": "Announcements with announcement should show body text",
"duration": 41,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements > with announcement"
},
{
"name": "Announcements with announcement should not show dismiss button",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements > with announcement"
},
{
"name": "Announcements with dismissible announcement should show dismiss button",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements > with dismissible announcement"
},
{
"name": "Announcements with multiple announcements show announcement with oldest start date",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/MyObservations/Announcements.test.js",
"retries": 0,
"flaky": false,
"suite": "Announcements.test.js > Announcements > with multiple announcements"
},
{
"name": "ObserverDetails renders observed date of observation in header",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObserverDetails.test.js",
"retries": 0,
"flaky": false,
"suite": "ObserverDetails.test.js > ObserverDetails"
},
{
"name": "CameraContainer should not have accessibility errors",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/CameraContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "CameraContainer.test.js > CameraContainer"
},
{
"name": "CameraContainer should first render with flash disabled",
"duration": 77,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/CameraContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "CameraContainer.test.js > CameraContainer"
},
{
"name": "CameraContainer should change to flash enabled on button press",
"duration": 68,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/CameraContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "CameraContainer.test.js > CameraContainer"
},
{
"name": "Settings should toggle the green observation button from all options -> AICamera",
"duration": 45,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/Settings.test.js",
"retries": 0,
"flaky": false,
"suite": "Settings.test.js > Settings"
},
{
"name": "Settings is logged in should navigate user to iNaturalist settings",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/Settings.test.js",
"retries": 0,
"flaky": false,
"suite": "Settings.test.js > Settings > is logged in"
},
{
"name": "Settings is logged in no internet should not navigate to iNaturalist settings if no internet",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/Settings.test.js",
"retries": 0,
"flaky": false,
"suite": "Settings.test.js > Settings > is logged in > no internet"
},
{
"name": "Settings should change language immediately via language picker via online results",
"duration": 72,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/Settings.test.js",
"retries": 0,
"flaky": false,
"suite": "Settings.test.js > Settings"
},
{
"name": "WithdrawIDSheet renders sheet correctly",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/Sheets/WithdrawIDSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "WithdrawIDSheet.test.js > WithdrawIDSheet"
},
{
"name": "ObsDetailsOverview displays unknown text if no taxon",
"duration": 33,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetailsOverview.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsOverview.test.js > ObsDetailsOverview"
},
{
"name": "ObsDetailsOverview displays taxon",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsDetailsOverview.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsOverview.test.js > ObsDetailsOverview"
},
{
"name": "Projects should display project search results",
"duration": 88,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Projects/Projects.test.js",
"retries": 0,
"flaky": false,
"suite": "Projects.test.js > Projects"
},
{
"name": "Projects should display date range if collection project has date range",
"duration": 77,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Projects/Projects.test.js",
"retries": 0,
"flaky": false,
"suite": "Projects.test.js > Projects"
},
{
"name": "Projects should display project type if collection project has no date range",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Projects/Projects.test.js",
"retries": 0,
"flaky": false,
"suite": "Projects.test.js > Projects"
},
{
"name": "Projects should display project type if project is traditional project",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Projects/Projects.test.js",
"retries": 0,
"flaky": false,
"suite": "Projects.test.js > Projects"
},
{
"name": "Projects should display date range if umbrella project has date range",
"duration": 20,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Projects/Projects.test.js",
"retries": 0,
"flaky": false,
"suite": "Projects.test.js > Projects"
},
{
"name": "StandardCamera deletes a photo on long press",
"duration": 174,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/StandardCamera.test.js",
"retries": 0,
"flaky": false,
"suite": "StandardCamera.test.js > StandardCamera"
},
{
"name": "Checkbox renders reliably",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox renders reliably being checked",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox renders an empty checkbox when isChecked is false",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox renders a green filled checkbox when isChecked is true",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox changes value when user presses checkbox being not checked",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox changes value when user presses checkbox being checked",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "Checkbox renders text and changes value when user presses text",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Checkbox.test.js",
"retries": 0,
"flaky": false,
"suite": "Checkbox.test.js > Checkbox"
},
{
"name": "MoreSection should display DQA button if current user is logged in",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MoreSection/MoreSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MoreSection.test.js > MoreSection"
},
{
"name": "MoreSection should not display DQA button if current user is logged out",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MoreSection/MoreSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MoreSection.test.js > MoreSection"
},
{
"name": "MoreSection should not display projects button if observation belongs to zero projects",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MoreSection/MoreSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MoreSection.test.js > MoreSection"
},
{
"name": "MoreSection should display projects button if observation belongs to 1+ projects",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MoreSection/MoreSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MoreSection.test.js > MoreSection"
},
{
"name": "MapView should be accessible",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/MapView.test.js",
"retries": 0,
"flaky": false,
"suite": "MapView.test.js > MapView"
},
{
"name": "MapView should hide redo search button by default",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/MapView.test.js",
"retries": 0,
"flaky": false,
"suite": "MapView.test.js > MapView"
},
{
"name": "MapView should dispatch SET_EXPLORE_LOCATION when current location button is pressed",
"duration": 41,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/MapView.test.js",
"retries": 0,
"flaky": false,
"suite": "MapView.test.js > MapView"
},
{
"name": "MapView should dispatch requestLocationPermissions when current location button is pressed and user has not given permissions",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/MapView.test.js",
"retries": 0,
"flaky": false,
"suite": "MapView.test.js > MapView"
},
{
"name": "MapView should show loading indicator when isLoading is true",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/MapView.test.js",
"retries": 0,
"flaky": false,
"suite": "MapView.test.js > MapView"
},
{
"name": "PhotoCount renders correctly",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PhotoCount/PhotoCount.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCount.test.js > PhotoCount"
},
{
"name": "PhotoCount when photo count equal to 0 should not render",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PhotoCount/PhotoCount.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCount.test.js > PhotoCount > when photo count equal to 0"
},
{
"name": "PhotoCount when photo count is greater than 0 when photo count is greater than 100 renders photo count value equal to 99",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PhotoCount/PhotoCount.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCount.test.js > PhotoCount > when photo count is greater than 0 > when photo count is greater than 100"
},
{
"name": "PhotoCount when photo count is greater than 0 when photo count is less than 100 renders the default photo count value",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PhotoCount/PhotoCount.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCount.test.js > PhotoCount > when photo count is greater than 0 > when photo count is less than 100"
},
{
"name": "DatePicker has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DatePicker.test.js",
"retries": 0,
"flaky": false,
"suite": "DatePicker.test.js > DatePicker"
},
{
"name": "DatePicker displays date with no seconds from local observation",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DatePicker.test.js",
"retries": 0,
"flaky": false,
"suite": "DatePicker.test.js > DatePicker"
},
{
"name": "DatePicker displays date with no seconds from remote observation",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DatePicker.test.js",
"retries": 0,
"flaky": false,
"suite": "DatePicker.test.js > DatePicker"
},
{
"name": "DatePicker displays Add Date text when observation has no date",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DatePicker.test.js",
"retries": 0,
"flaky": false,
"suite": "DatePicker.test.js > DatePicker"
},
{
"name": "IdentificationSection should show IDENTIFY button when observation has photos",
"duration": 36,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/IdentificationSection.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationSection.test.js > IdentificationSection"
},
{
"name": "IdentificationSection should not show IDENTIFY button when observation has no photos",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/IdentificationSection.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationSection.test.js > IdentificationSection"
},
{
"name": "IdentificationSection should show correct iconic taxon selection when navigating multiple observations",
"duration": 73,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/IdentificationSection.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationSection.test.js > IdentificationSection"
},
{
"name": "BackButton has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/BackButton.test.js",
"retries": 0,
"flaky": false,
"suite": "BackButton.test.js > BackButton"
},
{
"name": "Button primary should render correctly",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button primary"
},
{
"name": "Button primary has no accessibility errors",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button primary"
},
{
"name": "Button primary when disabled should render correctly",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button primary > when disabled"
},
{
"name": "Button primary when disabled has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button primary > when disabled"
},
{
"name": "Button warning should render correctly",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button warning"
},
{
"name": "Button warning has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button warning"
},
{
"name": "Button warning when disabled should render correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button warning > when disabled"
},
{
"name": "Button warning when disabled has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button warning > when disabled"
},
{
"name": "Button focus should render correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button focus"
},
{
"name": "Button focus has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button focus"
},
{
"name": "Button focus when disabled should render correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button focus > when disabled"
},
{
"name": "Button focus when disabled has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button focus > when disabled"
},
{
"name": "Button neutral should render correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button neutral"
},
{
"name": "Button neutral has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button neutral"
},
{
"name": "Button neutral when disabled should render correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button neutral > when disabled"
},
{
"name": "Button neutral when disabled has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.test.js > Button neutral > when disabled"
},
{
"name": "LanguageSetting should display and allow user to change locales from web list",
"duration": 43,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/LanguageSetting.test.js",
"retries": 0,
"flaky": false,
"suite": "LanguageSetting.test.js > LanguageSetting"
},
{
"name": "useObservationUpdatesWhenFocused should reset state of all observations in realm",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/integration/sharedHooks/useObservationUpdatesWhenFocused.test.js",
"retries": 0,
"flaky": false,
"suite": "useObservationUpdatesWhenFocused.test.js > useObservationUpdatesWhenFocused"
},
{
"name": "ObsStatus displays count for current ids, not withdrawn ids",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsStatus.test.js > ObsStatus"
},
{
"name": "ObsStatus displays comment count",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsStatus.test.js > ObsStatus"
},
{
"name": "ObsDetailsDefaultModeScreensWrapper when showSavedMatch is true renders SavedMatchContainer when observation belongs to current user and is not synced",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetailsDefaultModeScreensWrapper.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsDefaultModeScreensWrapper.test.js > ObsDetailsDefaultModeScreensWrapper > when showSavedMatch is true"
},
{
"name": "ObsDetailsDefaultModeScreensWrapper when showSavedMatch is true renders SavedMatchContainer when observation has no user and is not synced",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetailsDefaultModeScreensWrapper.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsDefaultModeScreensWrapper.test.js > ObsDetailsDefaultModeScreensWrapper > when showSavedMatch is true"
},
{
"name": "ObsDetailsDefaultModeScreensWrapper when showSavedMatch is false renders ObsDetailsDefaultModeContainer when observation is synced",
"duration": 39,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetailsDefaultModeScreensWrapper.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsDefaultModeScreensWrapper.test.js > ObsDetailsDefaultModeScreensWrapper > when showSavedMatch is false"
},
{
"name": "ObsDetailsDefaultModeScreensWrapper when showSavedMatch is false renders ObsDetailsDefaultModeContainer when observation does not belong to current user",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsDetailsDefaultModeScreensWrapper.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsDetailsDefaultModeScreensWrapper.test.js > ObsDetailsDefaultModeScreensWrapper > when showSavedMatch is false"
},
{
"name": "ObserversView should show number of observations a user has",
"duration": 69,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObserversView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObserversView.test.js > ObserversView"
},
{
"name": "PhotoCarousel renders correctly",
"duration": 35,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/PhotoCarousel.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCarousel.test.js > PhotoCarousel"
},
{
"name": "PhotoCarousel renders correctly for large screen",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/PhotoCarousel.test.js",
"retries": 0,
"flaky": false,
"suite": "PhotoCarousel.test.js > PhotoCarousel"
},
{
"name": "DisplayTaxon should be accessible",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/DisplayTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxon.test.js > DisplayTaxon"
},
{
"name": "DisplayTaxon displays an iconic taxon icon when no photo is available",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/DisplayTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxon.test.js > DisplayTaxon"
},
{
"name": "DisplayTaxon displays an iconic taxon photo when no taxon photo is available",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/DisplayTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxon.test.js > DisplayTaxon"
},
{
"name": "DisplayTaxon displays 50% opacity when taxon id is withdrawn",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/DisplayTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "DisplayTaxon.test.js > DisplayTaxon"
},
{
"name": "LocationPicker should display latitude corresponding with location name",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LocationPicker/LocationPicker.test.js",
"retries": 0,
"flaky": false,
"suite": "LocationPicker.test.js > LocationPicker"
},
{
"name": "LocationPicker should show search results when a user changes search text",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LocationPicker/LocationPicker.test.js",
"retries": 0,
"flaky": false,
"suite": "LocationPicker.test.js > LocationPicker"
},
{
"name": "LocationPicker should update map with new place results when a user taps a place in dropdown",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LocationPicker/LocationPicker.test.js",
"retries": 0,
"flaky": false,
"suite": "LocationPicker.test.js > LocationPicker"
},
{
"name": "LocationPicker should not have a minimum zoom level",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LocationPicker/LocationPicker.test.js",
"retries": 0,
"flaky": false,
"suite": "LocationPicker.test.js > LocationPicker"
},
{
"name": "delete observation add observation to deletion queue should handle adding _deleted_at date in realm",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DeleteObservationSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "DeleteObservationSheet.test.js > delete observation > add observation to deletion queue"
},
{
"name": "delete observation cancel deletion should not add _deleted_at date in realm",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DeleteObservationSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "DeleteObservationSheet.test.js > delete observation > cancel deletion"
},
{
"name": "delete observation navigates back when there's only one observation",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DeleteObservationSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "DeleteObservationSheet.test.js > delete observation"
},
{
"name": "delete observation with multiple observations does not navigate back when there's more than one observation",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DeleteObservationSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "DeleteObservationSheet.test.js > delete observation > with multiple observations"
},
{
"name": "delete observation with multiple observations removes observation from state when there's more than one observation",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/DeleteObservationSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "DeleteObservationSheet.test.js > delete observation > with multiple observations"
},
{
"name": "ActivityItem renders name of identification taxon",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem renders agree button if user is logged in",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem does not render agree button if user is logged out",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem does not render agree button on second taxon display",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem shows agree sheet with correct taxon",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem should not show hidden content",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "ActivityItem should show unhidden content",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/ActivityItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityItem.test.js > ActivityItem"
},
{
"name": "FaveButton should survive no currentUser",
"duration": 21,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/FaveButton.test.js",
"retries": 0,
"flaky": false,
"suite": "FaveButton.test.js > FaveButton"
},
{
"name": "FaveButton should survive no currentUser for an observation w/ existing votes",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/FaveButton.test.js",
"retries": 0,
"flaky": false,
"suite": "FaveButton.test.js > FaveButton"
},
{
"name": "List2 renders correctly",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/List2.test.js",
"retries": 0,
"flaky": false,
"suite": "List2.test.js > List2"
},
{
"name": "NotesSection should show description of observation",
"duration": 35,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/NotesSection/NotesSection.test.js",
"retries": 0,
"flaky": false,
"suite": "NotesSection.test.js > NotesSection"
},
{
"name": "EvidenceList should display add evidence button",
"duration": 43,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/EvidenceList.test.js",
"retries": 0,
"flaky": false,
"suite": "EvidenceList.test.js > EvidenceList"
},
{
"name": "EvidenceList should display loading wheel if photo is saving",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/EvidenceList.test.js",
"retries": 0,
"flaky": false,
"suite": "EvidenceList.test.js > EvidenceList"
},
{
"name": "EvidenceList should render all observation photos",
"duration": 38,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/EvidenceList.test.js",
"retries": 0,
"flaky": false,
"suite": "EvidenceList.test.js > EvidenceList"
},
{
"name": "EvidenceList should display an empty list when observation has no observation photos",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/EvidenceList.test.js",
"retries": 0,
"flaky": false,
"suite": "EvidenceList.test.js > EvidenceList"
},
{
"name": "CommunitySection renders",
"duration": 52,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunitySection/CommunitySection.test.js",
"retries": 0,
"flaky": false,
"suite": "CommunitySection.test.js > CommunitySection"
},
{
"name": "ObsEdit should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEdit.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEdit.test.js > ObsEdit"
},
{
"name": "ObsEdit displays the number of photos in global state obsPhotos",
"duration": 155,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEdit.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEdit.test.js > ObsEdit"
},
{
"name": "Suggestions should not have accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "Suggestions should fetch offline suggestions for current photo",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "Suggestions should display empty text if no suggestions are found",
"duration": 19,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "Suggestions should allow user to bypass suggestions screen",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "Suggestions should display loading wheel and text when suggestions are loading",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "Suggestions loading from AI camera should display loading wheel and vision result when coming from AICamera",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions > loading from AI camera"
},
{
"name": "Suggestions loading from AI camera should display no vision result if not coming from AICamera",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions > loading from AI camera"
},
{
"name": "Suggestions should create an id when checkmark is pressed",
"duration": 40,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Suggestions.test.js",
"retries": 0,
"flaky": false,
"suite": "Suggestions.test.js > Suggestions"
},
{
"name": "UserList should render first follower in followers list",
"duration": 80,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserList/UserList.test.js",
"retries": 0,
"flaky": false,
"suite": "UserList.test.js > UserList"
},
{
"name": "UserList should render observation count of first follower",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserList/UserList.test.js",
"retries": 0,
"flaky": false,
"suite": "UserList.test.js > UserList"
},
{
"name": "Attribution should show attributions",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/Attribution.test.js",
"retries": 0,
"flaky": false,
"suite": "Attribution.test.js > Attribution"
},
{
"name": "TaxonSearch should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/SuggestionsTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "SuggestionsTaxonSearch.test.js > TaxonSearch"
},
{
"name": "TaxonSearch should render inside mocked container",
"duration": 33,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/SuggestionsTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "SuggestionsTaxonSearch.test.js > TaxonSearch"
},
{
"name": "TaxonSearch show taxon search results",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/SuggestionsTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "SuggestionsTaxonSearch.test.js > TaxonSearch"
},
{
"name": "TaxonSearch should render with no initial comment state",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/SuggestionsTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "SuggestionsTaxonSearch.test.js > TaxonSearch"
},
{
"name": "TaxonSearch while loading should not show taxon results",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Suggestions/SuggestionsTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "SuggestionsTaxonSearch.test.js > TaxonSearch > while loading"
},
{
"name": "UserIcon should not have accessibility erros",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "UserIcon.test.js > UserIcon"
},
{
"name": "UserIcon displays user image correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "UserIcon.test.js > UserIcon"
},
{
"name": "UserIcon displays small user image correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "UserIcon.test.js > UserIcon"
},
{
"name": "UserIcon displays active user image correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "UserIcon.test.js > UserIcon"
},
{
"name": "UserIcon shows correct uri for the user icon image",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "UserIcon.test.js > UserIcon"
},
{
"name": "CommentsCount renders default reliably",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/CommentsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "CommentsCount.test.js > CommentsCount"
},
{
"name": "CommentsCount renders white reliably",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/CommentsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "CommentsCount.test.js > CommentsCount"
},
{
"name": "CommentsCount renders filled reliably",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/CommentsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "CommentsCount.test.js > CommentsCount"
},
{
"name": "CommentsCount should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/CommentsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "CommentsCount.test.js > CommentsCount"
},
{
"name": "RadioButtonSheet should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Sheets/RadioButtonSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "RadioButtonSheet.test.js > RadioButtonSheet"
},
{
"name": "ObsUploadStatus displays a pending upload for an unsynced observation",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsUploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsUploadStatus.test.js > ObsUploadStatus"
},
{
"name": "ObsUploadStatus displays a pending upload for a locally edited observation",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsUploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsUploadStatus.test.js > ObsUploadStatus"
},
{
"name": "ObsUploadStatus displays an upload in progress",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsUploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsUploadStatus.test.js > ObsUploadStatus"
},
{
"name": "ObsUploadStatus displays a completed upload",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsUploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsUploadStatus.test.js > ObsUploadStatus"
},
{
"name": "Heading3 renders correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Heading3.test.js",
"retries": 0,
"flaky": false,
"suite": "Heading3.test.js > Heading3"
},
{
"name": "IdentificationsCount renders default reliably",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/IdentificationsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationsCount.test.js > IdentificationsCount"
},
{
"name": "IdentificationsCount renders white reliably",
"duration": 26,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/IdentificationsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationsCount.test.js > IdentificationsCount"
},
{
"name": "IdentificationsCount renders filled reliably",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/IdentificationsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationsCount.test.js > IdentificationsCount"
},
{
"name": "IdentificationsCount should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/IdentificationsCount.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentificationsCount.test.js > IdentificationsCount"
},
{
"name": "ProjectList should display a list with all project titles",
"duration": 91,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ProjectList/ProjectListContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectListContainer.test.js > ProjectList"
},
{
"name": "IdentifiersView should show a footer loading wheel when new identifiers are fetched",
"duration": 42,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "IdentifiersView should show no internet text when user is offline",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "IdentifiersView should show a footer view when loading wheel is hidden",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "IdentifiersView should show loading wheel before initial data loads",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "IdentifiersView should show no results text when no data is found",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "IdentifiersView should show number of identifications a user has",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/IdentifiersView.test.js",
"retries": 0,
"flaky": false,
"suite": "IdentifiersView.test.js > IdentifiersView"
},
{
"name": "CommunityTaxon displays unknown text if no taxon",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunityTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "CommunityTaxon.test.js > CommunityTaxon"
},
{
"name": "CommunityTaxon displays taxon",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunityTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "CommunityTaxon.test.js > CommunityTaxon"
},
{
"name": "CommunityTaxon navigates to taxon details on button press",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/CommunityTaxon.test.js",
"retries": 0,
"flaky": false,
"suite": "CommunityTaxon.test.js > CommunityTaxon"
},
{
"name": "UploadStatus displays start icon when upload is unsynced and not queued",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UploadStatus/UploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "UploadStatus.test.js > UploadStatus"
},
{
"name": "UploadStatus displays rotating circle progress when upload is queued but not started",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UploadStatus/UploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "UploadStatus.test.js > UploadStatus"
},
{
"name": "UploadStatus displays progress bar when progress is greater than 5%",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UploadStatus/UploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "UploadStatus.test.js > UploadStatus"
},
{
"name": "UploadStatus displays complete icon when progress is 1",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UploadStatus/UploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "UploadStatus.test.js > UploadStatus"
},
{
"name": "UploadStatus has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UploadStatus/UploadStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "UploadStatus.test.js > UploadStatus"
},
{
"name": "ObservationsView should show a footer loading wheel when new observations are fetched",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObservationsView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationsView.test.js > ObservationsView"
},
{
"name": "ObservationsView should show no internet text when user is offline",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObservationsView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationsView.test.js > ObservationsView"
},
{
"name": "ObservationsView should show a footer view when loading wheel is hidden",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObservationsView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationsView.test.js > ObservationsView"
},
{
"name": "ObservationsView should show loading wheel before initial data loads",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObservationsView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationsView.test.js > ObservationsView"
},
{
"name": "ObservationsView should show no results text when no data is found",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/ObservationsView.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationsView.test.js > ObservationsView"
},
{
"name": "Body4 renders correctly",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Body4.test.js",
"retries": 0,
"flaky": false,
"suite": "Body4.test.js > Body4"
},
{
"name": "Body1 renders correctly",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Body1.test.js",
"retries": 0,
"flaky": false,
"suite": "Body1.test.js > Body1"
},
{
"name": "email logs button should open the native email client",
"duration": 49,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Developer.test.js",
"retries": 0,
"flaky": false,
"suite": "Developer.test.js > email logs button"
},
{
"name": "PermissionGate should show the GRANT PERMISSION button when permission unknown",
"duration": 23,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PermissionGate.test.js",
"retries": 0,
"flaky": false,
"suite": "PermissionGate.test.js > PermissionGate"
},
{
"name": "PermissionGate should show the GRANT PERMISSION button when permission blocked",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PermissionGate.test.js",
"retries": 0,
"flaky": false,
"suite": "PermissionGate.test.js > PermissionGate"
},
{
"name": "PermissionGate should show the OPEN SETTINGS button when permission blocked",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PermissionGate.test.js",
"retries": 0,
"flaky": false,
"suite": "PermissionGate.test.js > PermissionGate"
},
{
"name": "PermissionGate should show the blockedPrompt when permission blocked",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PermissionGate.test.js",
"retries": 0,
"flaky": false,
"suite": "PermissionGate.test.js > PermissionGate"
},
{
"name": "PermissionGate should be accessible",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/PermissionGate.test.js",
"retries": 0,
"flaky": false,
"suite": "PermissionGate.test.js > PermissionGate"
},
{
"name": "Subheading1 renders correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Subheading1.test.js",
"retries": 0,
"flaky": false,
"suite": "Subheading1.test.js > Subheading1"
},
{
"name": "DQA Vote Buttons for wild metric renders correct DQA user vote",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DQAVoteButtons.test.js",
"retries": 0,
"flaky": false,
"suite": "DQAVoteButtons.test.js > DQA Vote Buttons for wild metric"
},
{
"name": "DQA Vote Buttons for wild metric renders correct DQA user vote number",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DQAVoteButtons.test.js",
"retries": 0,
"flaky": false,
"suite": "DQAVoteButtons.test.js > DQA Vote Buttons for wild metric"
},
{
"name": "DQA Vote Buttons for needs_id metric renders correct DQA user vote",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DQAVoteButtons.test.js",
"retries": 0,
"flaky": false,
"suite": "DQAVoteButtons.test.js > DQA Vote Buttons for needs_id metric"
},
{
"name": "DQA Vote Buttons for needs_id metric renders correct DQA user vote number",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/DQAVoteButtons.test.js",
"retries": 0,
"flaky": false,
"suite": "DQAVoteButtons.test.js > DQA Vote Buttons for needs_id metric"
},
{
"name": "MapSection should display map if user is online",
"duration": 39,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MapSection/MapSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MapSection.test.js > MapSection"
},
{
"name": "MapSection should show tiles on map for given taxon",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MapSection/MapSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MapSection.test.js > MapSection"
},
{
"name": "MapSection should not show tiles for observation with no taxon id",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/MapSection/MapSection.test.js",
"retries": 0,
"flaky": false,
"suite": "MapSection.test.js > MapSection"
},
{
"name": "ProjectRequirements displays project rule months with correct formatting",
"duration": 53,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectRequirements.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectRequirements.test.js > ProjectRequirements"
},
{
"name": "ProjectRequirements displays project rule start time with correct formatting",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectRequirements.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectRequirements.test.js > ProjectRequirements"
},
{
"name": "ProjectRequirements displays project rule date range with correct formatting",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectRequirements.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectRequirements.test.js > ProjectRequirements"
},
{
"name": "ProjectRequirements displays project rule observed on date with correct formatting",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ProjectDetails/ProjectRequirements.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectRequirements.test.js > ProjectRequirements"
},
{
"name": "Body2 renders correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Body2.test.js",
"retries": 0,
"flaky": false,
"suite": "Body2.test.js > Body2"
},
{
"name": "Match should show location permissions button if permissions not granted",
"duration": 56,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Match/Match.test.js",
"retries": 0,
"flaky": false,
"suite": "Match.test.js > Match"
},
{
"name": "Match should not show location permissions button if permissions granted",
"duration": 35,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Match/Match.test.js",
"retries": 0,
"flaky": false,
"suite": "Match.test.js > Match"
},
{
"name": "UserProfile should render inside mocked container for testing",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserProfile/UserProfile.test.js",
"retries": 0,
"flaky": false,
"suite": "UserProfile.test.js > UserProfile"
},
{
"name": "UserProfile should not have accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserProfile/UserProfile.test.js",
"retries": 0,
"flaky": false,
"suite": "UserProfile.test.js > UserProfile"
},
{
"name": "UserProfile renders user profile from API call",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserProfile/UserProfile.test.js",
"retries": 0,
"flaky": false,
"suite": "UserProfile.test.js > UserProfile"
},
{
"name": "UserProfile renders followers and following buttons",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserProfile/UserProfile.test.js",
"retries": 0,
"flaky": false,
"suite": "UserProfile.test.js > UserProfile"
},
{
"name": "UserProfile renders projects button",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserProfile/UserProfile.test.js",
"retries": 0,
"flaky": false,
"suite": "UserProfile.test.js > UserProfile"
},
{
"name": "InlineUser should not have accessibility erros",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser"
},
{
"name": "InlineUser renders reliably",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser"
},
{
"name": "InlineUser displays user handle and image correctly",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser"
},
{
"name": "InlineUser fires onPress handler",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser"
},
{
"name": "InlineUser when user has no icon set displays user handle and fallback image correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser > when user has no icon set"
},
{
"name": "InlineUser when user has no icon set renders reliably",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser > when user has no icon set"
},
{
"name": "InlineUser when offline displays no internet fallback image correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser > when offline"
},
{
"name": "InlineUser when offline renders reliably",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/InlineUser/InlineUser.test.js",
"retries": 0,
"flaky": false,
"suite": "InlineUser.test.js > InlineUser > when offline"
},
{
"name": "Heading5 renders correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Heading5.test.js",
"retries": 0,
"flaky": false,
"suite": "Heading5.test.js > Heading5"
},
{
"name": "Heading1 renders correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Heading1.test.js",
"retries": 0,
"flaky": false,
"suite": "Heading1.test.js > Heading1"
},
{
"name": "AddObsBottomSheet in iOS 9 hides AI camera button on older devices",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsBottomSheetIOS9.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsBottomSheetIOS9.test.js > AddObsBottomSheet in iOS 9"
},
{
"name": "Quality Grade research renders correct grade",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade research"
},
{
"name": "Quality Grade research should render correctly",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade research"
},
{
"name": "Quality Grade research has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade research"
},
{
"name": "Quality Grade needs_id renders correct grade",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade needs_id"
},
{
"name": "Quality Grade needs_id should render correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade needs_id"
},
{
"name": "Quality Grade needs_id has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade needs_id"
},
{
"name": "Quality Grade casual renders correct grade",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade casual"
},
{
"name": "Quality Grade casual should render correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade casual"
},
{
"name": "Quality Grade casual has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/QualityGradeStatus/QualityGradeStatus.test.js",
"retries": 0,
"flaky": false,
"suite": "QualityGradeStatus.test.js > Quality Grade casual"
},
{
"name": "userPrepareStoreAndNavigate savePhotosToPhotoLibrary should call CameraRoll.save three times when given three uris",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/hooks/userPrepareStoreAndNavigate.test.js",
"retries": 0,
"flaky": false,
"suite": "userPrepareStoreAndNavigate.test.js > userPrepareStoreAndNavigate > savePhotosToPhotoLibrary"
},
{
"name": "TaxonDetailsTitle should be accessible with a taxon",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetailsTitle.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetailsTitle.test.js > TaxonDetailsTitle"
},
{
"name": "TaxonDetailsTitle should be accessible without a taxon",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/TaxonDetailsTitle.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonDetailsTitle.test.js > TaxonDetailsTitle"
},
{
"name": "AI Camera shows a taxon prediction when result & rank_level < 40",
"duration": 56,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/AICamera.test.js",
"retries": 0,
"flaky": false,
"suite": "AICamera.test.js > AI Camera"
},
{
"name": "AI Camera shows scan area text when rank_level > 40",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/AICamera.test.js",
"retries": 0,
"flaky": false,
"suite": "AICamera.test.js > AI Camera"
},
{
"name": "AI Camera shows loading text when model not yet loaded",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/AICamera.test.js",
"retries": 0,
"flaky": false,
"suite": "AICamera.test.js > AI Camera"
},
{
"name": "AI Camera displays taxon photo if taxon exists in realm",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/AICamera.test.js",
"retries": 0,
"flaky": false,
"suite": "AICamera.test.js > AI Camera"
},
{
"name": "AI Camera displays iconic taxon icon if taxon does not exist in realm",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Camera/AICamera.test.js",
"retries": 0,
"flaky": false,
"suite": "AICamera.test.js > AI Camera"
},
{
"name": "Button primary in dark mode should render correctly",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button primary in dark mode"
},
{
"name": "Button primary in dark mode has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button primary in dark mode"
},
{
"name": "Button primary in dark mode when disabled should render correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button primary in dark mode > when disabled"
},
{
"name": "Button primary in dark mode when disabled has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button primary in dark mode > when disabled"
},
{
"name": "Button warning in dark mode should render correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button warning in dark mode"
},
{
"name": "Button warning in dark mode has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button warning in dark mode"
},
{
"name": "Button warning in dark mode when disabled should render correctly",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button warning in dark mode > when disabled"
},
{
"name": "Button warning in dark mode when disabled has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button warning in dark mode > when disabled"
},
{
"name": "Button focus in dark mode should render correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button focus in dark mode"
},
{
"name": "Button focus in dark mode has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button focus in dark mode"
},
{
"name": "Button focus in dark mode when disabled should render correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button focus in dark mode > when disabled"
},
{
"name": "Button focus in dark mode when disabled has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button focus in dark mode > when disabled"
},
{
"name": "Button neutral in dark mode should render correctly",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button neutral in dark mode"
},
{
"name": "Button neutral in dark mode has no accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button neutral in dark mode"
},
{
"name": "Button neutral in dark mode when disabled should render correctly",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button neutral in dark mode > when disabled"
},
{
"name": "Button neutral in dark mode when disabled has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/Button.dark.test.js",
"retries": 0,
"flaky": false,
"suite": "Button.dark.test.js > Button neutral in dark mode > when disabled"
},
{
"name": "ActivityCount renders reliably",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/ActivityCount.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityCount.test.js > ActivityCount"
},
{
"name": "ActivityCount displays the count parameter as text",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/ActivityCount.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityCount.test.js > ActivityCount"
},
{
"name": "ActivityCount should not have accessibility errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ActivityCount/ActivityCount.test.js",
"retries": 0,
"flaky": false,
"suite": "ActivityCount.test.js > ActivityCount"
},
{
"name": "HeaderKebabMenu renders and opens kebab menu share button",
"duration": 29,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/HeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "HeaderKebabMenu.test.js > HeaderKebabMenu"
},
{
"name": "HeaderKebabMenu opens native share dialog with expected url",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/HeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "HeaderKebabMenu.test.js > HeaderKebabMenu"
},
{
"name": "HeaderKebabMenu on Android opens native share dialog with expected message",
"duration": 10,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/HeaderKebabMenu.test.js",
"retries": 0,
"flaky": false,
"suite": "HeaderKebabMenu.test.js > HeaderKebabMenu > on Android"
},
{
"name": "ObsMedia should show photo with given url",
"duration": 44,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsMedia.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsMedia.test.js > ObsMedia"
},
{
"name": "ObsMedia should show photo with given url on tablet",
"duration": 62,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetails/ObsMedia.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsMedia.test.js > ObsMedia"
},
{
"name": "INatIcon renders correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/INatIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIcon.test.js > INatIcon"
},
{
"name": "glyphmap is an object",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/INatIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIcon.test.js > glyphmap"
},
{
"name": "glyphmap has icon name as key",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/INatIcon.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIcon.test.js > glyphmap"
},
{
"name": "INatIconButton renders correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIconButton.test.js > INatIconButton"
},
{
"name": "INatIconButton throws an error when it receives an inaccessibly small width",
"duration": 101,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIconButton.test.js > INatIconButton"
},
{
"name": "INatIconButton throws an error when it receives an inaccessibly small height",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIconButton.test.js > INatIconButton"
},
{
"name": "should be accessible if accessibility label is passes as props",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIconButton.test.js"
},
{
"name": "throws an error when no accessibility label is passed into props",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js",
"retries": 0,
"flaky": false,
"suite": "INatIconButton.test.js"
},
{
"name": "ObsMedia should show photo with given url",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsMedia.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsMedia.test.js > ObsMedia"
},
{
"name": "ObsMedia should show photo with given url on tablet",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsDetailsDefaultMode/ObsMedia.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsMedia.test.js > ObsMedia"
},
{
"name": "Divider should render correctly",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Divider/Divider.test.js",
"retries": 0,
"flaky": false,
"suite": "Divider.test.js > Divider"
},
{
"name": "ProjectListItem should be accessible",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ProjectList/ProjectListItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ProjectListItem.test.js > ProjectListItem"
},
{
"name": "Body3 renders correctly",
"duration": 24,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Body3.test.js",
"retries": 0,
"flaky": false,
"suite": "Body3.test.js > Body3"
},
{
"name": "ObsEditHeader has no accessibility errors",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsEditHeader renders a header title with 1 observation",
"duration": 36,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsEditHeader renders a header title with multiple observations",
"duration": 37,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsEditHeader renders edit header title when observation is saved locally",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsEditHeader renders a kebab menu",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsEditHeader renders a back button",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/ObsEditHeader.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsEditHeader.test.js > ObsEditHeader"
},
{
"name": "ObsGridItem for an observation with a photo should render",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsGridItem.test.js > ObsGridItem > for an observation with a photo"
},
{
"name": "ObsGridItem for an observation with a photo should have photo",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsGridItem.test.js > ObsGridItem > for an observation with a photo"
},
{
"name": "ObsGridItem for an observation without a photo should render",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsGridItem.test.js > ObsGridItem > for an observation without a photo"
},
{
"name": "ObsGridItem for an observation without a photo should have an iconic taxon icon",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationsFlashList/ObsGridItem.test.js",
"retries": 0,
"flaky": false,
"suite": "ObsGridItem.test.js > ObsGridItem > for an observation without a photo"
},
{
"name": "AddObsBottomSheet shows the AI camera button",
"duration": 12,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/AddObsBottomSheet/AddObsBottomSheet.test.js",
"retries": 0,
"flaky": false,
"suite": "AddObsBottomSheet.test.js > AddObsBottomSheet"
},
{
"name": "TaxonResult should render correctly",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/TaxonResult.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonResult.test.js > TaxonResult"
},
{
"name": "BottomButtonsContainer has no accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/BottomButtonsContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "BottomButtonsContainer.test.js > BottomButtonsContainer"
},
{
"name": "BottomButtonsContainer shows save button when user is logged out",
"duration": 16,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/BottomButtonsContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "BottomButtonsContainer.test.js > BottomButtonsContainer"
},
{
"name": "BottomButtonsContainer shows save changes button when user logged in and observation was previously synced",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/BottomButtonsContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "BottomButtonsContainer.test.js > BottomButtonsContainer"
},
{
"name": "BottomButtonsContainer shows save and upload button when user logged in with new observation",
"duration": 11,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/ObsEdit/BottomButtonsContainer.test.js",
"retries": 0,
"flaky": false,
"suite": "BottomButtonsContainer.test.js > BottomButtonsContainer"
},
{
"name": "UserListItem should be accessible",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/UserListItem.test.js",
"retries": 0,
"flaky": false,
"suite": "UserListItem.test.js > UserListItem"
},
{
"name": "Taxonomy renders current taxon",
"duration": 27,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/Taxonomy.test.js",
"retries": 0,
"flaky": false,
"suite": "Taxonomy.test.js > Taxonomy"
},
{
"name": "Taxonomy renders all ancestors",
"duration": 15,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/Taxonomy.test.js",
"retries": 0,
"flaky": false,
"suite": "Taxonomy.test.js > Taxonomy"
},
{
"name": "Taxonomy renders button to optionally show children",
"duration": 14,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/Taxonomy.test.js",
"retries": 0,
"flaky": false,
"suite": "Taxonomy.test.js > Taxonomy"
},
{
"name": "Taxonomy shows children when button pressed",
"duration": 18,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/TaxonDetails/Taxonomy.test.js",
"retries": 0,
"flaky": false,
"suite": "Taxonomy.test.js > Taxonomy"
},
{
"name": "DateDisplay should be accessible",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/DateDisplay.test.js",
"retries": 0,
"flaky": false,
"suite": "DateDisplay.test.js > DateDisplay"
},
{
"name": "ObservationLocation should be accessible",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation should format location correctly from place_guess",
"duration": 13,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation should format location correctly from latitude/longitude",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation should handle latitude/longitude w/ zero",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation should show no location if unknown",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation renders obscured icon if obscured",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation renders private icon if private",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "ObservationLocation renders loaction icon if not obscured",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/ObservationLocation.test.js",
"retries": 0,
"flaky": false,
"suite": "ObservationLocation.test.js > ObservationLocation"
},
{
"name": "useTaxonSearch should return iconic taxa by default",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxonSearch.test.js > useTaxonSearch"
},
{
"name": "useTaxonSearch should request remote taxa with a query",
"duration": 9,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxonSearch.test.js > useTaxonSearch"
},
{
"name": "useTaxonSearch should request local taxa with a query if no remote taxa",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxonSearch.test.js > useTaxonSearch"
},
{
"name": "useTaxonSearch should try to save remote taxa to Realm",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxonSearch.test.js > useTaxonSearch"
},
{
"name": "useTaxonSearch should not request local taxa if remote taxa exist",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/sharedHooks/useTaxonSearch.test.js",
"retries": 0,
"flaky": false,
"suite": "useTaxonSearch.test.js > useTaxonSearch"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest should approve a request for the source url",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest should approve a request for an anchor on the source url",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest external browser should try to open for any domain not on the allowlist",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > external browser"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest external browser should not try to open for any domain on the allowlist",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > external browser"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest external browser should try to open for any domain on the allowlist for clicks",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > external browser"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest external browser should not try to open for pathnames specified in params on click",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > external browser"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest setSource should update the source when navigating the top frame",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > setSource"
},
{
"name": "FullPageWebView onShouldStartLoadWithRequest setSource should not update the source for iframe requests",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/FullPageWebView/FullPageWebView.test.js",
"retries": 0,
"flaky": false,
"suite": "FullPageWebView.test.js > FullPageWebView > onShouldStartLoadWithRequest > setSource"
},
{
"name": "Subheading2 renders correctly",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Subheading2.test.js",
"retries": 0,
"flaky": false,
"suite": "Subheading2.test.js > Subheading2"
},
{
"name": "OfflineNotice should throw without an onPress prop",
"duration": 139,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/OfflineNotice.test.js",
"retries": 0,
"flaky": false,
"suite": "OfflineNotice.test.js > OfflineNotice"
},
{
"name": "OfflineNotice should be pressable",
"duration": 25,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/OfflineNotice.test.js",
"retries": 0,
"flaky": false,
"suite": "OfflineNotice.test.js > OfflineNotice"
},
{
"name": "Heading4 renders correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/Typography/Heading4.test.js",
"retries": 0,
"flaky": false,
"suite": "Heading4.test.js > Heading4"
},
{
"name": "HideView should show component correctly",
"duration": 6,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/HideView.test.js",
"retries": 0,
"flaky": false,
"suite": "HideView.test.js > HideView"
},
{
"name": "HideView should hide component correctly",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/HideView.test.js",
"retries": 0,
"flaky": false,
"suite": "HideView.test.js > HideView"
},
{
"name": "HideView should not render hidden component",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/HideView.test.js",
"retries": 0,
"flaky": false,
"suite": "HideView.test.js > HideView"
},
{
"name": "SearchBar should be accessible",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/SharedComponents/SearchBar.test.js",
"retries": 0,
"flaky": false,
"suite": "SearchBar.test.js > SearchBar"
},
{
"name": "Sanitization does not render HTML tags we don't support",
"duration": 32,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Sanitization only allows the HTML attributes we support on the web",
"duration": 22,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Sanitization links all @ mentions",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Sanitization links all URLs",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Sanitization closes unclosed tags",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Sanitization strips leading and trailing whitespace",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Sanitization"
},
{
"name": "Basic Rendering should not have accessibility errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Basic Rendering"
},
{
"name": "Basic Rendering renders text",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Basic Rendering"
},
{
"name": "Basic Rendering renders markdown",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Basic Rendering"
},
{
"name": "Basic Rendering renders html",
"duration": 17,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/UserText/UserText.test.js",
"retries": 0,
"flaky": false,
"suite": "UserText.test.js > Basic Rendering"
},
{
"name": "getDataForPixel should return null if grid is undefined",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/helpers/fetchUTFGridData.test.js",
"retries": 0,
"flaky": false,
"suite": "fetchUTFGridData.test.js > getDataForPixel"
},
{
"name": "getDataForPixel should return null if data is undefined",
"duration": 8,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/helpers/fetchUTFGridData.test.js",
"retries": 0,
"flaky": false,
"suite": "fetchUTFGridData.test.js > getDataForPixel"
},
{
"name": "getDataForPixel should return null if json is undefined",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/helpers/fetchUTFGridData.test.js",
"retries": 0,
"flaky": false,
"suite": "fetchUTFGridData.test.js > getDataForPixel"
},
{
"name": "authenticates user",
"duration": 60,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LoginSignUp/AuthenticationService.test.js",
"retries": 0,
"flaky": false,
"suite": "AuthenticationService.test.js"
},
{
"name": "registers user",
"duration": 28,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/LoginSignUp/AuthenticationService.test.js",
"retries": 0,
"flaky": false,
"suite": "AuthenticationService.test.js"
},
{
"name": "progressTracker emitProgress should emit an event with observationUUID and increment",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/progressTracker.test.js",
"retries": 0,
"flaky": false,
"suite": "progressTracker.test.js > progressTracker"
},
{
"name": "progressTracker emitProgress should return undefined when not specified",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/progressTracker.test.js",
"retries": 0,
"flaky": false,
"suite": "progressTracker.test.js > progressTracker"
},
{
"name": "progressTracker emitProgress should warn and not emit when observationUUID is undefined",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/progressTracker.test.js",
"retries": 0,
"flaky": false,
"suite": "progressTracker.test.js > progressTracker"
},
{
"name": "progressTracker trackObservationUpload should return start and complete functions",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/progressTracker.test.js",
"retries": 0,
"flaky": false,
"suite": "progressTracker.test.js > progressTracker"
},
{
"name": "progressTracker trackEvidenceUpload should return uploaded and attached functions",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/progressTracker.test.js",
"retries": 0,
"flaky": false,
"suite": "progressTracker.test.js > progressTracker"
},
{
"name": "errorHandling handleUploadError should throw basic errors without special handling",
"duration": 4,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return 'Connection problem' message for network errors",
"duration": 3,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return recoveryPossible=true for network errors",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return recovery options for RecoverableErrors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return a string from an array of iNaturalist API errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return a string from a nested array of iNaturalist API errors",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should return a string from a nested string within iNaturalist API error messages",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "errorHandling handleUploadError should handle 410 errors for previously deleted observations or evidence",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/errorHandling.test.js",
"retries": 0,
"flaky": false,
"suite": "errorHandling.test.js > errorHandling > handleUploadError"
},
{
"name": "getNextPageParamForExplore should return a date string if order_by is observed_on",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > getNextPageParamForExplore"
},
{
"name": "getNextPageParamForExplore should return a date string if order_by is created_at",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > getNextPageParamForExplore"
},
{
"name": "getNextPageParamForExplore should return an obs id if order_by is blank",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > getNextPageParamForExplore"
},
{
"name": "getNextPageParamForExplore should return the next page number if order_by is votes",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > getNextPageParamForExplore"
},
{
"name": "addPageParamsForExplore should include return_bounds when pageParam is undefined",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should include return_bounds when pageParam is 0",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should not include return_bounds when pageParam is 1 ",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set d2 if order_by is observed_on and order is default desc",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set d1 if order_by is observed_on and order is asc",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set created_d2 if order_by is created_at and order is default desc",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set created_d1 if order_by is created_at and order is asc",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set page if order_by is votes",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "addPageParamsForExplore should set id_below if order_by is not specified",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Explore/helpers/exploreParams.test.js",
"retries": 0,
"flaky": false,
"suite": "exploreParams.test.js > addPageParamsForExplore"
},
{
"name": "TaxonNamesSetting toggles between the three name display options correctly",
"duration": 31,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/components/Settings/TaxonNamesSetting.test.js",
"retries": 0,
"flaky": false,
"suite": "TaxonNamesSetting.test.js > TaxonNamesSetting"
},
{
"name": "ExploreContext exploreReducer SET_PLACE should remove lat and lng when place set",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/providers/ExploreContext.test.js",
"retries": 0,
"flaky": false,
"suite": "ExploreContext.test.js > ExploreContext > exploreReducer > SET_PLACE"
},
{
"name": "ExploreContext exploreReducer SET_MAP_BOUNDARIES should remove lat, lng, and radius",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/providers/ExploreContext.test.js",
"retries": 0,
"flaky": false,
"suite": "ExploreContext.test.js > ExploreContext > exploreReducer > SET_MAP_BOUNDARIES"
},
{
"name": "ExploreContext exploreReducer CHANGE_TAXON should remove iconic_taxa",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/providers/ExploreContext.test.js",
"retries": 0,
"flaky": false,
"suite": "ExploreContext.test.js > ExploreContext > exploreReducer > CHANGE_TAXON"
},
{
"name": "ExploreContext exploreReducer CHANGE_TAXON should extract an id from a taxon",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/providers/ExploreContext.test.js",
"retries": 0,
"flaky": false,
"suite": "ExploreContext.test.js > ExploreContext > exploreReducer > CHANGE_TAXON"
},
{
"name": "ExploreContext exploreReducer CHANGE_TAXON should remove an id from a blank taxon",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/providers/ExploreContext.test.js",
"retries": 0,
"flaky": false,
"suite": "ExploreContext.test.js > ExploreContext > exploreReducer > CHANGE_TAXON"
},
{
"name": "parseExifDateToLocalTimezone should parse a date string in the format react-native-exif-reader returns",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/parseExif.test.js",
"retries": 0,
"flaky": false,
"suite": "parseExif.test.js > parseExifDateToLocalTimezone"
},
{
"name": "parseExif should parse and return exif data when given a photo uri",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/parseExif.test.js",
"retries": 0,
"flaky": false,
"suite": "parseExif.test.js > parseExif"
},
{
"name": "formatExifDateAsString should return date in a string format ready to upload to server",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/parseExif.test.js",
"retries": 0,
"flaky": false,
"suite": "parseExif.test.js > formatExifDateAsString"
},
{
"name": "readExifFromMultiplePhotos should return an object if EXIF fails to parse for one photo",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/parseExif.test.js",
"retries": 0,
"flaky": false,
"suite": "parseExif.test.js > readExifFromMultiplePhotos"
},
{
"name": "readExifFromMultiplePhotos should return an object if EXIF fails to parse for all photos",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/helpers/parseExif.test.js",
"retries": 0,
"flaky": false,
"suite": "parseExif.test.js > readExifFromMultiplePhotos"
},
{
"name": "prepareObservationForUpload should call Observation.mapObservationForUpload with the observation",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareObservationForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareObservationForUpload.test.js > prepareObservationForUpload"
},
{
"name": "prepareObservationForUpload should remove null values from the mapped observation",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareObservationForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareObservationForUpload.test.js > prepareObservationForUpload"
},
{
"name": "prepareObservationForUpload should handle empty field values correctly",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/dataTransformation/prepareObservationForUpload.test.js",
"retries": 0,
"flaky": false,
"suite": "prepareObservationForUpload.test.js > prepareObservationForUpload"
},
{
"name": "markRecordUploaded should do nothing if realm is closed",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should update an Observation record correctly",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should update an ObservationPhoto record correctly",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should update an ObservationSound record correctly",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should update a Photo record correctly with options.record",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should throw error when record is not found",
"duration": 7,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should retry on invalidated object error",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "markRecordUploaded should attempt to retry on non-invalidation errors",
"duration": 5,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/uploaders/utils/realmSync.test.js",
"retries": 0,
"flaky": false,
"suite": "realmSync.test.js > markRecordUploaded"
},
{
"name": "Observation mapObservationForUpload should not include observed_on",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > mapObservationForUpload"
},
{
"name": "Observation mapApiToRealm should assign user.prefers_community_taxa from user.preferences.prefers_community_taxa",
"duration": 2,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > mapApiToRealm"
},
{
"name": "Observation mapApiToRealm should set _created_at to a date object without Realm",
"duration": 0,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > mapApiToRealm"
},
{
"name": "Observation mapApiToRealm should create observationSounds from observation_sounds",
"duration": 1,
"status": "passed",
"rawStatus": "passed",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > mapApiToRealm"
},
{
"name": "Observation needsSync should need sync when a photo needs sync",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > needsSync"
},
{
"name": "Observation needsSync should need sync when a sound needs sync",
"duration": 0,
"status": "other",
"rawStatus": "todo",
"type": "unit",
"filePath": "/Users/ryan/git/iNatRN/tests/unit/models/Observation.test.js",
"retries": 0,
"flaky": false,
"suite": "Observation.test.js > Observation > needsSync"
}
]
}
}