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-2468: Diagnoses List and Filter]", :acceptance => true do
before(:all) do
@DIAGNOSES_FILTER = [
"Status:",
"Current",
"Past",
"All",
"Filter Reset"
]
initializeConfigurations(BASE_URL)
resetCollection("diagnosis", "medicalhistorydb", "diagnoses")
initializeAllObjects
@common.loginEndsOnLandingPage("zztest.patient01", "patient01, zztest")
@main.clickNavMenu()
!45.times{ break if (@nav_menu.getNavMenuHeading() == "App Options"); sleep 1 }
expect(@nav_menu.getNavMenuHeading()).to eq("App Options")
@nav_menu.clickMyMedical()
!45.times{ break if (getSecondaryHeader() == "My Medical"); sleep 1 }
expect(getSecondaryHeader()).to eq("My Medical")
@mymedical.clickDiagnoses()
!45.times{ break if (getPrimaryHeader() == "Diagnoses"); sleep 1 }
expect(getPrimaryHeader()).to eq("Diagnoses")
end
after(:all) do
quitDriver()
end
context "AC #JRNL-2891|TC #MVAH-1680: (1) When a user selects Diagnoses from the My Medical feature, the system displays the Diagnoses filter and table list view in the Detail screen (header = Diagnoses) with the following components" do
context "(a) Filter Feature" do
it "(i) Filter defaults to an expanded view. Filter button alt text reads 'Collapse filter' when expanded.", :broken => true do
expect(@diagnoses_filter.isFilterAccordionExpanded()).to be true
diagnosesFilterForm = @diagnoses_filter.getScreenContent().split("\n")
@DIAGNOSES_FILTER.each_with_index do | expectedScreenRow, i |
expect(diagnosesFilterForm[i]).to eq(expectedScreenRow)
end
expect(@diagnoses_filter.getFilterAccordionAltText()).to eq("Collapse filter options")
end
it "(ii) Users can collapse the filter list by clicking on the Collapse filter icon. When collapsed, the filter icon alt text reads Expand Filter.", :broken => true do
@diagnoses_filter.clickFilterAccordion()
expect(@diagnoses_filter.isFilterAccordionExpanded()).to be false
expect(@diagnoses_filter.getFilterAccordionAltText()).to eq("Expand filter options")
end
end
context "(b) Filter Options" do
it "(i) Status (radio button, values: Current, Past, All, default to Current)", :broken => true do
@diagnoses_filter.clickFilterAccordion()
expect(@diagnoses_filter.getFilterHeader()).to eq("Status:")
expect(@diagnoses_filter.getFilterRadioLabels()).to eq("Current\nPast\nAll")
expect(@diagnoses_filter.isCurrentSelected()).to be true
expect(@diagnoses_filter.isPastSelected()).to be false
expect(@diagnoses_filter.isAllSelected()).to be false
end
end
context "(c) Filter Button" do
it "alt text = Filter", :broken => true do
expect(@diagnoses_filter.getFilterButtonLabel()).to eq("Filter")
end
it "(i) Adding a value to any of the filter fields and selecting Filter button updates the table view to show records match the filter selections.", :broken => true do
@diagnoses_filter.clickPastRadioButton()
expect(@diagnoses_filter.isPastSelected()).to be true
@diagnoses_filter.clickFilterBtn()
end
it "(iii) After the filter button is selected, the focus moves to the returned results, first row, or the No results found message.", :broken => true do
!10.times{ break if (getFocusedElementText().include?("J Diagnosis")); sleep 1 }
expect(getFocusedElementText()).to match("J Diagnosis")
expect(getCount()).to eq(7)
@diagnoses_filter.clickCurrentRadioButton()
expect(@diagnoses_filter.isCurrentSelected()).to be true
@diagnoses_filter.clickFilterBtn()
!10.times{ break if (getFocusedElementText().include?("e Diagnosis")); sleep 1 }
expect(getFocusedElementText()).to match("e Diagnosis")
expect(getCount()).to eq(6)
@diagnoses_filter.clickAllRadioButton()
expect(@diagnoses_filter.isAllSelected()).to be true
@diagnoses_filter.clickFilterBtn()
!10.times{ break if (getFocusedElementText().include?("e Diagnosis")); sleep 1 }
expect(getFocusedElementText()).to match("e Diagnosis")
expect(getCount()).to eq(13)
end
end
end
context "AC #JRNL-2891|TC #MVAH-1680: (2) Diagnosis entries are displayed in a table format, sorted first by status with Current records shown before Past records, then sorted in reverse chronological order by Onset Date. Null values are shown as empty table cell. Records with a null onset date are shown at the bottom of their respective status group sorted alphabetically." do
it "Verify table rows", :broken => true do
expect(getTableHeaders()).to eq(["Diagnosis", "Date of Onset", "Status", "Source"])
@diagnoses_filter.clickPastRadioButton()
@diagnoses_filter.clickFilterBtn()
!10.times{ break if (getFocusedElementText().include?("J Diagnosis")); sleep 1 }
verifyDiagnosesList(getList(), getSortedDiagnosesByDiagnosis("Past"))
expectedText1 = ['Diagnosis', 'J Diagnosis', 'Date of Onset', '10/06/2014','Status', 'Past', 'Source', 'Self']
expect(getTextForRowAsArray(1)).to eq(expectedText1)
expect(getTextForRowColumn(1, 1)).to eq("J Diagnosis")
expect(getTextForRowColumn(1, 2)).to eq("10/06/2014")
expect(getTextForRowColumn(1, 3)).to eq("Past")
expect(getTextForRowColumn(1, 4)).to eq("Self")
expect(getTextForRowColumn(2, 1)).to eq("G Diagnosis")
expect(getTextForRowColumn(2, 2)).to eq("09/06/2014")
expect(getTextForRowColumn(2, 3)).to eq("Past")
expect(getTextForRowColumn(2, 4)).to eq("Self")
expect(getTextForRowColumn(3, 1)).to eq("F Diagnosis")
expect(getTextForRowColumn(3, 2)).to eq("")
expect(getTextForRowColumn(3, 3)).to eq("Past")
expect(getTextForRowColumn(3, 4)).to eq("Self")
expect(getTextForRowColumn(4, 1)).to eq("H Diagnosis")
expect(getTextForRowColumn(4, 2)).to eq("")
expect(getTextForRowColumn(4, 3)).to eq("Past")
expect(getTextForRowColumn(4, 4)).to eq("Self")
expect(getTextForRowColumn(5, 1)).to eq("I Diagnosis")
expect(getTextForRowColumn(5, 2)).to eq("")
expect(getTextForRowColumn(5, 3)).to eq("Past")
expect(getTextForRowColumn(5, 4)).to eq("Self")
expect(getTextForRowColumn(6, 1)).to eq("k Diagnosis")
expect(getTextForRowColumn(6, 2)).to eq("")
expect(getTextForRowColumn(6, 3)).to eq("Past")
expect(getTextForRowColumn(6, 4)).to eq("Self")
expect(getTextForRowColumn(7, 1)).to eq("K Diagnosis")
expect(getTextForRowColumn(7, 2)).to eq("")
expect(getTextForRowColumn(7, 3)).to eq("Past")
expect(getTextForRowColumn(7, 4)).to eq("Self")
@diagnoses_filter.clickCurrentRadioButton()
@diagnoses_filter.clickFilterBtn()
!10.times{ break if (getFocusedElementText().include?("e Diagnosis")); sleep 1 }
verifyDiagnosesList(getList(), getSortedDiagnosesByDiagnosis("Current"))
expectedText2 = ['Diagnosis', 'e Diagnosis', 'Date of Onset', '11/06/2014', 'Status', 'Current', 'Source', 'Self']
expect(getTextForRowAsArray(1)).to eq(expectedText2)
expect(getTextForRowColumn(1, 1)).to eq("e Diagnosis")
expect(getTextForRowColumn(1, 2)).to eq("11/06/2014")
expect(getTextForRowColumn(1, 3)).to eq("Current")
expect(getTextForRowColumn(1, 4)).to eq("Self")
expect(getTextForRowColumn(2, 1)).to eq("E Diagnosis")
expect(getTextForRowColumn(2, 2)).to eq("11/06/2014")
expect(getTextForRowColumn(2, 3)).to eq("Current")
expect(getTextForRowColumn(2, 4)).to eq("Self")
expect(getTextForRowColumn(3, 1)).to eq("C Diagnosis")
expect(getTextForRowColumn(3, 2)).to eq("08/06/2014")
expect(getTextForRowColumn(3, 3)).to eq("Current")
expect(getTextForRowColumn(3, 4)).to eq("Self")
expect(getTextForRowColumn(4, 1)).to eq("A Diagnosis")
expect(getTextForRowColumn(4, 2)).to eq("")
expect(getTextForRowColumn(4, 3)).to eq("Current")
expect(getTextForRowColumn(4, 4)).to eq("Self")
expect(getTextForRowColumn(5, 1)).to eq("B Diagnosis")
expect(getTextForRowColumn(5, 2)).to eq("")
expect(getTextForRowColumn(5, 3)).to eq("Current")
expect(getTextForRowColumn(5, 4)).to eq("Self")
expect(getTextForRowColumn(6, 1)).to eq("D Diagnosis")
expect(getTextForRowColumn(6, 2)).to eq("")
expect(getTextForRowColumn(6, 3)).to eq("Current")
expect(getTextForRowColumn(6, 4)).to eq("Self")
@diagnoses_filter.clickAllRadioButton()
@diagnoses_filter.clickFilterBtn()
!10.times{ break if (getFocusedElementText().include?("A Diagnosis")); sleep 1 }
verifyDiagnosesList(getList(), getSortedDiagnosesByDiagnosis("All"))
expectedText3 = ['Diagnosis', 'e Diagnosis', 'Date of Onset', '11/06/2014', 'Status', 'Current', 'Source', 'Self']
expect(getTextForRowAsArray(1)).to eq(expectedText3)
expect(getTextForRowColumn(1, 1)).to eq("e Diagnosis")
expect(getTextForRowColumn(1, 2)).to eq("11/06/2014")
expect(getTextForRowColumn(1, 3)).to eq("Current")
expect(getTextForRowColumn(1, 4)).to eq("Self")
expect(getTextForRowColumn(2, 1)).to eq("E Diagnosis")
expect(getTextForRowColumn(2, 2)).to eq("11/06/2014")
expect(getTextForRowColumn(2, 3)).to eq("Current")
expect(getTextForRowColumn(2, 4)).to eq("Self")
expect(getTextForRowColumn(3, 1)).to eq("C Diagnosis")
expect(getTextForRowColumn(3, 2)).to eq("08/06/2014")
expect(getTextForRowColumn(3, 3)).to eq("Current")
expect(getTextForRowColumn(3, 4)).to eq("Self")
expect(getTextForRowColumn(4, 1)).to eq("A Diagnosis")
expect(getTextForRowColumn(4, 2)).to eq("")
expect(getTextForRowColumn(4, 3)).to eq("Current")
expect(getTextForRowColumn(4, 4)).to eq("Self")
expect(getTextForRowColumn(5, 1)).to eq("B Diagnosis")
expect(getTextForRowColumn(5, 2)).to eq("")
expect(getTextForRowColumn(5, 3)).to eq("Current")
expect(getTextForRowColumn(5, 4)).to eq("Self")
expect(getTextForRowColumn(6, 1)).to eq("D Diagnosis")
expect(getTextForRowColumn(6, 2)).to eq("")
expect(getTextForRowColumn(6, 3)).to eq("Current")
expect(getTextForRowColumn(6, 4)).to eq("Self")
expect(getTextForRowColumn(7, 1)).to eq("J Diagnosis")
expect(getTextForRowColumn(7, 2)).to eq("10/06/2014")
expect(getTextForRowColumn(7, 3)).to eq("Past")
expect(getTextForRowColumn(7, 4)).to eq("Self")
expect(getTextForRowColumn(8, 1)).to eq("G Diagnosis")
expect(getTextForRowColumn(8, 2)).to eq("09/06/2014")
expect(getTextForRowColumn(8, 3)).to eq("Past")
expect(getTextForRowColumn(8, 4)).to eq("Self")
expect(getTextForRowColumn(9, 1)).to eq("F Diagnosis")
expect(getTextForRowColumn(9, 2)).to eq("")
expect(getTextForRowColumn(9, 3)).to eq("Past")
expect(getTextForRowColumn(9, 4)).to eq("Self")
expect(getTextForRowColumn(10, 1)).to eq("H Diagnosis")
expect(getTextForRowColumn(10, 2)).to eq("")
expect(getTextForRowColumn(10, 3)).to eq("Past")
expect(getTextForRowColumn(10, 4)).to eq("Self")
expect(getTextForRowColumn(11, 1)).to eq("I Diagnosis")
expect(getTextForRowColumn(11, 2)).to eq("")
expect(getTextForRowColumn(11, 3)).to eq("Past")
expect(getTextForRowColumn(11, 4)).to eq("Self")
expect(getTextForRowColumn(12, 1)).to eq("k Diagnosis")
expect(getTextForRowColumn(12, 2)).to eq("")
expect(getTextForRowColumn(12, 3)).to eq("Past")
expect(getTextForRowColumn(12, 4)).to eq("Self")
expect(getTextForRowColumn(13, 1)).to eq("K Diagnosis")
expect(getTextForRowColumn(13, 2)).to eq("")
expect(getTextForRowColumn(13, 3)).to eq("Past")
expect(getTextForRowColumn(13, 4)).to eq("Self")
end
end
context "Story JRNL-1696|AC JRNL-1583: Reset Button" do
it "Present" do
expect(@diagnoses_filter.isResetButtonPresent()).to eq(true)
end
it "Label" do
expect(@diagnoses_filter.getResetButtonLabel()).to eq("Reset")
end
it "Result", :broken => true do
@diagnoses_filter.clickResetBtn()
!10.times { break if (@diagnoses_filter.getFocusedElementText().include?("Diagnosis")); sleep 1 }
expect(@diagnoses_filter.getFocusedElementText()).to eq(getTextForRow(1) + "\n ")
expect(getCount()).to eq(6)
verifyDiagnosesList(getList(), getSortedDiagnosesByDiagnosis("Current"))
# DEFAULT
expect(@diagnoses_filter.isCurrentSelected()).to eq(true)
end
end
context "AC #JRNL-2891|TC #MVAH-1680: (1) When a user selects Diagnoses from the My Medical feature, the system displays the Diagnoses filter and table list view in the Detail screen (header = Diagnoses) with the following components" do
it "(ii) If no records are found when a filter is applied the message \"No results found.\" Is displayed in the screen area in place of the table view.", :broken => true do
removeCollection("diagnosis", "medicalhistorydb")
@diagnoses_filter.clickAllRadioButton()
expect(@diagnoses_filter.isAllSelected()).to be true
@diagnoses_filter.clickFilterBtn()
puts "AC #JRNL-2891|TC #JRNL-2468: (c) Filter Button (iii) After the filter button is selected, the focus moves to the returned results, first row, or the No results found message."
!10.times{ break if (getFocusedElementText().include?("No results were found with the current filters. Use the Add button above to create a new record.")); sleep 1 }
expect(getFocusedElementText()).to match("No results were found with the current filters. Use the Add button above to create a new record.")
end
end
#######################
### Local Functions ###
#######################
def getAllDiagnosesInDBSorted
def sortDiagnosesKeys(x,y)
return (x["diagnosis"].upcase() <=> y["diagnosis"].upcase())
end
return retreiveAllDocumentsInCollection("diagnoses", "medicalhistorydb").sort { |x, y| sortDiagnosesKeys(x,y) }
end
def getSortedDiagnosesByDiagnosis(status)
#Given a status, extract the diagnoses that are in the db
selectedDiagnoses = []
getAllDiagnosesInDBSorted.each_with_index do |diagnosis_event, rowIndex|
if status == "all" or status == "All"
selectedDiagnoses << diagnosis_event
elsif diagnosis_event["diagnosis"] == status
selectedDiagnoses << diagnosis_event
end
end
return selectedDiagnoses
end
def verifyDiagnosesList(screenList, dbList)
dbList.each_with_index do |dbrow, i|
screenRow = screenList[i]
expect(screenRow[0]).to eq(dbrow['diagnosis'])
expect(screenRow[1]).to eq(dbrow['onsetDate'].strftime('%m/%d/%Y'))
expect(screenRow[2]).to eq(dbrow['status'])
expect(screenRow[3]).to eq(dbrow['source'])
end
end
end