Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

require_relative '../../../globalized'
include Globalized

describe "[Story #JRNL-1553: Settings Feature for Preventive Services]| [Story #JRNL-1303: Update Preventive Services header] | [Story #JRNL-1304: Add Penumococcal Vaccinations]", :regression => true do

before(:all) do

@INSTRUCTIONAL_TEXT = [
"Select services to include in your Preventive Service list.",
"Removing a service from your list will not remove your data, however all notifications tied to that service will be turned off.",
"You may add a service back to your list at any time."
]

@REMINDERS_FOR_MALES = [
"Blood Pressure Screening",
"Cholesterol Screening",
"Colorectal Cancer Screening",
"Flu Vaccination",
"HIV Screening",
"HPV Vaccination",
"PCV13 - Pneumococcal Vaccination",
"PPSV23 - Pneumococcal Vaccination",
"Shingles Vaccination",
"Tetanus Vaccination",
"ZZ TEST"
]

@REMINDERS_FOR_FEMALES = [
"Blood Pressure Screening",
"Breast Cancer Screening",
"Cervical Cancer Screening",
"Chlamydia and Gonorrhea Screening",
"Cholesterol Screening",
"Colorectal Cancer Screening",
"Flu Vaccination",
"HIV Screening",
"HPV Vaccination",
"Osteoporosis Screening",
"PCV13 - Pneumococcal Vaccination",
"PPSV23 - Pneumococcal Vaccination",
"Shingles Vaccination",
"Tetanus Vaccination"
]

initializeConfigurations(BASE_URL)

########################
### CLEAR MONGO DATA ###
########################
removeCollection("reminders", "remindersdb")
removeCollection("preferences", "healthtrackerdb")
removeCollection("preventiveservices", "healthtrackerdb")

initializeAllObjects

@common.loginEndsOnLandingPage("zztest.patient01","patient01, zztest");
expect(@main.getFooterText()).to eq("Logged in as patient01, zztest");
#Pause to allow app to POST setting preferences because all was cleared from mongo
sleep 7.0

@main.clickNavMenu()
!45.times{ break if (@navMenu.getNavMenuHeading() == "App Options"); sleep 1 }
expect(@navMenu.getNavMenuHeading()).to eq("App Options")

@navMenu.clickReminders()
!45.times{ break if (@reminders.getFocusedElementText() == @reminders.getSecondaryHeader()); sleep 1 }
expect(@reminders.getFocusedElementText()).to eq(@reminders.getSecondaryHeader())
expect(@reminders.getSecondaryHeader()).to eq("My Reminders")
expect(@reminders.getPrimaryHeader()).to eq("My Reminders")

