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-2489: Personal Contacts List View and Filter]", :broken => true, :regression => true do
before(:all) do
@FILTER_EXPANDED = [
"First Name",
"50 character maximum",
"Last Name",
"50 character maximum",
"Relationship",
"Select",
"Family",
"Friend",
"Co-Worker",
"Lawyer",
"Support",
"Other",
"Filter Reset"
]
initializeConfigurations(BASE_URL)
resetCollection("contacts", "personalprofiledb", "personalContacts")
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.clickContacts()
!45.times{ break if (getSecondaryHeader == "Contacts"); sleep 1 }
expect(@contacts.getSecondaryHeader).to eq("Contacts")
@contacts.clickPersonalContacts()
!45.times{ break if (getPrimaryHeader == "Personal Contacts"); sleep 1 }
expect(@contacts.getPrimaryHeader).to eq("Personal Contacts")
expect(getCount()).to eq(11)
end
after(:all) do
quitDriver()
end
describe "AC JRNL-1922|TC JRNL-1751: Filter" do
it "Filter defaults to an expanded view" do
expect(@personal_contacts_filter.isFilterExpanded()).to be true
end
it "Filter button alt text reads 'Collapse filter options' when expanded" do
expect(@personal_contacts_filter.getFilterIconAriaLabel()).to eq("Collapse filter options")
end
it "Content" do
personalContactsFilterScreen = @personal_contacts_filter.getScreenContent().split("\n")
@FILTER_EXPANDED.each_with_index do | expectedScreenRow, i |
expect(personalContactsFilterScreen[i]).to eq(expectedScreenRow)
end
end
it "Users can collapse the filter list by clicking on the Collapse filter icon" do
@personal_contacts_filter.clickOnFilterIcon()
expect(@personal_contacts_filter.isFilterCollapsed()).to be true
end
it "When collapsed, the filter icon alt text reads Expand Filter" do
expect(@personal_contacts_filter.getFilterIconAriaLabel()).to eq("Expand filter options")
end
it "Filter Options: First Name" do
@personal_contacts_filter.clickOnFilterIcon()
expect(@personal_contacts_filter.getTextFromInput(:css, Personal_Contacts_Filter::FIRST_NAME)).to eq("")
end
it "Filter Options: Last Name" do
expect(@personal_contacts_filter.getTextFromInput(:css, Personal_Contacts_Filter::LAST_NAME)).to eq("")
end
it "Filter Options: Relationship" do
expect(@personal_contacts_filter.getSelectBoxText(Personal_Contacts_Filter::RELATIONSHIP)).to eq("Select")
relationshipValues = @personal_contacts_filter.getElements(:css, Personal_Contacts_Filter::RELATIONSHIP + " option")
relationshipValues.each_with_index do | actual, i |
expect(actual.text()).to eq(@FILTER_EXPANDED[i + 5])
end
end
it "Filter Button (alt text = Filter)" do
expect(@personal_contacts_filter.getFilterButtonLabel()).to eq("Filter")
end
end
describe "AC JRNL-1921|TC JRNL-1751: List" do
it "Table headers" do
expect(getTableHeaders()).to eq(["Name", "Relationship", "Primary Phone"])
end
it "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" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "xyz")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
end
it "Story JRNL-1696|AC JRNL-1583: Reset Button" do
expect(@personal_contacts_filter.isResetButtonPresent()).to eq(true)
expect(@personal_contacts_filter.getResetButtonLabel()).to eq("Reset")
@personal_contacts_filter.clickResetBtn()
!10.times{ break if (getFocusedElementText().include?("Name")); sleep 1 }
verifyContactsList(getList(), getFilteredContacts("Select", "", ""))
expect(getCount()).to eq(11)
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
# DEFAULTS
expect(@personal_contacts_filter.getTextFromInput(:css, Personal_Contacts_Filter::FIRST_NAME)).to eq("")
expect(@personal_contacts_filter.getTextFromInput(:css, Personal_Contacts_Filter::LAST_NAME)).to eq("")
expect(@personal_contacts_filter.getTextFromInput(:css, Personal_Contacts_Filter::RELATIONSHIP)).to eq("")
end
describe "If records are found Personal Contact entries are displayed in a table format" do
it "sorted alphabetically" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(11)
verifyContactsList(getList(), getFilteredContacts("Select", "", ""))
end
it "first name only" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Billy")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(2)
verifyContactsList(getList(), getFilteredContacts("Select", "Billy", ""))
end
it "last name only" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Watkins")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(2)
verifyContactsList(getList(), getFilteredContacts("Select", "", "Watkins"))
end
it "relationship only" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Family")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(4)
verifyContactsList(getList(), getFilteredContacts("Family", "", ""))
end
it "first name and last name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Billy")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Smith")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Select")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(1)
verifyContactsList(getList(), getFilteredContacts("Select", "Billy", "Smith"))
end
it "first name and invalid last name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Junior")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Select", "Billy", "Junior"))
end
it "last name and invalid first name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Johnny")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Watkins")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Select", "Johnny", "Watkins"))
end
it "first name and relationship" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Jimbo")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Lawyer")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(1)
verifyContactsList(getList(), getFilteredContacts("Lawyer", "Jimbo", ""))
end
it "relationship and invalid first name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Billy")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Lawyer", "Billy", ""))
end
it "last name and relationship" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Carlton")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Family")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(3)
verifyContactsList(getList(), getFilteredContacts("Family", "", "Carlton"))
end
it "relationship and invalid last name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Madison")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Family", "", "Madison"))
end
it "first name, last name and relationship" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Andrew")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Watkins")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Other")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(1)
verifyContactsList(getList(), getFilteredContacts("Other", "Andrew", "Watkins"))
end
it "last name, relationship and invalid first name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Peter")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Other", "Peter", "Watkins"))
end
it "first name, relationship and invalid last name" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Andrew")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "Carnegie")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Other", "Andrew", "Carnegie"))
end
it "case insensitive" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "ANDREW")
@personal_contacts_filter.setInput(Personal_Contacts_Filter::LAST_NAME, "")
@personal_contacts_filter.setSelectBoxValue(Personal_Contacts_Filter::RELATIONSHIP, "Select")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(2)
verifyContactsList(getList(), getFilteredContacts("Select", "ANDREW", ""))
end
describe "partial string matches are returned" do
it "matches include initial character matches of 1 character or more" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "Jim")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("Name")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq(getTextForRow(1) + %( \n ))
expect(getCount()).to eq(2)
verifyContactsList(getList(), getFilteredContacts("Select", "Jim", ""))
end
it "internal character matches are not included" do
@personal_contacts_filter.setInput(Personal_Contacts_Filter::FIRST_NAME, "drew")
@personal_contacts_filter.clickFilterButton()
!10.times{ break if (@personal_contacts_filter.getFocusedElementText().include?("No results")); sleep 1 }
expect(@personal_contacts_filter.getFocusedElementText()).to eq("No results were found with the current filters. Use the Add button above to create a new record.")
expect(getCount()).to eq(0)
verifyContactsList(getList(), getFilteredContacts("Select", "drew", ""))
end
end
end
end
#######################
### Local Functions ###
#######################
def getAllContactsInDBSorted
def sortContactsKeys(x,y)
if(x["lastName"].upcase() + ", " + x["firstName"].upcase() == y["lastName"].upcase() + ", " + y["firstName"].upcase())
return (x["association"] <=> y["association"])
end
return (x["lastName"].upcase() + ", " + x["firstName"].upcase() <=> y["lastName"].upcase() + ", " + y["firstName"].upcase())
end
return retreiveAllDocumentsInCollection("contacts", "personalprofiledb").sort { |x, y| sortContactsKeys(x,y) }
end
def getFilteredContacts(association, first, last)
relationshipContacts = []
firstNameContacts = []
lastNameContacts = []
getAllContactsInDBSorted.each_with_index do |contacts_event, rowIndex|
if association == "Select" && first == "" && last == ""
relationshipContacts << contacts_event
elsif contacts_event["association"] == association
relationshipContacts << contacts_event
end
if first != "" && first.upcase() == contacts_event["firstName"][0..first.length()]
firstNameContacts << contacts_event
end
if last != "" && last.upcase() == contacts_event["lastName"][0..last.length()]
lastNameContacts << contacts_event
end
end
return (relationshipContacts & firstNameContacts & lastNameContacts)
end
def verifyContactsList(screenList, dbList)
dbList.each_with_index do |dbrow, i|
screenRow = screenList[i].text.split("\n")
expect(screenRow[1].strip).to eq(dbrow["lastName"] + ", " + dbrow["firstName"])
if dbrow["association"] != ""
expect(screenRow[3].strip).to eq(dbrow["association"])
end
end
end
end