Skip to content

Commit

Permalink
Merge branch 'develop' into CU/7433-Dylan-AuthMigration
Browse files Browse the repository at this point in the history
  • Loading branch information
rbontrager authored Nov 13, 2024
2 parents 6900c4d + 77c3e5e commit fb99516
Show file tree
Hide file tree
Showing 10 changed files with 59 additions and 58 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/e2e_detox_mapping.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
select(contains(["auth"])) += ["SignIn"] |
select(contains(["authorizedServices"])) += ["Appeals", "AppealsExpanded", "Appointments", "AppointmentsExpanded", "Claims", "DirectDeposit", "DisabilityRatings", "PersonalInformationScreen", "VALetters", "MilitaryInformation", "Payments", "Prescriptions", "Messages", "VeteranStatusCard"] |
select(contains(["contactInformation"]) or contains(["ContactInformationScreen"])) += ["ContactInformation", "VALetters"] |
select(contains(["NotificationManager"])) += ["SettingsScreen", "PushNotifications"] |
select(contains(["NotificationManager"])) += ["SettingsScreen", "PushNotifications", "Onboarding"] |
select(contains(["Types"]) or contains(["VAImage"])) +=
["AvailabilityFramework", "Cerner", "ContactInformation", "VALetters", "LoginScreen", "Onboarding", "ProfileScreen", "PushNotifications", "SettingsScreen", "SignIn", "VaccineRecords", "Claims", "Appeals", "AppealsExpanded", "DisabilityRatings", "Appointments", "AppointmentsExpanded", "Prescriptions", "Messages", "MilitaryInformation", "HomeScreen", "VeteransCrisisLine", "VeteranStatusCard", "DirectDeposit", "Payments", "PersonalInformationScreen"]
| unique')
Expand Down
10 changes: 5 additions & 5 deletions VAMobile/android/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1001.0)
aws-sdk-core (3.211.0)
aws-partitions (1.1005.0)
aws-sdk-core (3.212.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.95.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.169.0)
aws-sdk-s3 (1.170.1)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
Expand Down Expand Up @@ -160,7 +160,7 @@ GEM
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.6)
json (2.8.1)
jwt (2.9.3)
base64
mini_magick (4.13.2)
Expand All @@ -171,7 +171,7 @@ GEM
nanaimo (0.4.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.5.0)
optparse (0.6.0)
os (1.1.4)
plist (3.7.1)
public_suffix (6.0.1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,9 @@ All issue tickets should be written using the [issue ticket template](https://gi

| **Frequency** | **Definition** | **Examples** |
| --- | --- | --- |
| High frequency | Affects a component, screen, or action used by 15% or more of monthly users | Authentication, home page (including What's New and Encouraged Update), category landing screens, feature landing or child screens for most-used features (Claims, Upcoming Appointments, and Decision Letters), feature landing or child screens for next-most-used features (Prescriptions, Payments, Messaging, Letters, Disability Rating, and Military Info), and downloading a letter (decision or any other kind) |
| Low frequency | Affects a component, screen, or action used by 14% or fewer of monthly users | All other app actions (send message, upload file, etc); and all screens not listed in high frequency examples |
| High frequency | Affects a component, screen, or action used by 15% or more of monthly users | - Authentication/login <br/> - Home page (including What's New and Encouraged Update) <br/> - Category landing screens (Health, Benefits, Payments and Profile) <br/> - Feature landing and child screens for most-used features (Prescriptions, Upcoming Appointments, and Secure Messaging) <br/> - Feature landing and child screens for next-most-used features (Claims, Disability Rating, Letters, Payment History) <br/> - Key actions from the features already listed: med refill, sending a message (new or reply), and downloading a letter (decision or any other kind) |
| Low frequency | Affects a component, screen, or action used by 14% or fewer of monthly users | All other all screens and app actions (upload file, change demographic info, etc) not listed in high frequency examples |
_Frequency examples informed by the [Flagship Mobile Monthly Report](https://lookerstudio.google.com/reporting/e28cd59a-b2e5-4f29-8ae4-a4eea6d23f9c/page/p_xatxe90k9c)_

### User-submitted Bug Reports

Expand Down
12 changes: 9 additions & 3 deletions VAMobile/e2e/tests/Onboarding.e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { CommonE2eIdConstants, checkImages, loginToDemoMode } from './utils'
export const OnboardingE2eIdConstants = {
VA_ICON_ID: 'VAIconOnboardingLogo',
DONE_NEXT_BUTTON_ID: 'onboardingDoneNextButtonID',
NOTIFICATIONS_PAGE_HEADER: 'Stay updated with app notifications',
}

beforeAll(async () => {
Expand Down Expand Up @@ -70,20 +71,25 @@ describe('Onboarding Screen', () => {
await expect(element(by.text('Welcome, Kimberly'))).toExist()
})

it('verify the home page is displayed after tapping done', async () => {
it('verify the notifications page is displayed after tapping done', async () => {
await element(by.id(OnboardingE2eIdConstants.DONE_NEXT_BUTTON_ID)).tap()
await element(by.id(OnboardingE2eIdConstants.DONE_NEXT_BUTTON_ID)).tap()
await element(by.id(OnboardingE2eIdConstants.DONE_NEXT_BUTTON_ID)).tap()
await element(by.id(OnboardingE2eIdConstants.DONE_NEXT_BUTTON_ID)).tap()
await expect(element(by.text(CommonE2eIdConstants.HOME_ACTIVITY_HEADER_TEXT))).toExist()
await expect(element(by.text(OnboardingE2eIdConstants.NOTIFICATIONS_PAGE_HEADER))).toExist()
})

it('verify the home page is displayed after skipping', async () => {
it('verify the notifications page is displayed after skipping', async () => {
await device.uninstallApp()
await device.installApp()
await device.launchApp({ newInstance: true, permissions: { notifications: 'YES' } })
await loginToDemoMode(false)
await element(by.id(CommonE2eIdConstants.SKIP_BACK_BUTTON_ID)).tap()
await expect(element(by.text(OnboardingE2eIdConstants.NOTIFICATIONS_PAGE_HEADER))).toExist()
})

it('verify the home page is displayed after tapping turn on notifications', async () => {
await element(by.text('Turn on notifications')).tap()
await expect(element(by.text(CommonE2eIdConstants.HOME_ACTIVITY_HEADER_TEXT))).toExist()
})
})
14 changes: 7 additions & 7 deletions VAMobile/ios/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,24 @@ GEM
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.1001.0)
aws-sdk-core (3.211.0)
aws-partitions (1.1005.0)
aws-sdk-core (3.212.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.95.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.169.0)
aws-sdk-s3 (1.170.1)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.10.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
benchmark (0.3.0)
benchmark (0.4.0)
bigdecimal (3.1.8)
claide (1.1.0)
cocoapods (1.16.2)
Expand Down Expand Up @@ -221,7 +221,7 @@ GEM
i18n (1.14.6)
concurrent-ruby (~> 1.0)
jmespath (1.6.2)
json (2.7.6)
json (2.8.1)
jwt (2.9.3)
base64
logger (1.6.1)
Expand All @@ -236,7 +236,7 @@ GEM
naturally (2.2.1)
netrc (0.11.0)
nkf (0.2.0)
optparse (0.5.0)
optparse (0.6.0)
os (1.1.4)
plist (3.7.1)
public_suffix (4.0.7)
Expand All @@ -251,7 +251,7 @@ GEM
ruby-macho (2.5.1)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
securerandom (0.3.1)
securerandom (0.3.2)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
Expand Down
2 changes: 1 addition & 1 deletion VAMobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
"react-native-svg-transformer": "^1.5.0",
"react-native-toast-notifications": "^3.4.0",
"react-native-webp-format": "^1.2.0",
"react-native-webview": "^13.10.4",
"react-native-webview": "^13.12.3",
"react-redux": "^9.1.2",
"styled-components": "^5.3.10",
"underscore": "^1.13.7"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import React from 'react'

import { screen } from '@testing-library/react-native'
import { t } from 'i18next'

import { context, mockNavProps, render } from 'testUtils'
import { displayedTextPhoneNumber } from 'utils/formattingUtils'

import ContactVAScreen from './ContactVAScreen'

Expand All @@ -18,14 +20,10 @@ context('ContactVAScreen', () => {
})

it('initializes correctly', () => {
expect(screen.getByRole('link', { name: 'Talk to the Veterans Crisis Line now' })).toBeTruthy()
expect(screen.getByRole('header', { name: 'Call MyVA411' })).toBeTruthy()
expect(
screen.getByText(
'MyVA411 is our main VA information line. We can help connect you to any of our VA contact centers.',
),
).toBeTruthy()
expect(screen.getByRole('link', { name: '800-698-2411' })).toBeTruthy()
expect(screen.getByRole('link', { name: 'TTY: 711' })).toBeTruthy()
expect(screen.getByRole('link', { name: t('crisisLineButton.label') })).toBeTruthy()
expect(screen.getByRole('header', { name: t('contactVA.va411.callMy') })).toBeTruthy()
expect(screen.getByText(t('contactVA.va411.body'))).toBeTruthy()
expect(screen.getByRole('link', { name: displayedTextPhoneNumber(t('8006982411')) })).toBeTruthy()
expect(screen.getByRole('link', { name: t('contactVA.tty.displayText') })).toBeTruthy()
})
})
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react'

import { screen } from '@testing-library/react-native'
import { t } from 'i18next'

import { personalInformationKeys } from 'api/personalInformation/queryKeys'
import { BranchesOfServiceConstants, MilitaryServiceHistoryData, ServiceHistoryAttributes } from 'api/types'
Expand Down Expand Up @@ -75,10 +76,10 @@ context('ProfileScreen', () => {
.calledWith('/v0/military-service-history')
.mockResolvedValue(militaryServiceHistoryData)
initializeTestInstance()
await waitFor(() => expect(screen.queryByText('Personal information')).toBeFalsy())
await waitFor(() => expect(screen.queryByText('Contact information')).toBeFalsy())
await waitFor(() => expect(screen.getByText('Military information')).toBeTruthy())
await waitFor(() => expect(screen.getByText('Settings')).toBeTruthy())
await waitFor(() => expect(screen.queryByText(t('personalInformation.title'))).toBeFalsy())
await waitFor(() => expect(screen.queryByText(t('contactInformation.title'))).toBeFalsy())
await waitFor(() => expect(screen.getByText(t('militaryInformation.title'))).toBeTruthy())
await waitFor(() => expect(screen.getByText(t('settings.title'))).toBeTruthy())
})
})

Expand All @@ -89,9 +90,7 @@ context('ProfileScreen', () => {
.mockRejectedValue({ networkError: true } as api.APIError)
initializeTestInstance()

await waitFor(() =>
expect(screen.getByText('We can’t show all your information right now. Check back later.')).toBeTruthy(),
)
await waitFor(() => expect(screen.getByText(t('aboutYou.error.cantShowAllInfo'))).toBeTruthy())
})
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react'
import { Alert } from 'react-native'

import { fireEvent, screen } from '@testing-library/react-native'
import { t } from 'i18next'

import { context, render } from 'testUtils'

Expand All @@ -13,23 +14,19 @@ context('VeteransCrisisLineScreen', () => {
})

it('initializes correctly', () => {
expect(screen.getByRole('header', { name: 'We’re here anytime, day or night – 24/7' })).toBeTruthy()
expect(
screen.getByText(
"If you're a Veteran in crisis or concerned about one, connect with our caring, qualified responders for confidential help. Many of them are Veterans themselves.",
),
).toBeTruthy()
expect(screen.getByRole('link', { name: 'Call 988 and select 1' })).toBeTruthy()
expect(screen.getByRole('link', { name: 'Text 838255' })).toBeTruthy()
expect(screen.getByRole('link', { name: 'Start a confidential chat' })).toBeTruthy()
expect(screen.getByRole('link', { name: 'TTY: 800-799-4889' })).toBeTruthy()
expect(screen.getByRole('header', { name: 'Get more resources' })).toBeTruthy()
expect(screen.getByRole('link', { name: 'VeteransCrisisLine.net' })).toBeTruthy()
expect(screen.getByRole('header', { name: t('veteransCrisisLine.weAreHereForYou') })).toBeTruthy()
expect(screen.getByText(t('veteransCrisisLine.connectWithResponders'))).toBeTruthy()
expect(screen.getByRole('link', { name: t('veteransCrisisLine.crisisCallNumberDisplayed') })).toBeTruthy()
expect(screen.getByRole('link', { name: t('veteransCrisisLine.textNumberDisplayed') })).toBeTruthy()
expect(screen.getByRole('link', { name: t('veteransCrisisLine.startConfidentialChat') })).toBeTruthy()
expect(screen.getByRole('link', { name: t('veteransCrisisLine.hearingLossNumberDisplayed') })).toBeTruthy()
expect(screen.getByRole('header', { name: t('veteransCrisisLine.getMoreResources') })).toBeTruthy()
expect(screen.getByRole('link', { name: t('veteransCrisisLine.urlDisplayed') })).toBeTruthy()
})

describe('when the veteransCrisisLine.net link is clicked', () => {
it('should show alert', () => {
fireEvent.press(screen.getByRole('link', { name: 'VeteransCrisisLine.net' }))
fireEvent.press(screen.getByRole('link', { name: t('veteransCrisisLine.urlDisplayed') }))
expect(Alert.alert).toBeCalled()
})
})
Expand Down
20 changes: 10 additions & 10 deletions VAMobile/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5203,16 +5203,16 @@ escape-html@~1.0.3:
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==

[email protected], escape-string-regexp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==

escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==

escape-string-regexp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==

escape-string-regexp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
Expand Down Expand Up @@ -9345,12 +9345,12 @@ react-native-webp-format@^1.2.0:
resolved "https://registry.yarnpkg.com/react-native-webp-format/-/react-native-webp-format-1.2.0.tgz#6c7cbed4cdc8247711c7d7f656d0d4f739836c82"
integrity sha512-tUL/AbM6QwUsxsGutJ1bN4RW8JdD2w5Mpj+An4DvYKkm0bKHbODj7U7gI1+8X68GqJWOy+Ps2cbVmgNpSDfRPQ==

react-native-webview@^13.10.4:
version "13.10.4"
resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.10.4.tgz#9b84d9ebc07f55d9e19d4e42074a77e33005fa0b"
integrity sha512-kRn70M7vyBS3IDaX2KqyF66ovUkrBS6LiHOgrEmRdZFO0i3hYY0wldEv1fJuKvgQIPMfo7GtGAjozFrk2vQdBw==
react-native-webview@^13.12.3:
version "13.12.3"
resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.12.3.tgz#3aa9d2fc982ba2681e56d3e96e22b63a0d929270"
integrity sha512-Y1I5YyDYyE7NC96RHLhd2nxh7ymLYOYLTefgx5ixxw2OToQK0ow3OJ+o77QcI1Tuevj5PCxwqC/14ceS/7yPJQ==
dependencies:
escape-string-regexp "2.0.0"
escape-string-regexp "^4.0.0"
invariant "2.2.4"

react-native@*, [email protected]:
Expand Down

0 comments on commit fb99516

Please sign in to comment.