@reminders.clickSubGroup("preventive-services")
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!45.times{ break if (@reminders.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@reminders.getPrimaryHeader()).to eq("Preventive Services")

## Add custom Preventive Service
@screening.clickAddEntry()
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!45.times{ break if (@screening.getPrimaryHeader() == Screening::CPS_ENTRY_HEADER_NEW); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq(Screening::CPS_ENTRY_HEADER_NEW)

@screening.setServiceName("ZZ TEST")
@screening.clickSaveButton()
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!45.times{ break if (@screening.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq("Preventive Services")

## Needed for looping later on
clearDefaultNextDueDates()
end

after(:all) do
removeCollection("preferences", "healthtrackerdb")
quitDriver()
end

describe "AC JRNL-1315|TC JRNL-1300: Gear Icon" do

it "Visible" do
expect(@preventiveService_settings.isElementPresentAndVisible(:css, PreventiveService_Settings::GEAR_ICON)).to eq(true)
end

end

describe "AC JRNL-1314|TC JRNL-1300: Gear Icon Modal" do

it "Initial List" do
@REMINDERS_FOR_MALES.each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
end

it "Modal Heading" do
@preventiveService_settings.clickTheGearIcon()
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Instructional Text" do
@preventiveService_settings.getInstructionalText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@INSTRUCTIONAL_TEXT[i])
end
end

it "All Preventive Services Visible & Alphabetical && Story JRNL-1304|AC JRNL-1230|TC JRNL-1216: Add PCV13 and PPSV23" do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_MALES[i])
end
expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_MALES.length)
end

it "All Checked" do
for i in 1..@preventiveService_settings.getCPSReminderCount() do
expect(@preventiveService_settings.isCPSReminderSelected(i)).to eq(true)
@preventiveService_settings.toggleCPSReminder(i)
end
end

it "Cancel" do
@preventiveService_settings.clickCancelButton()
!30.times{ break if(@preventiveService_settings.isModalVisible() === false); sleep 1 }
expect(@preventiveService_settings.isModalVisible()).to eq(false)
end

it "List Unchanged" do
@REMINDERS_FOR_MALES.each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
end

it "[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]Add Notifications", :broken => true do
## Go through all Preventive Services and add a notification
## The table is sorted after each update. So continue to click the last entry.
for i in 1..getCount() do
clickNthRow(getCount())
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!45.times{ break if(@screening.getPrimaryHeader() === Screening::CPS_ENTRY_HEADER_EDIT); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq(Screening::CPS_ENTRY_HEADER_EDIT)

addNotification()
!45.times{ break if(@screening.getPrimaryHeader() === "Preventive Services"); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq("Preventive Services")
end
end

it "Open Modal", :broken => true do
@preventiveService_settings.clickTheGearIcon()
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Verify Content", :broken => true do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_MALES[i])
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(true)
end

expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_MALES.length)
end

it "Un-check Half" do
for i in 1..(@preventiveService_settings.getCPSReminderCount()/2) do
@preventiveService_settings.toggleCPSReminder(i)
expect(@preventiveService_settings.isCPSReminderSelected(i)).to eq(false)
end
end

it "Save", :broken => true do
@preventiveService_settings.clickSaveButton()
!30.times{ break if(@preventiveService_settings.isModalVisible() === false); sleep 1 }
expect(@preventiveService_settings.isModalVisible()).to eq(false)
end

it "Updated List", :broken => true do
expect(getCount()).to eq(6)
@REMINDERS_FOR_MALES[5..@REMINDERS_FOR_MALES.length - 1].each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
end

it "Open Modal", :broken => true do
@preventiveService_settings.clickTheGearIcon()
#[AC: JRNL-1228 Update Detail Headers]|[TC: JRNL-1212 Update Detail Header ]
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Verify Content", :broken => true do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_MALES[i])
if(i < 5)
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(false)
else
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(true)
end
end

expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_MALES.length)
end

it "Un-check Remaining" do
for i in 6..@preventiveService_settings.getCPSReminderCount() do
@preventiveService_settings.toggleCPSReminder(i)
expect(@preventiveService_settings.isCPSReminderSelected(i)).to eq(false)
end
end

it "Save", :broken => true do
@preventiveService_settings.clickSaveButton()
!30.times{ break if(@preventiveService_settings.isModalVisible() === false); sleep 1 }
expect(@preventiveService_settings.isModalVisible()).to eq(false)
end

it "AC JRNL-1313|TC-4742: No Results Message", :broken => true do
expect(@preventiveService_settings.getNoResultsMessage()).to eq("All Preventive Services are currently hidden. Use the gear icon above to add services.")
end

it "Open Modal", :broken => true do
@preventiveService_settings.clickTheGearIcon()
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Verify Content", :broken => true do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_MALES[i])
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(false)
end

expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_MALES.length)
end

it "Re-select All" do
for i in 1..@preventiveService_settings.getCPSReminderCount() do
@preventiveService_settings.toggleCPSReminder(i)
expect(@preventiveService_settings.isCPSReminderSelected(i)).to eq(true)
end
end

it "Save", :broken => true do
@preventiveService_settings.clickSaveButton()
!30.times{ break if(@preventiveService_settings.isModalVisible() === false); sleep 1 }
expect(@preventiveService_settings.isModalVisible()).to eq(false)
end

it "List", :broken => true do
@REMINDERS_FOR_MALES.each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
expect(getCount()).to eq(@REMINDERS_FOR_MALES.length)
end

