Produced by Araxis Merge on 5/29/2018 12:14:33 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | mobile-kidney-web-2.0.0.zip\mobile-kidney-web\acceptance_test\watir\spec\kidney-tracker | Glucose_Add_Edit_Delete_DCKDA_1140_542_1201_spec.rb | Wed Apr 4 20:16:46 2018 UTC |
2 | mobile-kidney-web-2.0.0.zip\mobile-kidney-web\acceptance_test\watir\spec\kidney-tracker | Glucose_Add_Edit_Delete_DCKDA_1140_542_1201_spec.rb | Tue May 29 15:45:11 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 2 | 670 |
Changed | 1 | 4 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | #!/bin/env ruby | |
2 | # encoding : utf-8 | |
3 | ||
4 | require 'r ubygems' | |
5 | require 'r spec' | |
6 | require 'w atir-webdr iver' | |
7 | ||
8 | require_re lative '.. /rspec_hel per' | |
9 | require_re lative '.. /../lib/pa ges/left_s ide_nav' | |
10 | require_re lative '.. /../lib/pa ges/common _elements' | |
11 | require_re lative '.. /../lib/pa ges/common _tests' | |
12 | require_re lative '.. /../lib/pa ges/modal_ dialog' | |
13 | require_re lative '.. /../lib/pa ges/filter s' | |
14 | require_re lative '.. /../lib/pa ges/error_ validation s' | |
15 | require_re lative '.. /../lib/pa ges/tracke rs_list_an d_detail' | |
16 | require_re lative '.. /../lib/mo dule/FHIRO perationsM odule' | |
17 | ||
18 | describe ' Story#DCKD A-1140,120 1,542 Gluc ose_Add_Ed it_Delete_ spec.rb', :regressio n => true do | |
19 | include DriverOper ationsModu le | |
20 | include FHIROperat ionsModule | |
21 | ||
22 | before(: all) do | |
23 | patien tId = "PAT ID13" | |
24 | firstN ame = "zzt est" | |
25 | lastNa me = "pati ent14" | |
26 | userName = " AI " | |
27 | password = " AI " | |
28 | ||
29 | initia lizeConfig urations() | |
30 | remove GlucoseEnt ries(patie ntId, firs tName, las tName) | |
31 | ||
32 | @commo nElements = CommonEl ement.new( @driver) | |
33 | @commo nTest = Co mmonTest.n ew(@driver ) | |
34 | @leftn av = LeftS ideNav.new (@driver) | |
35 | @modal = Modal.n ew(@driver ) | |
36 | @filte r = Filter s.new(@dri ver) | |
37 | @error = Errors. new(@drive r) | |
38 | @tklis tDetail = TrackerLis tDetail.ne w(@driver) | |
39 | ||
40 | @commo nTest.pass ByLandingP ageAndAuth enticate(u serName, p assword, " #{lastName }, #{first Name}", pa tientId) | |
41 | ||
42 | begin | |
43 | Wati r::Wait.un til | |
44 | @com monElement s.angulart itle_eleme nt.visible ? | |
45 | rescue | |
46 | Wati r::Wait::T imeoutErro r | |
47 | unti l | |
48 | @com monElement s.angulart itle_eleme nt.visible ? | |
49 | end | |
50 | end | |
51 | ||
52 | @commo nTest.wait ForContent LoadedSumm aryPage | |
53 | @leftn av.leftSid eNav | |
54 | sleep 1 | |
55 | @leftn av.home_el ement.when _visible | |
56 | ||
57 | @commo nTest.navi gateToAsub Feature("K idneyTrack ers", ".gl ucose") | |
58 | Watir: :Wait.unti l {@common Elements.t ext.includ e? "Tested :"} | |
59 | ||
60 | $today Long = get DateNthDay sAgo(0, "% m/%d/%Y") | |
61 | $yeste rdayShort = getDateN thDaysAgo( 1, "%m/%d/ %y") | |
62 | $yeste rdayLong = getDateNt hDaysAgo(1 , "%m/%d/% Y") | |
63 | $tomor row = getD ateNthDays FromNow(1, "%m/%d/%Y ") | |
64 | $sixYe arsAgo = g etDateNthY earsAgo(6, "%m/%d/%Y ") | |
65 | $sixYe ars1dayAgo = getDate NthDaysAgo (2193, "%m /%d/%Y") | |
66 | $oneYe arAgo = ge tDateNthYe arsAgo(1, "%m/%d/%Y" ) | |
67 | ||
68 | end | |
69 | ||
70 | after(:a ll) do | |
71 | @drive r.close | |
72 | end | |
73 | ||
74 | context 'AC#DCKDA- 630,543,12 08|TC#DCKD A-574,557, 1214`: Ad d New Entr y for Kidn ey Glucose Tracker' do | |
75 | it '. Verify the Add (+) b utton is a vailable' do | |
76 | expe ct(@tklist Detail.add NewEntry?) .to eq(tru e) | |
77 | end | |
78 | ||
79 | it '. Verify the detail sc reen heade r displays correctly ' do | |
80 | @tkl istDetail. addNewEntr y | |
81 | @com monElement s.primaryH eader_elem ent.when_v isible(tim eout=10) | |
82 | expe ct(@common Elements.p rimaryHead er).to eq( "Add Gluco se Entry") | |
83 | end | |
84 | ||
85 | it '. Verify tha t required field ind icator is present an d all fiel ds are pre sent with the correc t label' d o | |
86 | Wati r::Wait.un til {@comm onElements .text.incl ude? "Nume ric value (mg/dl)"} | |
87 | expe ct(@common Elements.r equiredFie ldLabel).t o eq("* re quired fie ld") | |
88 | expe ct(@tklist Detail.dat eLabel).to eq("* Dat e:") | |
89 | expe ct(@tklist Detail.tim eLabel).to eq("* Tim e:") | |
90 | expe ct(@tklist Detail.glu coseLevelL bl.include ?("* Gluco se Level ( mg/dl):")) .to eq(tru e) | |
91 | expe ct(@tklist Detail.tes tMethodLab el).to eq( "* Tested: ") | |
92 | expe ct(@tklist Detail.not eLabel).to eq("Note: ") | |
93 | end | |
94 | ||
95 | it '. Verify tha t the MM/D D/YYYY dis plays as t he format guidance a t Date fie ld; HH:MM AM/PM disp lays as th e format g uidance at Time fiel d' do | |
96 | expe ct(@tklist Detail.dat eOnDetail_ element.at tribute('p laceholder ')).to eq( "MM/DD/YYY Y") | |
97 | expe ct(@tklist Detail.tim eOnDetail_ element.at tribute('p laceholder ')).to eq( "HH:MM AM/ PM") | |
98 | end | |
99 | ||
100 | it '. Select the Numeric V alue radio button. V erify that the edit box has th e correct label and user can e nter numer ic values ' do | |
101 | @tkl istDetail. selectAGlu coseRadioB utton("tru e", "numer icValue") | |
102 | slee p 0.5 | |
103 | expe ct(@tklist Detail.glu coseNumeri cValueLbl) .to eq("Gl ucose Leve l (mg/dl): ") | |
104 | expe ct(@tklist Detail.glu coseLevel_ element.at tribute("p laceholder ")).to eq( "Between 0 and 600") | |
105 | @tkl istDetail. glucoseLev el = "601" | |
106 | @tkl istDetail. saveBttn_e lement.sen d_keys(:ta b) | |
107 | @com monElement s.scrollDo wn(@driver ) | |
108 | @tkl istDetail. saveBttn | |
109 | @err or.errorHe ader_eleme nt.when_vi sible | |
110 | errM sg = "Glu cose Level (mg/dl) i s outside the expect ed range. Please ent er a value between 0 and 600." | |
111 | expe ct(@error. isThisErro rDisplayed (errMsg)). to eq(true ) | |
112 | end | |
113 | ||
114 | it '. Select the Non-Numer ic Value r adio butto n. Verify that the e dit box ha s the corr ect label and user c an enter n on-numeric values ' do | |
115 | @tkl istDetail. selectAGlu coseRadioB utton("fal se", "nume ricValue") | |
116 | slee p 0.5 | |
117 | expe ct(@tklist Detail.glu coseNonNum ericLbl).t o eq("Moni tor Readin g:") | |
118 | expe ct(@tklist Detail.glu coNonNumer ic_element .attribute ("placehol der")).to eq("Exampl e: High") | |
119 | @tkl istDetail. glucoNonNu meric = "N ormal" | |
120 | @tkl istDetail. testMethod ="After Me al" | |
121 | @tkl istDetail. saveBttn | |
122 | @com monTest.wa itForConte ntLoaded | |
123 | slee p 2 | |
124 | expe ct(@tklist Detail.get DisplayedV alueOnSubF eature(3)) .to eq("No rmal") | |
125 | end | |
126 | ||
127 | it '. Verify the Tested dr op down li st set on Select as default an d had the right choi ces to sel ect from.' do | |
128 | @tkl istDetail. addNewEntr y | |
129 | @com monTest.wa itForConte ntLoaded | |
130 | expe ct(@tklist Detail.tes tMethod).t o eq("Sele ct") | |
131 | expe ct(@tklist Detail.tes tMethod_op tions.incl ude?("Fast ing (8 hou rs)")).to eq(true) | |
132 | expe ct(@tklist Detail.tes tMethod_op tions.incl ude?("Afte r Meal")). to eq(true ) | |
133 | expe ct(@tklist Detail.tes tMethod_op tions.incl ude?("Unkn own")).to eq(true) | |
134 | end | |
135 | ||
136 | it '. Verify tha t Date is required a nd can not be future date; Tim e is requi red.' do | |
137 | @tkl istDetail. dateOnDeta il= "" | |
138 | slee p 0.5 | |
139 | @tkl istDetail. timeOnDeta il= "" | |
140 | slee p 0.5 | |
141 | @tkl istDetail. saveBttn_e lement.sen d_keys(:ta b) | |
142 | @com monElement s.scrollDo wn(@driver ) | |
143 | @tkl istDetail. saveBttn | |
144 | @err or.errorHe ader_eleme nt.when_vi sible | |
145 | expe ct(@error. isThisErro rDisplayed ("Date fie ld is requ ired.")).t o eq(true) | |
146 | expe ct(@error. isThisErro rDisplayed ("Time fie ld is requ ired.")).t o eq(true) | |
147 | ||
148 | @tkl istDetail. dateOnDeta il= $tomor row | |
149 | slee p 0.5 | |
150 | @tkl istDetail. saveBttn | |
151 | errM sg = "Dat e must be between " + $sixYear sAgo + " a nd " + $to dayLong + "." | |
152 | ||
153 | expe ct(@error. isThisErro rDisplayed (errMsg)). to eq(true ) | |
154 | end | |
155 | ||
156 | it '. Verify the Note fiel d has a ch aracter co unter and it allows max 250 ch aracters' do | |
157 | expe ct(@tklist Detail.cha racterCoun ter?).to e q(true) | |
158 | expe ct(@tklist Detail.tex tareaMaxLe ngthTest(2 50, true, "textarea" ,"Note")). to eq(1) | |
159 | @tkl istDetail. cancelBttn _element.s end_keys(: tab) | |
160 | @com monElement s.scrollDo wn(@driver ) | |
161 | slee p 1 | |
162 | @tkl istDetail. cancelBttn | |
163 | @tkl istDetail. addNewEntr y_element. when_visib le(timeout =10) | |
164 | end | |
165 | ||
166 | it '. Happy path , to add t hree entri es. Verify the value s are save d and they display c orrectly i n the Tabl e View' do | |
167 | @tkl istDetail. addAGlucos eEntry($ye sterdayLon g, "07:00 AM", 69, " Fasting (8 hours)", "") | |
168 | valu eStr = '69 , Fasting (8 hours), ' + $yest erdayLong + ' 07:00 AM' | |
169 | slee p 2 | |
170 | @tkl istDetail. summaryTab le_element .when_visi ble(timeou t=15) | |
171 | expe ct(@tklist Detail.ver ifyValuesD isplayRigh tInTableVi ew(2, 4, v alueStr, f alse)).to eq(true) | |
172 | ||
173 | @tkl istDetail. addAGlucos eEntry($ye sterdayLon g, "01:00 PM", 180, "After Mea l", "") | |
174 | valu eStr = '18 0, After M eal, ' + $ yesterdayL ong + ' 01 :00 PM' | |
175 | slee p 2 | |
176 | @tkl istDetail. summaryTab le_element .when_visi ble(timeou t=15) | |
177 | expe ct(@tklist Detail.ver ifyValuesD isplayRigh tInTableVi ew(2, 4, v alueStr, f alse)).to eq(true) | |
178 | ||
179 | @tkl istDetail. addAGlucos eEntry($ye sterdayLon g, "08:00 PM", 150, "Unknown", "Walked a fter dinne r") | |
180 | valu eStr = '15 0, Unknown , ' + $yes terdayLong + ' 08:00 PM' | |
181 | slee p 2 | |
182 | @tkl istDetail. summaryTab le_element .when_visi ble(timeou t=15) | |
183 | expe ct(@tklist Detail.ver ifyValuesD isplayRigh tInTableVi ew(2, 4, v alueStr, t rue)).to e q(true) | |
184 | end | |
185 | ||
186 | it '. Verify tha t Date and Time valu es must be unique. U sers canno t save mor e than one entry for a given d ate/time.' do | |
187 | @tkl istDetail. addAGlucos eEntry($ye sterdayLon g, "08:00 PM", 100, "After Mea l", "Walke d after di nner") | |
188 | @com monTest.wa itForConte ntLoaded | |
189 | if @ error.erro rHeader? ! = true | |
190 | ex pect("Dupl icate date /time were saved wit hout throw ing an err or").to eq ("Duplicat e date/tim e is not a llowed") | |
191 | else | |
192 | er rMsg = "A n entry ha s already been saved with the same date and time. Please cha nge your d ate and/or time and save again ." | |
193 | ex pect(@erro r.isThisEr rorDisplay ed(errMsg) ).to eq(tr ue) | |
194 | @t klistDetai l.cancelBt tn_element .send_keys (:tab) | |
195 | @c ommonEleme nts.scroll Down(@driv er) | |
196 | @t klistDetai l.cancelBt tn | |
197 | @t klistDetai l.summaryT able_eleme nt.when_vi sible(time out=15) | |
198 | end | |
199 | end | |
200 | end | |
201 | ||
202 | context 'AC#DCKDA- 631|TC#DCK DA-574: E dit an Ent ry for Kid ney Glucos e Tracker' do | |
203 | it '. Verify tha t All data elements available in Add Ent ry mode ar e visible. ' do | |
204 | @tkl istDetail. clickAnEnt ryToEditOr Delete(2) | |
205 | @com monTest.wa itForConte ntLoaded | |
206 | expe ct(@common Elements.p rimaryHead er).to eq( "Edit Gluc ose Entry" ) | |
207 | expe ct(@tklist Detail.dat eLabel).to eq("* Dat e:") | |
208 | expe ct(@tklist Detail.tim eLabel).to eq("* Tim e:") | |
209 | expe ct(@tklist Detail.glu coseLevelL bl.include ?("* Gluco se Level ( mg/dl):")) .to eq(tru e) | |
210 | expe ct(@tklist Detail.tes tMethodLab el).to eq( "* Tested: ") | |
211 | expe ct(@tklist Detail.not eLabel).to eq("Note: ") | |
212 | end | |
213 | ||
214 | it '. Verify tha t all valu es previou sly saved are visibl e.' do | |
215 | expe ct(@tklist Detail.dat eOnDetail) .to eq($ye sterdayLon g) | |
216 | expe ct(@tklist Detail.tim eOnDetail) .to eq("08 :00 PM") | |
217 | expe ct(@tklist Detail.glu coseLevel) .to eq("15 0") | |
218 | expe ct(@tklist Detail.tes tMethod).t o eq("Unkn own") | |
219 | expe ct(@tklist Detail.not e).to eq(" Walked aft er dinner" ) | |
220 | end | |
221 | ||
222 | it '. Modify a v alue and s ave. Verif y the upda ted value displays i n the tabl e view' do | |
223 | @tkl istDetail. glucoseLev el = 200 | |
224 | @tkl istDetail. saveBttn_e lement.sen d_keys(:ta b) | |
225 | @com monElement s.scrollDo wn(@driver ) | |
226 | @tkl istDetail. saveBttn | |
227 | @com monTest.wa itForConte ntLoaded | |
228 | slee p 2 | |
229 | valu eStr = "20 0, Unknown , " + $yes terdayLong + " 08:00 PM" | |
230 | expe ct(@tklist Detail.ver ifyValuesD isplayRigh tInTableVi ew(2, 4, v alueStr, t rue)).to e q(true) | |
231 | end | |
232 | ||
233 | end | |
234 | ||
235 | context 'AC#DCKDA- 631|TC#DCK DA-574: C ancel and Delete for Kidney Gl ucose' do | |
236 | it '. Verify tha t When a u ser select s Cancel, no updates are made to the rec ord.' do | |
237 | @tkl istDetail. clickAnEnt ryToEditOr Delete(2) | |
238 | @tkl istDetail. cancelBttn _element.s end_keys(: tab) | |
239 | @com monElement s.scrollDo wn(@driver ) | |
240 | @tkl istDetail. cancelBttn | |
241 | @com monTest.wa itForConte ntLoaded | |
242 | valu eStr = "20 0, Unknown , " + $yes terdayLong + " 08:00 PM" | |
243 | expe ct(@tklist Detail.ver ifyValuesD isplayRigh tInTableVi ew(2, 4, v alueStr, t rue)).to e q(true) | |
244 | end | |
245 | ||
246 | it '. Verify tha t When a u ser select s Delete, the system prompts t he user to confirm t he Delete by display ing a moda l:' do | |
247 | @tkl istDetail. clickAnEnt ryToEditOr Delete(2) | |
248 | @tkl istDetail. deleteBttn _element.s end_keys(: tab) | |
249 | @com monElement s.scrollDo wn(@driver ) | |
250 | @tkl istDetail. deleteBttn | |
251 | @mod al.modalTi tle_elemen t.when_vis ible | |
252 | expe ct(@modal. modalTitle ).to eq("C onfirmatio n") | |
253 | expe ct(@modal. section1). to eq("Are you sure you want t o remove t his entry? Select YE S to remov e the entr y or NO to return to the entry screen.") | |
254 | @mod al.ok2 | |
255 | @mod al.modalTi tle_elemen t.when_not _visible | |
256 | expe ct(@common Elements.p rimaryHead er).to eq( "Edit Gluc ose Entry" ) | |
257 | ||
258 | @tkl istDetail. deleteBttn _element.s end_keys(: tab) | |
259 | @com monElement s.scrollDo wn(@driver ) | |
260 | slee p 1 | |
261 | @tkl istDetail. deleteBttn | |
262 | @mod al.modalTi tle_elemen t.when_vis ible | |
263 | @mod al.yes | |
264 | valu eStr = $ye sterdayLon g + "08:00 PM" | |
265 | expe ct(@tklist Detail.sea rchThisVal ueInAllRow s(1, value Str)).to e q(false) | |
266 | end | |
267 | end | |
268 | ||
269 | context 'AC#DCKDA- 633 |TC#DC KDA-574: N avigation' do | |
270 | it '. Verify tha t < is sho wn on the list scree n when on a phone vi ew and has the corre ct alt tex t. Clickin g it retur ns the use r to the l ist view' do | |
271 | ||
272 | begi n | |
273 | Wa tir::Wait. until | |
274 | @t klistDetai l.busySpin ner_elemen t.when_not _visible | |
275 | resc ue | |
276 | Wa tir::Wait: :TimeoutEr ror | |
277 | un til | |
278 | @t klistDetai l.busySpin ner_elemen t.when_not _visible | |
279 | en d | |
280 | end | |
281 | ||
282 | @tkl istDetail. addNewEntr y_element. when_visib le | |
283 | @tkl istDetail. addNewEntr y | |
284 | @com monTest.wa itForConte ntLoaded | |
285 | ||
286 | resi zeWindowTo (320, 480) | |
287 | slee p 1 | |
288 | expe ct(@common Elements.r eturnToPre vScreen?). to eq(true ) | |
289 | expe ct(@common Elements.r eturnToPre vScreen_el ement.attr ibute('tit le')).to e q("Return to Previou s Screen") | |
290 | ||
291 | @com monElement s.returnTo PrevScreen | |
292 | @com monElement s.primaryH eader_elem ent.when_v isible(tim eout=10) | |
293 | expe ct(@common Elements.p rimaryHead er).to eq( "Glucose") | |
294 | end | |
295 | ||
296 | it '. Verify use r is promp t with a m odal when clicking < with unsa ved data' do | |
297 | @tkl istDetail. clickAnEnt ryToEditOr Delete(2) | |
298 | @tkl istDetail. glucoseLev el = 230 | |
299 | @com monElement s.returnTo PrevScreen | |
300 | @mod al.modalTi tle_elemen t.when_vis ible | |
301 | expe ct(@modal. modalTitle ).to eq("C onfirmatio n") | |
302 | expe ct(@modal. section1). to eq("You have not saved your changes. If you wis h to conti nue withou t saving s elect CONT INUE, othe rwise sele ct RETURN to return to the ent ry screen. ") | |
303 | ||
304 | @mod al.ok2 | |
305 | @mod al.modalTi tle_elemen t.when_not _visible | |
306 | expe ct(@common Elements.p rimaryHead er).to eq( "Edit Gluc ose Entry" ) | |
307 | ||
308 | @tkl istDetail. glucoseLev el = 230 | |
309 | @com monElement s.returnTo PrevScreen | |
310 | @mod al.modalTi tle_elemen t.when_vis ible | |
311 | ||
312 | @mod al.yes | |
313 | @mod al.modalTi tle_elemen t.when_not _visible | |
314 | expe ct(@common Elements.p rimaryHead er).to eq( "Glucose") | |
315 | end | |
316 | ||
317 | it '. Verify tha t when nav igate away from a sc reen with unsaved da ta, the sa me modal p ops up' do | |
318 | @tkl istDetail. startDate_ element.se nd_keys(:t ab) | |
319 | @tkl istDetail. startDate | |
320 | Wati r::Wait.un til {@tkli stDetail.t ext.includ e? "Glucos e Level (m g/dl)"} | |
321 | @tkl istDetail. clickAnEnt ryToEditOr Delete(2) | |
322 | @tkl istDetail. glucoseLev el= 230 | |
323 | ||
324 | @lef tnav.leftS ideNav | |
325 | @lef tnav.home_ element.wh en_visible | |
326 | @lef tnav.learn More | |
327 | @mod al.modalTi tle_elemen t.when_vis ible | |
328 | expe ct(@modal. modalTitle ).to eq("C onfirmatio n") | |
329 | expe ct(@modal. section1). to eq("You have not saved your changes. If you wis h to conti nue withou t saving s elect CONT INUE, othe rwise sele ct RETURN to return to the ent ry screen. ") | |
330 | ||
331 | @mod al.yes | |
332 | ||
333 | resi zeWindowTo Default() | |
334 | end | |
335 | end | |
336 | ||
337 | end |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.