it "Notifications Turned Off", :broken => true do
for i in 1..getCount() do
clickNthRow(i)
!45.times{ break if (@screening.getPrimaryHeader() == Screening::CPS_ENTRY_HEADER_EDIT); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq(Screening::CPS_ENTRY_HEADER_EDIT)

expect(@screening.getNotificationStatus()).to eq("Off")

@screening.clickCancelButton()
!45.times{ break if (@screening.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq("Preventive Services")
end
end

it "Delete Custom", :broken => true do
clickNthRow(getCount())
!45.times{ break if (@screening.getPrimaryHeader() == Screening::CPS_ENTRY_HEADER_EDIT); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq(Screening::CPS_ENTRY_HEADER_EDIT)

@screening.clickDeleteButton()
!45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
expect(@modal.getConfirmationHeading()).to eq("Confirmation")

@modal.clickYesButton()
!45.times{ break if (@screening.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq("Preventive Services")
end

it "Verify List", :broken => true do
@REMINDERS_FOR_MALES[0...@REMINDERS_FOR_MALES.length - 1].each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
expect(getCount()).to eq(@REMINDERS_FOR_MALES.length - 1)
end

it "Open Modal", :broken => true do
@preventiveService_settings.clickTheGearIcon()
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Verify Content", :broken => true do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_MALES[i])
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(true)
end

expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_MALES.length - 1)
end

it "Switch to Female", :broken => true do
## This user is over 65 so will show all female preventive services
## 'Cervical Cancer Screening' only shows for age >= 30
## 'Osteoporosis Screening' only shows for age >= 65
@common.switchUserThenLogBackInAndGoToLeftSideNav("zztest.patient05", "patient05, zztest")

@navMenu.clickReminders()
!45.times{ break if (@reminders.getFocusedElementText() == @reminders.getSecondaryHeader()); sleep 1 }
expect(@reminders.getFocusedElementText()).to eq(@reminders.getSecondaryHeader())
expect(@reminders.getSecondaryHeader()).to eq("My Reminders")
expect(@reminders.getPrimaryHeader()).to eq("My Reminders")

@reminders.clickSubGroup("preventive-services")
!45.times{ break if (@reminders.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@reminders.getPrimaryHeader()).to eq("Preventive Services")
end

it "Defaults", :broken => true do
@REMINDERS_FOR_FEMALES.each do | reminder |
expect(@screening.findIndexWithGivenPSName(reminder)).not_to eq(-1)
end
expect(getCount()).to eq(@REMINDERS_FOR_FEMALES.length)
end

it "Open Modal", :broken => true do
@preventiveService_settings.clickTheGearIcon()
!30.times{ break if (@preventiveService_settings.getHeading() == PreventiveService_Settings::MODAL_HEADING); sleep 1 }
expect(@preventiveService_settings.getHeading()).to eq(PreventiveService_Settings::MODAL_HEADING)
end

it "Verify Content", :broken => true do
@preventiveService_settings.getModalFormText().split("\n").each_with_index do | screenRow, i |
expect(screenRow).to eq(@REMINDERS_FOR_FEMALES[i])
expect(@preventiveService_settings.isCPSReminderSelected(i+1)).to eq(true)
end

expect(@preventiveService_settings.getCPSReminderCount()).to eq(@REMINDERS_FOR_FEMALES.length)
end

end

def addNotification()
@screening.setNextDueDate(getDateNthDaysFromNow(30, '%m/%d/%Y'))
@screening.selectNotificationStatus("On")
@screening.clickNotifyMeAboutThisDueDateCheckbox("On the date")
@screening.clickSaveButton()
end

def clearDefaultNextDueDates()
getCount().downto(1) do |i|
if(getTextForRowColumn(i, 3) != "")
clickNthRow(i)
!45.times{ break if (@screening.getPrimaryHeader() == Screening::CPS_ENTRY_HEADER_EDIT); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq(Screening::CPS_ENTRY_HEADER_EDIT)

@screening.setNextDueDate("")
@screening.clickSaveButton()
!45.times{ break if (@screening.getPrimaryHeader() == "Preventive Services"); sleep 1 }
expect(@screening.getPrimaryHeader()).to eq("Preventive Services")
end
end
end

end