Advertisement
Guest User

oil

a guest
Nov 2nd, 2016
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 58.75 KB | None | 0 0
  1. add_company.po
  2.  
  3. 'use strict';
  4. const commonHelper = require('./helpers/common.helper');
  5.  
  6. class AddCompanyPage {
  7. constructor() {
  8. this.companyTitle = $('h3');
  9. this.txtCompanyName = element(by.model('company.name'));
  10. this.txtCompanySite = element(by.model('company.website'));
  11. this.txtCompanyNote = element(by.model('company.notes'));
  12. this.txtCompanyType = $('[name="kind"]');
  13. this.btnSaveCompany = element(by.xpath('//span[text()="Save"]'));
  14. this.imageCompany = $('[src="company.icon_path"]');
  15. this.txtSeachCompany = element(by.model('paginator.query.name__icontains'));
  16. }
  17.  
  18. selectCompanyType(type){
  19. browser.waitForAngular();
  20. commonHelper.waitUntilElementVisible(this.txtCompanyType);
  21. browser.sleep(1000);
  22. this.txtCompanyType.click();
  23. browser.sleep(2000);
  24. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  25. }
  26.  
  27. searchCompany(name){
  28. return element(by.xpath('//*[contains(@class, "md-cell ng-binding")][contains(.,"'+ name +'")]'));
  29. }
  30. }
  31.  
  32. module.exports = AddCompanyPage;
  33. ---------------------------------------------------
  34. add_contact.po
  35.  
  36. 'use strict';
  37. const commonHelper = require('./helpers/common.helper');
  38.  
  39. class AddContactPage {
  40. constructor() {
  41. this.txtContactName = element(by.model('contact.first_name'));
  42. this.txtContactLastName = element(by.model('contact.last_name'));
  43. this.txtContactTitte = element(by.model('contact.title'));
  44. this.txtContactNumber = element(by.model('contact.phone_number'));
  45. this.txtContactEmail = element(by.model('contact.email'));
  46. this.txtContactsCompany = $('[name="company"]');
  47. this.txtContactsOffices = $('[name="offices"]');
  48. this.txtSeachContacts = element(by.model('paginator.query.search'))
  49. this.btnSaveCompany = element(by.xpath('//span[text()="Save"]'));
  50. this.btnEditContact = $('[href="/contacts/edit/1"]');
  51. this.btnEditContact = element(by.xpath('//a[text()="Edit Contact"]'));
  52. this.tittleEdit = element(by.xpath('//*[contains(.,"Edit Contact")]'));
  53. }
  54.  
  55. getBtnDetailsContact(){
  56. return element(by.xpath('//div[contains(@class,"md-whiteframe layout-padding")]//*[contains(@class, "material-icons")][contains(.,"info")]'));
  57. }
  58.  
  59. getTable(attribute) {
  60. return element(by.xpath('//span[text()=.,"'+ attribute +'"]'))
  61. }
  62.  
  63. saveCompany(){
  64. browser.executeScript('document.querySelector(".md-select-backdrop").remove()');
  65. browser.executeScript('document.getElementsByClassName("md-scroll-mask")[0].style.display = "none"');
  66. this.btnSaveCompany.click();
  67. }
  68.  
  69. selectContactOffices(name){
  70. browser.waitForAngular();
  71. commonHelper.waitUntilElementVisible(this.txtContactsOffices);
  72. browser.sleep(1000);
  73. this.txtContactsOffices.click();
  74. browser.sleep(2000);
  75. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ name +'")]')).click();
  76. browser.executeScript('document.getElementsByClassName("md-select-menu-container md-oc-theme md-active md-clickable")[0].style.display = "none"')
  77. }
  78.  
  79. selectContactCompany(name){
  80. browser.waitForAngular();
  81. commonHelper.waitUntilElementVisible(this.txtContactsCompany);
  82. browser.sleep(1000);
  83. this.txtContactsCompany.click();
  84. browser.sleep(2000);
  85. element(by.xpath('//div[contains(@class, "md-select-menu-container md-oc-theme md-active md-clickable")]//div[contains(.,"'+ name +'")]')).click();
  86. }
  87. }
  88.  
  89. module.exports = AddContactPage;
  90. ------------------------------------------------------------------
  91. add_sku.po
  92.  
  93. 'use strict';
  94.  
  95. const commonHelper = require('./helpers/common.helper');
  96.  
  97. class AddSkuPage {
  98. constructor() {
  99. this.pageTittle = $('h3');
  100. this.txtCategorySKU = element(by.model('data.category'));
  101. this.txtSKU = element(by.model('equipment.sku'));
  102. this.txtDescription = element(by.model('equipment.description'));
  103. this.txtHour = element(by.model('equipment.unit'));
  104. this.txtRate = element(by.model('equipment.usage_rate'));
  105. this.txtTime = element(by.model('equipment.units_min'));
  106. this.btnAdd = $('[aria-label="Add"]');
  107. }
  108.  
  109. selectHour(hour){
  110. browser.waitForAngular();
  111. commonHelper.waitUntilElementVisible(this.txtHour);
  112. this.txtHour.click();
  113. browser.sleep(500);
  114. element(by.xpath('//div[contains(@class, "md-active md-clickable")]//div[contains(.,"'+ hour +'")]')).click();
  115. }
  116.  
  117. selectCategorySKU(type){
  118. browser.waitForAngular();
  119. commonHelper.waitUntilElementVisible(this.txtCategorySKU);
  120. browser.sleep(1000);
  121. this.txtCategorySKU.click();
  122. browser.sleep(2000);
  123. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  124. }
  125.  
  126. }
  127. module.exports = AddSkuPage;
  128. ------------------------------------------------------------------------
  129. add_wells.po
  130.  
  131. 'use strict';
  132.  
  133. const commonHelper = require('./helpers/common.helper');
  134.  
  135. class AddWellsPage {
  136. constructor() {
  137. this.txtOwner = element(by.model('location.company'));
  138. this.txtLocation = element(by.model('location.name'));
  139. this.txtRegion = element(by.model('location.region'));
  140. this.txtLatitude = element(by.model('location.gps_latitude'));
  141. this.txtLongitude = element(by.model('location.gps_longitude'));
  142. this.txtDescription = element(by.model('location.legal_description'));
  143. this.txtDirection = element(by.model('location.driving_directions'));
  144. this.btnSave = $('[aria-label="Save"]');
  145. }
  146.  
  147. selectOwnerWells(type){
  148. browser.waitForAngular();
  149. commonHelper.waitUntilElementVisible(this.txtOwner);
  150. browser.sleep(1000);
  151. this.txtOwner.click();
  152. browser.sleep(2000);
  153. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  154. }
  155.  
  156. selectRegionrWells(type){
  157. browser.waitForAngular();
  158. commonHelper.waitUntilElementVisible(this.txtRegion);
  159. browser.sleep(1000);
  160. this.txtRegion.click();
  161. browser.sleep(2000);
  162. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  163. }
  164.  
  165. }
  166. module.exports = AddWellsPage;
  167. -----------------------------------------------------------------------
  168. contact.po
  169.  
  170. 'use strict';
  171.  
  172. const commonHelper = require('./helpers/common.helper');
  173.  
  174. class ContactsPage {
  175. constructor() {
  176. this.btnAddContacts = $('[aria-label="Add Contact"]');
  177. this.txtContactsOffices = element(by.model('contact.offices'));$('[ng-model="contact.offices"]');
  178. this.txtOfficeCompany = element(by.xpath('//label[text()="Company"]'));
  179. this.txtOfficeName = $('[ng-model="office.name"][name="officeForm"]');
  180. this.txtOfficeRegion = element(by.model('office.region'));
  181. this.txtOfficePhone = element(by.model('office.phone_number'));
  182. this.txtOfficeATTN = element(by.model('office.address.attn_line'));
  183. this.txtOfficeLine1 = element(by.model('office.address.line1'));
  184. this.txtOfficeLine2 = element(by.model('office.address.line2'));
  185. this.txtOfficeCity = element(by.model('office.address.city'));
  186. this.txtOfficeState = element(by.model('office.address.state'));
  187. this.txtOfficeZipcode = element(by.model('office.address.zipcode'));
  188. this.txtOfficeCountry = element(by.model('office.address.country'));
  189. }
  190.  
  191. getTable(name){
  192. return element(by.xpath('//div[containd(@class, "md-list-item-text")]/*[contains(,."'+ name +'")]'));
  193.  
  194. }
  195.  
  196. selectContactOffices(name){
  197. browser.waitForAngular();
  198. commonHelper.waitUntilElementVisible(this.txtOfficeCompany);
  199. browser.sleep(1000);
  200. this.txtOfficeCompany.click();
  201. browser.sleep(2000);
  202. element(by.xpath('//div[contains(@class, "md-select-menu-container md-oc-theme md-active md-clickable")]//*[contains(@class,"ng-scope md-checkbox-enabled md-ink-ripple")]//*[contains(.,"'+ name +'")]')).click();
  203. browser.executeScript('document.getElementsByClassName("md-select-menu-container md-oc-theme md-active md-clickable")[0].style.display = "none"')
  204. }
  205.  
  206. selectCompanyType(type){
  207. browser.waitForAngular();
  208. commonHelper.waitUntilElementVisible(this.txtCompanyType);
  209. browser.sleep(1000);
  210. this.txtCompanyType.click();
  211. browser.sleep(2000);
  212. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  213. }
  214.  
  215. selectRegion(type){
  216. browser.waitForAngular();
  217. commonHelper.waitUntilElementVisible(this.txtOfficeRegion);
  218. browser.sleep(1000);
  219. this.txtOfficeRegion.click();
  220. browser.sleep(2000);
  221. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  222. }
  223. }
  224.  
  225. module.exports = ContactsPage;
  226. --------------------------------------------------
  227. dashboard.po
  228.  
  229. 'use strict';
  230.  
  231. class DashboardPage {
  232. constructor() {
  233. this.menu = $('[role="navigation"]');
  234. this.pageTittle = $('h1');
  235. this.btnPlus = $('#btn-add');
  236. this.btnJobCode = $('[href="/job_codes/"]');
  237. this.btnAddCompany = $('[href="/companies/add/"]');
  238. this.btnDetails = $('[aria-label="Details"]');
  239. this.btnAddContacts = $('[href="/contacts/add/"]');
  240. this.btnSku = $('[href="/oil_field/sku"]');
  241. this.btnWells = $('[href="/oil_field/wells"]');
  242. this.btnEdit = $('[aria-label="Edit"]');
  243. }
  244.  
  245. openMenu(menuItem) {
  246. element(by.xpath('//*[@class="nav-label ng-binding"][text()="' + menuItem + '"]')).click()
  247. }
  248.  
  249. selectItem(item) {
  250. element(by.xpath('//a[text()="' + item + '"]')).click()
  251. }
  252. }
  253. module.exports = DashboardPage;
  254. -------------------------------------
  255. edit_ticket.po
  256.  
  257. 'use strict';
  258.  
  259. const commonHelper = require('./helpers/common.helper');
  260.  
  261. class EditTicketPage {
  262. constructor() {
  263. this.btnSaveTicket = $('[ng-click="save(ticketForm)"]');
  264. this.txtLocation = $('[aria-label="Location"]');
  265. this.txtAfe = $('[aria-label="AFE#"]');
  266. this.txtJobCode = $('[aria-label="Job Code"]');
  267. this.btnNewLine = $('[ng-click="editLineItem()"]');
  268. this.txtCategory = $('[aria-label="Category"]');
  269. this.txtSubcategory = $('[aria-label="Subcategory"]');
  270. this.btnSaveClose = $('[ng-click="save(lineItemForm)"]');
  271. this.tittle = $('[ng-show="showLineItems"] h2');
  272. this.txtLineNote = element(by.model('line.notes'));
  273. this.btnEditLine = $('[ng-click="editLineItem(li)"]');
  274. this.txtSelectHour = $('[placeholder="/hr"]');
  275. this.txtRate = element(by.model('line.usage_rate'));
  276. this.txtHours = element(by.model('line.units_min'));
  277. this.txtQuantity = element(by.model('line.units_used'));
  278. this.txtTotal = element(by.model('line.amount'));
  279. this.txtDiscount = element(by.model('line.discount'));
  280. this.txtMinimum = $('[name="minimum"]');
  281. this.txtDaysStandby = element(by.model('line.units_standby'));
  282. this.txtStandbyRate = element(by.model('line.standby_rate'));
  283. this.txtCalendarStartDate = $('[ng-model="line.start_datetime"] .md-datepicker-input');
  284. this.txtCalendarEndDate = $('[ng-model="line.end_datetime"] .md-datepicker-input');
  285. this.txtStartHour = element(by.model('data.startHour'));
  286. this.txtStartMinute = element(by.model('data.startMinute'));
  287. this.txtEndHour = element(by.model('data.endHour'));
  288. this.txtEndMinute = element(by.model('data.endMinute'));
  289. this.btnAddSignature = element(by.xpath('//div[contains(@class, "ticket-signatures")]//span[contains(.,"Add Signature")]'));
  290. this.btnSaveSignature = $('[aria-label="Add Signature"]');
  291. this.txtSigatureName = element(by.model('signature.name'));
  292. this.txtSignatureStyle = $('[aria-label="Select Style"]');//element(by.model('signature.style'));
  293. this.txtSignatureEmail = element(by.model('signature.email'));
  294. this.txtEmailCertify = element(by.model('signature.wat'));
  295. this.txtFeedback = element(by.model('rating.feedback'));
  296. this.btnCheckboxSignature = element(by.model('agree'));
  297. this.SignatureBlock = $('[class^="signature-block"]');
  298. this.LeaveRatigCheckbox = element(by.model('enableRating'));
  299. this.btnAddNotes = element(by.xpath('//div[contains(@class, "ticket-notes")]//span[contains(.,"Add Note")]'));
  300. this.btnSaveNote = $('[ng-click="save(notesForm)"]');
  301. this.txtNote = element(by.model('note.notes'));
  302. this.btnMemberSaved = $('[aria-label="Save and Close"]');
  303. this.memberCheckbox = element(by.model('selected[contact.id]'));
  304. this.btnAddMember = $('[ng-click="showContacts()"]');
  305. this.btnAddAttachment = $('.ticket-attachments [ng-click^="modalUp"]');
  306. this.mdlNewAttachment = $('[ng-controller="TicketsAttachmentDialogController"]');
  307. this.attachmentInputField = $('[type="file"]');
  308. this.saveAttachment = $('[ng-click="save()"]');
  309. }
  310.  
  311. selectHour(hour){
  312. browser.waitForAngular();
  313. commonHelper.waitUntilElementVisible(this.txtSelectHour);
  314. this.txtSelectHour.click();
  315. browser.sleep(500);
  316. element(by.xpath('//div[contains(@class, "md-active md-clickable")]//div[contains(.,"'+ hour +'")]')).click();
  317. }
  318.  
  319. selectCategory(category){
  320. browser.waitForAngular();
  321. commonHelper.waitUntilElementVisible(this.txtCategory);
  322. browser.sleep(1000);
  323. this.txtCategory.click();
  324. browser.sleep(2000);
  325. element(by.xpath('//div[contains(@class, "md-active md-clickable")]//div[contains(.,"'+ category +'")]')).click();
  326. }
  327.  
  328. selectSubCategory(category){
  329. browser.waitForAngular();
  330. commonHelper.waitUntilElementVisible(this.txtSubcategory);
  331. this.txtSubcategory.click();
  332. browser.sleep(500);
  333. element(by.xpath('//div[contains(@class, "md-active md-clickable")]//em[contains(.,"'+ category +'")]')).click();
  334. }
  335.  
  336. getRate(section, index) {
  337. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="usage_rate"]/span'))
  338. }
  339.  
  340. getUnitsMin(section, index) {
  341. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="units_min"]/span'))
  342. }
  343.  
  344. getMin(section, index) {
  345. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="minimum"]/span'))
  346. }
  347.  
  348. getAmount(section, index) {
  349. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="amount"]/span'))
  350. }
  351.  
  352. getNote(section, index) {
  353. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@ng-if="li.notes"]'))
  354. }
  355.  
  356. getStandBy(section, index) {
  357. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="standby_rate"]/span'))
  358. }
  359.  
  360. getUnitStandBy(section, index) {
  361. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="units_standby"]/span'))
  362. }
  363.  
  364. getUnitUsed(section, index) {
  365. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="units_used"]/span'))
  366. }
  367.  
  368. selectSignatureCertify() {
  369. browser.waitForAngular();
  370. commonHelper.waitUntilElementVisible(this.txtEmailCertify);
  371. this.txtEmailCertify.click();
  372. browser.sleep(500);
  373. element(by.xpath('//*[contains(@class, "md-active md-clickable")]//div[contains(.,"This Form")]')).click();
  374. }
  375.  
  376. checkboxSelected() {
  377. return element(by.xpath('//*[contains(@class, "md-oc-theme layout-align-start-start flex")]'));
  378. }
  379.  
  380. checkboxLeaveRating() {
  381. return element(by.xpath('//*[contains(@class, "md-oc-theme")]'));
  382. }
  383.  
  384. ratePunctuality() {
  385. element(by.xpath('//div[contains(@ng-show,"enableRating")]//div[contains(.,"Punctuality:")]//i[contains(.,"star")][3]')).click();
  386. }
  387.  
  388. rateCompetence() {
  389. element(by.xpath('//div[contains(@ng-show,"enableRating")]//div[contains(.,"Competence:")]//i[contains(.,"star")][3]')).click();
  390. }
  391.  
  392. rateProfessionalism() {
  393. element(by.xpath('//div[contains(@ng-show,"enableRating")]//div[contains(.,"Professionalism:")]//i[contains(.,"star")][3]')).click();
  394. }
  395.  
  396. selectSignatureStyle() {
  397. browser.waitForAngular();
  398. commonHelper.waitUntilElementVisible(this.txtSignatureStyle);
  399. this.txtSignatureStyle.click();
  400. browser.sleep(500);
  401. element(by.xpath('//*[contains(@class, "signature_style_I")]//div[contains(.,"John Smith")]')).click();
  402. }
  403.  
  404. notePresent(note) {
  405. return element(by.xpath('//div[contains(@class, "ticket-notes hide-print")]//strong[contains(.,"'+ note +'")]'));
  406. }
  407.  
  408. teamMemberIsPresennt(text) {
  409. return element(by.xpath('//div[contains(@class, "ticket-members")]//div[contains(.,"'+ text +'")]'));
  410. }
  411.  
  412. checboxIsPresent() {
  413. return element(by.xpath('//*[contains(@class,"md-dialog-content")]//*[contains(@class, "md-container md-ink-ripple")]'));
  414. }
  415.  
  416. getStartDate(section, index) {
  417. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="start_datetime"]/span'))
  418. }
  419.  
  420. getEndDate(section, index) {
  421. return element(by.xpath('//h2[text()="'+ section +'"]/..//tbody/tr['+ index +']//*[@field="end_datetime"]/span'))
  422. }
  423.  
  424. chkMember() {
  425. return $('[ng-model="selected[contact.id]"][aria-checked="true"]');
  426. }
  427.  
  428. chkSignature() {
  429. return $('[aria-label="Consent"][aria-checked="true"]');
  430. }
  431.  
  432. uploadAttachment(name) {
  433. commonHelper.waitUntilElementPresent(this.attachmentInputField);
  434. browser.executeScript('document.querySelector("[type=file]").style.display = "block"');
  435. var path = require('path');
  436. var fileToUpload = '../data/testfiles/' + name,
  437. absolutePath = path.resolve(__dirname, fileToUpload);
  438. this.attachmentInputField.sendKeys(absolutePath);
  439. }
  440.  
  441. attachment(name) {
  442. return $('[aria-label="'+ name +'"]');
  443. }
  444. }
  445. module.exports = EditTicketPage;
  446. ---------------------------------------------------------
  447. job_code.po
  448.  
  449. 'use strict';
  450.  
  451. class JobCodePage {
  452. constructor() {
  453. this.btnAddCode = $('[aria-label="Add Code"]');
  454. this.pageTittle = $('h3');
  455. this.txtJobCode = element(by.model('jobCode.user_job_code_no'));
  456. this.txtDiscription = element(by.model('jobCode.description'));
  457. this.btnSave = $('[aria-label="Save"]');
  458. this.txtSearchCode = element(by.model('paginator.query.search'));
  459. this.btnDetailsJobe = element(by.xpath('//*[contains(@class,"md-table ng-isolate-scope")]//*[contains(@class, "material-icons icon-stroke")]'));
  460. }
  461.  
  462. searchCode(name){
  463. return element(by.xpath('//*[contains(@class, "md-cell ng-binding")][contains(.,"'+ name +'")]'));
  464. }
  465. }
  466. module.exports = JobCodePage;
  467. -----------------------------------------------------------------
  468. sign_in.po
  469.  
  470. 'use strict';
  471.  
  472. class SignInPage {
  473.  
  474. constructor() {
  475. this.txtUsername = element(by.model('credentials.username'));
  476. this.txtPassword = element(by.model('credentials.password'));
  477. this.btnLogin = $('[type="submit"]');
  478. }
  479.  
  480. login(email, password) {
  481. this.fillEmailField(email);
  482. this.fillPasswordField(password);
  483. this.btnLogin.click();
  484. }
  485.  
  486. fillEmailField(email) {
  487. this.txtUsername.clear();
  488. this.txtUsername.sendKeys(email);
  489. }
  490.  
  491. fillPasswordField(password) {
  492. this.txtPassword.clear();
  493. this.txtPassword.sendKeys(password);
  494. }
  495. }
  496.  
  497. module.exports = SignInPage;
  498.  
  499. ------------------------------------------------------------------------
  500. sku.po
  501.  
  502. 'use strict';
  503.  
  504. class SkuPage {
  505. constructor() {
  506. this.pageTittle = element(by.xpath('//div[text()="SKU"]'));
  507. this.btnAddSku = $('[href="/equipment/add/"]');
  508. this.txtSearch = element(by.model('query.description__icontains'));
  509. this.btnDetails = element(by.xpath('//i[contains(@class,"material-icons icon-stroke")]'))
  510. }
  511.  
  512. searchOnOilFieldPage(name){
  513. return element(by.xpath('//*[contains(@class, "md-cell ng-binding")][contains(.,"'+ name +'")]'));
  514. }
  515. }
  516. module.exports = SkuPage;
  517. -------------------------------------------------------
  518. ticket.po
  519.  
  520. 'use strict';
  521.  
  522. class TicketsPage {
  523. constructor() {
  524. this.pageTittle = $('h1');
  525. }
  526. }
  527.  
  528. module.exports = TicketsPage;
  529. ------------------------------------------------------------------
  530. view.po
  531.  
  532. 'use strict';
  533.  
  534. class ViewPage {
  535. constructor() {
  536. this.btnBack = $('[ng-click="goBack()"]')
  537. }
  538.  
  539. pageTittle(name){
  540. return element(by.xpath('//p[contains(@class,"md-headline ng-binding")][contains(.,"'+ name +'")]'));
  541. }
  542.  
  543. getTable(attribute) {
  544. return element(by.xpath('//dd[contains(.,"'+ attribute +'")]'))
  545. }
  546. }
  547. module.exports = ViewPage;
  548. -------------------------------------------------------------
  549.  
  550. wells.po
  551.  
  552. 'use strict';
  553.  
  554. class WellsPage {
  555. constructor() {
  556. this.pageTittle = element(by.xpath('//div[text()="Locations"]'));
  557. this.btnAddLocation = $('[href="/locations/add/"]');
  558. this.txtSearch = element(by.model('paginator.query.name__icontains'));
  559. }
  560. }
  561. module.exports = WellsPage;
  562.  
  563. ------------------------------------------------------------
  564.  
  565. dashboard.spec
  566.  
  567. 'use strict';
  568.  
  569. const pageObject = require('./../../services').container.PageObject;
  570. const signInPage = pageObject.getSignInPage();
  571. const dashboardPage = pageObject.getDashboardPage();
  572. const editTicketPage = pageObject.getEditTicketPage();
  573. const addCompanyPage = pageObject.getAddCompanyPage();
  574. const addContactsPage = pageObject.getAddContactPage();
  575. const signInData = require('./../../data/sign_in');
  576. const dashboardData = require('./../../data/dashboard');
  577. const commonHelper = require('./../../services/helpers/common.helper');
  578. var strftime = require('strftime');
  579.  
  580. describe('Dashboard', () => {
  581.  
  582. var username = signInData.testAccount.username;
  583. var password = signInData.testAccount.password;
  584.  
  585. beforeAll(() => {
  586. browser.ignoreSynchronization = false;
  587. browser.driver.manage().window().setSize(1440, 900);
  588. });
  589.  
  590. afterAll(() => {
  591. commonHelper.clearAllData();
  592. });
  593.  
  594. describe('checking for add and edit company', () => {
  595.  
  596. var time = commonHelper.uniqueValue();
  597.  
  598. beforeAll(() => {
  599. browser.get(signInData.link);
  600. });
  601.  
  602. afterAll(() => {
  603. commonHelper.clearAllData();
  604. });
  605.  
  606. it('should open login page', () => {
  607. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  608. });
  609.  
  610. it('should redirect on dashboard page after login', () => {
  611. signInPage.login(username, password);
  612. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  613.  
  614. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  615. });
  616.  
  617. it('should click on add company', () => {
  618. dashboardPage.btnAddCompany.click();
  619.  
  620. expect(addCompanyPage.companyTitle.getText()).toEqual('Add Company');
  621. });
  622.  
  623. it('should add company', () => {
  624. addCompanyPage.txtCompanyName.sendKeys('Microsoft' + time);
  625. addCompanyPage.txtCompanySite.sendKeys('www.'+ time +'.com');
  626. addCompanyPage.selectCompanyType('Service');
  627. addCompanyPage.txtCompanyNote.sendKeys(time);
  628. });
  629.  
  630. it('should add icon for company',() => {
  631. editTicketPage.uploadAttachment('index.jpg');
  632. addCompanyPage.btnSaveCompany.click();
  633.  
  634. expect(addCompanyPage.imageCompany.isDisplayed()).toBe(true);
  635. });
  636.  
  637. it('should redirect to dashboard',() => {
  638. dashboardPage.openMenu('Dashboard');
  639.  
  640. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  641. });
  642.  
  643. it('should search company',() => {
  644. addCompanyPage.txtSeachCompany.sendKeys('Microsoft' + time);
  645. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('Microsoft' + time));
  646. });
  647.  
  648. it('should click on edit button',() => {
  649. dashboardPage.btnEdit.click();
  650.  
  651. expect(addCompanyPage.companyTitle.getText()).toEqual('Edit Company');
  652. });
  653.  
  654. it('should clear data', () => {
  655. addCompanyPage.txtCompanyName.clear();
  656. addCompanyPage.txtCompanySite.clear();
  657. addCompanyPage.txtCompanyNote.clear();
  658. });
  659.  
  660. it('should edit company', () => {
  661. addCompanyPage.txtCompanyName.sendKeys('PineApple' + time);
  662. addCompanyPage.txtCompanySite.sendKeys('www.' + time + '.com');
  663. addCompanyPage.selectCompanyType('Other');
  664. addCompanyPage.txtCompanyNote.sendKeys(time);
  665. });
  666.  
  667. it('should edit icon for company',() => {
  668. editTicketPage.uploadAttachment('index.jpg');
  669. addCompanyPage.btnSaveCompany.click();
  670.  
  671. expect(addCompanyPage.imageCompany.isDisplayed()).toBe(true);
  672. });
  673.  
  674. it('should redirect to dashboard',() => {
  675. dashboardPage.openMenu('Dashboard');
  676.  
  677. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  678. });
  679.  
  680. it('should search company',() => {
  681. addCompanyPage.txtSeachCompany.sendKeys('PineApple' + time);
  682. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('PineApple' + time));
  683. });
  684.  
  685. it('should see changes in company details',() => {
  686. dashboardPage.btnDetails.click();
  687.  
  688. expect(dashboardPage.pageTittle.getText()).toEqual('PineApple' + time);
  689. });
  690. });
  691.  
  692. describe('checking for add and edit contact', () => {
  693.  
  694. var time = commonHelper.uniqueValue();
  695.  
  696. beforeAll(() => {
  697. browser.get(signInData.link);
  698. });
  699.  
  700. afterAll(() => {
  701. commonHelper.clearAllData();
  702. });
  703.  
  704. it('should open login page', () => {
  705. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  706. });
  707.  
  708. it('should redirect on dashboard page after login', () => {
  709. signInPage.login(username, password);
  710. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  711.  
  712. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  713. });
  714.  
  715. it('should click on add contacts', () => {
  716. dashboardPage.btnAddContacts.click();
  717. });
  718.  
  719. it('should add contacts', () => {
  720. addContactsPage.txtContactName.sendKeys('Gabe' + time);
  721. addContactsPage.txtContactLastName.sendKeys('Malcovich'+ time);
  722. addContactsPage.txtContactTitte.sendKeys('QA' + time);
  723. addContactsPage.selectContactCompany('Chevron');
  724. addContactsPage.selectContactOffices('Chevron Corporate Offices');
  725. addContactsPage.txtContactNumber.sendKeys(time);
  726. addContactsPage.txtContactEmail.sendKeys(time + '@mailinator.com');
  727. });
  728.  
  729. it('should save contacts', () => {
  730. addContactsPage.saveCompany();
  731. });
  732.  
  733. it('should redirect to dashboard',() => {
  734. dashboardPage.openMenu('Dashboard');
  735.  
  736. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  737. });
  738.  
  739. it('should search contacts',() => {
  740. addContactsPage.txtSeachContacts.sendKeys('Gabe' + time);
  741. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('Gabe' + time));
  742. });
  743.  
  744. it('should see contacts details',() => {
  745. addContactsPage.getBtnDetailsContact().click();
  746.  
  747. expect(dashboardPage.pageTittle.getText()).toEqual('QA' + time);
  748. expect(addContactsPage.getTable(time + '@mailinator.com'));
  749. expect(addContactsPage.getTable(time));
  750. });
  751.  
  752. it('should click on edit contacts', () => {
  753. addContactsPage.btnEditContact.click();
  754.  
  755. commonHelper.waitUntilElementVisible(addContactsPage.tittleEdit);
  756. });
  757.  
  758. it('should clear data', () => {
  759. addContactsPage.txtContactName.clear();
  760. addContactsPage.txtContactLastName.clear();
  761. addContactsPage.txtContactTitte.clear();
  762. addContactsPage.txtContactNumber.clear();
  763. addContactsPage.txtContactEmail.clear();
  764. });
  765.  
  766. it('should edit contacts', () => {
  767. addContactsPage.txtContactName.sendKeys('Bruse' + time);
  768. addContactsPage.txtContactLastName.sendKeys('Wayne'+ time);
  769. addContactsPage.txtContactTitte.sendKeys('Tester' + time);
  770. addContactsPage.selectContactCompany('Lowe');
  771. addContactsPage.selectContactOffices('Corporate Office');
  772. addContactsPage.txtContactNumber.sendKeys(time + '00');
  773. addContactsPage.txtContactEmail.sendKeys(time + 'bruse@mailinator.com');
  774. });
  775.  
  776. it('should save contacts', () => {
  777. addContactsPage.saveCompany();
  778. });
  779.  
  780. it('should redirect to dashboard',() => {
  781. dashboardPage.openMenu('Dashboard');
  782.  
  783. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  784. });
  785.  
  786. it('should search contacts',() => {
  787. addContactsPage.txtSeachContacts.sendKeys('Bruse' + time);
  788. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('Bruse' + time));
  789. });
  790.  
  791. it('should see contacts details',() => {
  792. addContactsPage.getBtnDetailsContact().click();
  793.  
  794. expect(dashboardPage.pageTittle.getText()).toEqual('Tester' + time);
  795. expect(addContactsPage.getTable(time + 'bruse@mailinator.com'));
  796. expect(addContactsPage.getTable(time + '00'));
  797. });
  798. });
  799. });
  800.  
  801. -------------------------------------------------------------------------
  802. ticket.spec
  803.  
  804. 'use strict';
  805.  
  806. const pageObject = require('./../../services').container.PageObject;
  807. const signInPage = pageObject.getSignInPage();
  808. const dashboardPage = pageObject.getDashboardPage();
  809. const ticketsPage = pageObject.getTicketsPage();
  810. const editTicketPage = pageObject.getEditTicketPage();
  811. const signInData = require('./../../data/sign_in');
  812. const dashboardData = require('./../../data/dashboard');
  813. const ticketsData = require('./../../data/tickets');
  814. const commonHelper = require('./../../services/helpers/common.helper');
  815. var strftime = require('strftime');
  816.  
  817. describe('Tickets', () => {
  818.  
  819. var username = signInData.testAccount.username;
  820. var password = signInData.testAccount.password;
  821. var afe = ticketsData.ticket.afe;
  822. var jobCode = ticketsData.ticket.jobCode;
  823.  
  824. beforeAll(() => {
  825. browser.ignoreSynchronization = false;
  826. browser.driver.manage().window().setSize(1440, 900);
  827. });
  828.  
  829. afterAll(() => {
  830. commonHelper.clearAllData();
  831. });
  832.  
  833. describe('checking for add hourly line item in ticket', () => {
  834.  
  835. var time = commonHelper.uniqueValue();
  836. var total;
  837.  
  838. beforeAll(() => {
  839. browser.get(signInData.link);
  840. });
  841.  
  842. afterAll(() => {
  843. commonHelper.clearAllData();
  844. });
  845.  
  846. it('should open login page', () => {
  847. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  848. });
  849.  
  850. it('should redirect on dashboard page after login', () => {
  851. signInPage.login(username, password);
  852. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  853.  
  854. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  855. });
  856.  
  857. it('should redirect on tickets page after click in menu', () => {
  858. dashboardPage.openMenu('Tickets');
  859.  
  860. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  861. });
  862.  
  863. it('should click on plus button and select service ticket', () => {
  864. dashboardPage.btnPlus.click();
  865. dashboardPage.selectItem('Service Ticket');
  866.  
  867. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  868. });
  869.  
  870. it('should save ticket header', () => {
  871. editTicketPage.txtLocation.sendKeys('Location' + time);
  872. editTicketPage.txtAfe.sendKeys(afe);
  873. editTicketPage.txtJobCode.sendKeys(jobCode);
  874. editTicketPage.btnSaveTicket.click();
  875.  
  876. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  877. });
  878.  
  879. it('should add line item and see hourly form', () => {
  880. editTicketPage.btnNewLine.click();
  881. editTicketPage.selectCategory('Hourly');
  882. editTicketPage.selectSubCategory('All');
  883. editTicketPage.btnSaveClose.click();
  884.  
  885. expect(editTicketPage.tittle.getText()).toEqual('Hourly');
  886. });
  887.  
  888. it('should edit new line', () => {
  889. editTicketPage.btnEditLine.click();
  890. browser.waitForAngular();
  891. });
  892.  
  893. it('should set note', () => {
  894. editTicketPage.txtLineNote.sendKeys(time);
  895. });
  896.  
  897. it('should set rate and hours', () => {
  898. editTicketPage.txtRate.sendKeys('10');
  899. editTicketPage.txtHours.sendKeys('20');
  900. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  901. total = value;
  902. });
  903. });
  904.  
  905. it('should see total updates', () => {
  906. expect(total).toEqual('200.00');
  907. });
  908.  
  909. it('should set discount', () => {
  910. editTicketPage.txtDiscount.sendKeys('5');
  911. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  912. total = value;
  913. });
  914. });
  915.  
  916. it('should see total updates', () => {
  917. expect(total).toEqual('190.00');
  918. });
  919.  
  920. it('should see minimum', () => {
  921. editTicketPage.txtMinimum.sendKeys('100');
  922. editTicketPage.txtLineNote.click();
  923. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  924. total = value;
  925. });
  926. });
  927.  
  928. it('should see total updates', () => {
  929. expect(total).toEqual('190.00');
  930. });
  931.  
  932. it('should save line', () => {
  933. editTicketPage.btnSaveClose.click();
  934. });
  935.  
  936. it('should display saved line in Hourly table', () => {
  937. expect(editTicketPage.getRate('Hourly', '1').getText()).toEqual('$10.00/hr');
  938. expect(editTicketPage.getUnitsMin('Hourly', '1').getText()).toEqual('20 Hours');
  939. expect(editTicketPage.getMin('Hourly', '1').getText()).toEqual('$100.00');
  940. expect(editTicketPage.getAmount('Hourly', '1').getText()).toEqual('$190.00');
  941. expect(editTicketPage.getNote('Hourly', '1').getText()).toEqual('Note:' + time);
  942. });
  943. });
  944.  
  945. describe('checking for add rental line item in ticket', () => {
  946.  
  947. var time = commonHelper.uniqueValue();
  948. var total;
  949.  
  950. beforeAll(() => {
  951. browser.get(signInData.link);
  952. });
  953.  
  954. afterAll(() => {
  955. commonHelper.clearAllData();
  956. });
  957.  
  958. it('should open login page', () => {
  959. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  960. });
  961.  
  962. it('should redirect on dashboard page after login', () => {
  963. signInPage.login(username, password);
  964. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  965.  
  966. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  967. });
  968.  
  969. it('should redirect on tickets page after click in menu', () => {
  970. dashboardPage.openMenu('Tickets');
  971.  
  972. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  973. });
  974.  
  975. it('should click on plus button and select service ticket', () => {
  976. dashboardPage.btnPlus.click();
  977. dashboardPage.selectItem('Service Ticket');
  978.  
  979. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  980. });
  981.  
  982. it('should save ticket header', () => {
  983. editTicketPage.txtLocation.sendKeys('Location' + time);
  984. editTicketPage.txtAfe.sendKeys(afe);
  985. editTicketPage.txtJobCode.sendKeys(jobCode);
  986. editTicketPage.btnSaveTicket.click();
  987.  
  988. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  989. });
  990.  
  991. it('should add line item and see rental form', () => {
  992. editTicketPage.btnNewLine.click();
  993. editTicketPage.selectCategory('Rental');
  994. editTicketPage.selectSubCategory('All');
  995. editTicketPage.btnSaveClose.click();
  996.  
  997. expect(editTicketPage.tittle.getText()).toEqual('Rental');
  998. });
  999.  
  1000. it('should edit new line', () => {
  1001. editTicketPage.btnEditLine.click();
  1002. browser.waitForAngular();
  1003. });
  1004.  
  1005. it('should set note', () => {
  1006. editTicketPage.txtLineNote.sendKeys(time);
  1007. });
  1008.  
  1009. it('should set rate and hours', () => {
  1010. editTicketPage.selectHour('Per day');
  1011. editTicketPage.txtRate.sendKeys('10');
  1012. editTicketPage.txtStandbyRate.sendKeys('10');
  1013. editTicketPage.txtHours.sendKeys('20');
  1014. editTicketPage.txtQuantity.sendKeys('30');
  1015. editTicketPage.txtDaysStandby.sendKeys('40');
  1016. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1017. total = value;
  1018. });
  1019. });
  1020.  
  1021. it('should see total updates', () => {
  1022. expect(total).toEqual('700.00');
  1023. });
  1024.  
  1025. it('should set discount', () => {
  1026. editTicketPage.txtDiscount.sendKeys('5');
  1027. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1028. total = value;
  1029. });
  1030. });
  1031.  
  1032. it('should see total updates', () => {
  1033. expect(total).toEqual('665.00');
  1034. });
  1035.  
  1036. it('should see minimum', () => {
  1037. editTicketPage.txtMinimum.sendKeys('300');
  1038. editTicketPage.txtLineNote.click();
  1039. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1040. total = value;
  1041. });
  1042. });
  1043.  
  1044. it('should see total updates', () => {
  1045. expect(total).toEqual('665.00');
  1046. });
  1047.  
  1048. it('should save line', () => {
  1049. editTicketPage.btnSaveClose.click();
  1050. });
  1051.  
  1052. it('should display saved line in Rental table', () => {
  1053. expect(editTicketPage.getRate('Rental', '1').getText()).toEqual('$10.00/day');
  1054. expect(editTicketPage.getStandBy('Rental', '1').getText()).toEqual('$10.00/day');
  1055. expect(editTicketPage.getUnitStandBy('Rental', '1').getText()).toEqual('40 Days');
  1056. expect(editTicketPage.getUnitsMin('Rental', '1').getText()).toEqual('20 Days');
  1057. expect(editTicketPage.getMin('Rental', '1').getText()).toEqual('$300.00');
  1058. expect(editTicketPage.getAmount('Rental', '1').getText()).toEqual('$665.00');
  1059. expect(editTicketPage.getNote('Rental', '1').getText()).toEqual('Note:' + time);
  1060. });
  1061. });
  1062.  
  1063. describe('checking for add service line item in ticket', () => {
  1064.  
  1065. var time = commonHelper.uniqueValue();
  1066. var total;
  1067.  
  1068. var tomorrowDate = new Date();
  1069. tomorrowDate.setDate(tomorrowDate.getDate() + 1);
  1070.  
  1071. beforeAll(() => {
  1072. browser.get(signInData.link);
  1073. });
  1074.  
  1075. afterAll(() => {
  1076. commonHelper.clearAllData();
  1077. });
  1078.  
  1079. it('should open login page', () => {
  1080. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1081. });
  1082.  
  1083. it('should redirect on dashboard page after login', () => {
  1084. signInPage.login(username, password);
  1085. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1086.  
  1087. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1088. });
  1089.  
  1090. it('should redirect on tickets page after click in menu', () => {
  1091. dashboardPage.openMenu('Tickets');
  1092.  
  1093. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1094. });
  1095.  
  1096. it('should click on plus button and select service ticket', () => {
  1097. dashboardPage.btnPlus.click();
  1098. dashboardPage.selectItem('Service Ticket');
  1099.  
  1100. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1101. });
  1102.  
  1103. it('should save ticket header', () => {
  1104. editTicketPage.txtLocation.sendKeys('Location' + time);
  1105. editTicketPage.txtAfe.sendKeys(afe);
  1106. editTicketPage.txtJobCode.sendKeys(jobCode);
  1107. editTicketPage.btnSaveTicket.click();
  1108.  
  1109. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1110. });
  1111.  
  1112. it('should add line item and see service form', () => {
  1113. editTicketPage.btnNewLine.click();
  1114. editTicketPage.selectCategory('Service');
  1115. editTicketPage.selectSubCategory('All');
  1116. editTicketPage.btnSaveClose.click();
  1117.  
  1118. expect(editTicketPage.tittle.getText()).toEqual('Service');
  1119. });
  1120.  
  1121. it('should edit new line', () => {
  1122. editTicketPage.btnEditLine.click();
  1123. browser.waitForAngular();
  1124. });
  1125.  
  1126. it('should set note', () => {
  1127. editTicketPage.txtLineNote.sendKeys(time);
  1128. });
  1129.  
  1130. it('should select hour', () => {
  1131. editTicketPage.selectHour('Each');
  1132. });
  1133.  
  1134. it('should set start date',() => {
  1135. editTicketPage.txtCalendarStartDate.click();
  1136. editTicketPage.txtCalendarStartDate.sendKeys(strftime('%m/%d/%Y', tomorrowDate));
  1137. editTicketPage.txtStartHour.sendKeys('10');
  1138. editTicketPage.txtStartMinute.sendKeys('15');
  1139. });
  1140.  
  1141. it('should set end date',() => {
  1142. editTicketPage.txtCalendarStartDate.click();
  1143. editTicketPage.txtCalendarEndDate.sendKeys(strftime('%m/%d/%Y', tomorrowDate));
  1144. editTicketPage.txtEndHour.sendKeys('10');
  1145. editTicketPage.txtEndMinute.sendKeys('30');
  1146. });
  1147.  
  1148. it('should set rate and hours', () => {
  1149. editTicketPage.txtQuantity.sendKeys('20');
  1150. editTicketPage.txtRate.sendKeys('10');
  1151. editTicketPage.txtHours.sendKeys('20');
  1152. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1153. total = value;
  1154. });
  1155. });
  1156.  
  1157. it('should see total updates', () => {
  1158. expect(total).toEqual('200.00');
  1159. });
  1160.  
  1161. it('should set discount', () => {
  1162. editTicketPage.txtDiscount.sendKeys('5');
  1163. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1164. total = value;
  1165. });
  1166. });
  1167.  
  1168. it('should see total updates', () => {
  1169. expect(total).toEqual('190.00');
  1170. });
  1171.  
  1172. it('should see minimum', () => {
  1173. editTicketPage.txtMinimum.sendKeys('100');
  1174. editTicketPage.txtLineNote.click();
  1175. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1176. total = value;
  1177. });
  1178. });
  1179.  
  1180. it('should see total updates', () => {
  1181. expect(total).toEqual('190.00');
  1182. });
  1183.  
  1184. it('should save line', () => {
  1185. editTicketPage.btnSaveClose.click();
  1186. });
  1187.  
  1188. it('should display saved line in service table', () => {
  1189. expect(editTicketPage.getRate('Service', '1').getText()).toEqual('$10.00/ea');
  1190. expect(editTicketPage.getUnitsMin('Service', '1').getText()).toEqual('20 Units');
  1191. expect(editTicketPage.getMin('Service', '1').getText()).toEqual('$100.00');
  1192. expect(editTicketPage.getAmount('Service', '1').getText()).toEqual('$190.00');
  1193. expect(editTicketPage.getUnitUsed('Service', '1').getText()).toEqual('20 Units');
  1194. expect(editTicketPage.getNote('Service', '1').getText()).toEqual('Note:' + time);
  1195. expect(editTicketPage.getStartDate('Service', '1').getText()).toEqual(strftime('%b%e, %Y ', tomorrowDate) + '10:15:00 AM');
  1196. expect(editTicketPage.getEndDate('Service', '1').getText()).toEqual(strftime('%b%e, %Y ', tomorrowDate) + '10:30:00 AM');
  1197. });
  1198. });
  1199.  
  1200. describe('checking for add miscellaneous line item in ticket', () => {
  1201.  
  1202. var time = commonHelper.uniqueValue();
  1203. var total;
  1204.  
  1205. beforeAll(() => {
  1206. browser.get(signInData.link);
  1207. });
  1208.  
  1209. afterAll(() => {
  1210. commonHelper.clearAllData();
  1211. });
  1212.  
  1213. it('should open login page', () => {
  1214. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1215. });
  1216.  
  1217. it('should redirect on dashboard page after login', () => {
  1218. signInPage.login(username, password);
  1219. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1220.  
  1221. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1222. });
  1223.  
  1224. it('should redirect on tickets page after click in menu', () => {
  1225. dashboardPage.openMenu('Tickets');
  1226.  
  1227. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1228. });
  1229.  
  1230. it('should click on plus button and select service ticket', () => {
  1231. dashboardPage.btnPlus.click();
  1232. dashboardPage.selectItem('Service Ticket');
  1233.  
  1234. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1235. });
  1236.  
  1237. it('should save ticket header', () => {
  1238. editTicketPage.txtLocation.sendKeys('Location' + time);
  1239. editTicketPage.txtAfe.sendKeys(afe);
  1240. editTicketPage.txtJobCode.sendKeys(jobCode);
  1241. editTicketPage.btnSaveTicket.click();
  1242.  
  1243. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1244. });
  1245.  
  1246. it('should add line item and see Miscellaneous form', () => {
  1247. editTicketPage.btnNewLine.click();
  1248. editTicketPage.selectCategory('Miscellaneous');
  1249. });
  1250.  
  1251. it('should set note', () => {
  1252. editTicketPage.txtLineNote.sendKeys(time);
  1253. });
  1254.  
  1255. it('should set rate and hours', () => {
  1256. editTicketPage.selectHour('week');
  1257. editTicketPage.txtStandbyRate.sendKeys('10');
  1258. editTicketPage.txtRate.sendKeys('10');
  1259. editTicketPage.txtDaysStandby.sendKeys('40');
  1260. editTicketPage.txtHours.sendKeys('20');
  1261. editTicketPage.txtQuantity.sendKeys('30');
  1262. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1263. total = value;
  1264. });
  1265. });
  1266.  
  1267. it('should see total updates', () => {
  1268. expect(total).toEqual('700.00');
  1269. });
  1270.  
  1271. it('should set discount', () => {
  1272. editTicketPage.txtDiscount.sendKeys('5');
  1273. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1274. total = value;
  1275. });
  1276. });
  1277.  
  1278. it('should see total updates', () => {
  1279. expect(total).toEqual('665.00');
  1280. });
  1281.  
  1282. it('should see minimum', () => {
  1283. editTicketPage.txtMinimum.sendKeys('100');
  1284. editTicketPage.txtLineNote.click();
  1285. editTicketPage.txtTotal.getAttribute('value').then(function(value) {
  1286. total = value;
  1287. });
  1288. });
  1289.  
  1290. it('should see total updates', () => {
  1291. expect(total).toEqual('665.00');
  1292. });
  1293.  
  1294. it('should save line', () => {
  1295. editTicketPage.btnSaveClose.click();
  1296. });
  1297.  
  1298. it('should display saved line in other table', () => {
  1299. expect(editTicketPage.getRate('Other', '1').getText()).toEqual('$10.00/wk');
  1300. expect(editTicketPage.getAmount('Other', '1').getText()).toEqual('$665.00');
  1301. expect(editTicketPage.getNote('Other', '1').getText()).toEqual('Note:' + time);
  1302. });
  1303. });
  1304.  
  1305. describe('checking for add new signature', () => {
  1306.  
  1307. var time = commonHelper.uniqueValue();
  1308.  
  1309. beforeAll(() => {
  1310. browser.get(signInData.link);
  1311. });
  1312.  
  1313. afterAll(() => {
  1314. commonHelper.clearAllData();
  1315. });
  1316.  
  1317. it('should open login page', () => {
  1318. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1319. });
  1320.  
  1321. it('should redirect on dashboard page after login', () => {
  1322. signInPage.login(username, password);
  1323. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1324.  
  1325. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1326. });
  1327.  
  1328. it('should redirect on tickets page after click in menu', () => {
  1329. dashboardPage.openMenu('Tickets');
  1330.  
  1331. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1332. });
  1333.  
  1334. it('should click on plus button and select service ticket', () => {
  1335. dashboardPage.btnPlus.click();
  1336. dashboardPage.selectItem('Service Ticket');
  1337.  
  1338. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1339. });
  1340.  
  1341. it('should save ticket header', () => {
  1342. editTicketPage.txtLocation.sendKeys('Location' + time);
  1343. editTicketPage.txtAfe.sendKeys(afe);
  1344. editTicketPage.txtJobCode.sendKeys(jobCode);
  1345. editTicketPage.btnSaveTicket.click();
  1346.  
  1347. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1348. });
  1349.  
  1350. it('should click on add signature button', () => {
  1351. editTicketPage.btnAddSignature.click();
  1352. expect(editTicketPage.btnSaveSignature.isDisplayed()).toBe(true);
  1353. });
  1354.  
  1355. it('should add signature ', () => {
  1356. editTicketPage.txtSigatureName.sendKeys(username);
  1357. editTicketPage.selectSignatureStyle();
  1358. editTicketPage.txtSignatureEmail.sendKeys(password);
  1359. editTicketPage.selectSignatureCertify();
  1360. });
  1361.  
  1362. it('should rate signature and feedback', () => {
  1363. editTicketPage.ratePunctuality();
  1364. editTicketPage.rateCompetence();
  1365. editTicketPage.rateProfessionalism();
  1366. editTicketPage.txtFeedback.sendKeys(time)
  1367. });
  1368.  
  1369. it('should click on checkbox signature', () => {
  1370. editTicketPage.btnCheckboxSignature.click();
  1371. expect(editTicketPage.chkSignature().isPresent()).toBe(true);
  1372. });
  1373.  
  1374. it('should save signature', () => {
  1375. editTicketPage.btnSaveSignature.click();
  1376. expect(editTicketPage.SignatureBlock.isPresent()).toBe(true);
  1377. });
  1378. });
  1379.  
  1380. describe('checking for add note', () => {
  1381.  
  1382. var time = commonHelper.uniqueValue();
  1383. var note = commonHelper.randomString(36, 10);
  1384.  
  1385. beforeAll(() => {
  1386. browser.get(signInData.link);
  1387. });
  1388.  
  1389. afterAll(() => {
  1390. commonHelper.clearAllData();
  1391. });
  1392.  
  1393. it('should open login page', () => {
  1394. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1395. });
  1396.  
  1397. it('should redirect on dashboard page after login', () => {
  1398. signInPage.login(username, password);
  1399. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1400.  
  1401. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1402. });
  1403.  
  1404. it('should redirect on tickets page after click in menu', () => {
  1405. dashboardPage.openMenu('Tickets');
  1406.  
  1407. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1408. });
  1409.  
  1410. it('should click on plus button and select service ticket', () => {
  1411. dashboardPage.btnPlus.click();
  1412. dashboardPage.selectItem('Service Ticket');
  1413.  
  1414. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1415. });
  1416.  
  1417. it('should save ticket header', () => {
  1418. editTicketPage.txtLocation.sendKeys('Location' + time);
  1419. editTicketPage.txtAfe.sendKeys(afe);
  1420. editTicketPage.txtJobCode.sendKeys(jobCode);
  1421. editTicketPage.btnSaveTicket.click();
  1422.  
  1423. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1424. });
  1425.  
  1426. it('should click on add note',() => {
  1427. editTicketPage.btnAddNotes.click();
  1428. expect(editTicketPage.btnSaveNote.isDisplayed()).toBe(true);
  1429. });
  1430.  
  1431. it('should add notes', () => {
  1432. editTicketPage.txtNote.sendKeys(note);
  1433. editTicketPage.btnSaveNote.click();
  1434. });
  1435.  
  1436. it('should see note', () => {
  1437. commonHelper.waitUntilElementPresent(editTicketPage.btnAddNotes);
  1438. expect(editTicketPage.notePresent(note).isDisplayed()).toBe(true);
  1439. });
  1440. });
  1441.  
  1442. describe('checking for add new member', () => {
  1443.  
  1444. var time = commonHelper.uniqueValue();
  1445. var user = 'Test User';
  1446.  
  1447. beforeAll(() => {
  1448. browser.get(signInData.link);
  1449. });
  1450.  
  1451. afterAll(() => {
  1452. commonHelper.clearAllData();
  1453. });
  1454.  
  1455. it('should open login page', () => {
  1456. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1457. });
  1458.  
  1459. it('should redirect on dashboard page after login', () => {
  1460. signInPage.login(username, password);
  1461. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1462.  
  1463. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1464. });
  1465.  
  1466. it('should redirect on tickets page after click in menu', () => {
  1467. dashboardPage.openMenu('Tickets');
  1468.  
  1469. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1470. });
  1471.  
  1472. it('should click on plus button and select service ticket', () => {
  1473. dashboardPage.btnPlus.click();
  1474. dashboardPage.selectItem('Service Ticket');
  1475.  
  1476. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1477. });
  1478.  
  1479. it('should save ticket header', () => {
  1480. editTicketPage.txtLocation.sendKeys('Location' + time);
  1481. editTicketPage.txtAfe.sendKeys(afe);
  1482. editTicketPage.txtJobCode.sendKeys(jobCode);
  1483. editTicketPage.btnSaveTicket.click();
  1484.  
  1485. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1486. });
  1487.  
  1488. it('should click add member',() => {
  1489. editTicketPage.btnAddMember.click();
  1490. expect(editTicketPage.btnMemberSaved.isDisplayed()).toBe(true);
  1491. });
  1492.  
  1493. it('should add member',() => {
  1494. editTicketPage.memberCheckbox.click();
  1495. expect(editTicketPage.chkMember().isPresent()).toBe(true);
  1496. editTicketPage.btnMemberSaved.click();
  1497. });
  1498.  
  1499. it('should see new member', () => {
  1500. expect(editTicketPage.teamMemberIsPresennt(user).isDisplayed()).toBe(true);
  1501. });
  1502. });
  1503.  
  1504. describe('checking for add new attachment', () => {
  1505.  
  1506. beforeAll(() => {
  1507. browser.get(signInData.link);
  1508. });
  1509.  
  1510. afterAll(() => {
  1511. commonHelper.clearAllData();
  1512. });
  1513.  
  1514. it('should open login page', () => {
  1515. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  1516. });
  1517.  
  1518. it('should redirect on dashboard page after login', () => {
  1519. signInPage.login(username, password);
  1520. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  1521.  
  1522. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  1523. });
  1524.  
  1525. it('should redirect on tickets page after click in menu', () => {
  1526. dashboardPage.openMenu('Tickets');
  1527.  
  1528. expect(ticketsPage.pageTittle.getText()).toEqual(ticketsData.title);
  1529. });
  1530.  
  1531. it('should click on plus button and select service ticket', () => {
  1532. dashboardPage.btnPlus.click();
  1533. dashboardPage.selectItem('Service Ticket');
  1534.  
  1535. expect(editTicketPage.btnSaveTicket.isDisplayed()).toBe(true);
  1536. });
  1537.  
  1538. it('should save ticket header', () => {
  1539. editTicketPage.txtLocation.sendKeys('Location' + commonHelper.uniqueValue());
  1540. editTicketPage.txtAfe.sendKeys(afe);
  1541. editTicketPage.txtJobCode.sendKeys(jobCode);
  1542. editTicketPage.btnSaveTicket.click();
  1543.  
  1544. expect(editTicketPage.btnNewLine.isDisplayed()).toBe(true);
  1545. });
  1546.  
  1547. it('should click add attachment',() => {
  1548. editTicketPage.btnAddAttachment.click();
  1549.  
  1550. expect(editTicketPage.mdlNewAttachment.isDisplayed()).toBe(true);
  1551. });
  1552.  
  1553. it('should add new attachment',() => {
  1554. editTicketPage.uploadAttachment('index.jpg');
  1555. editTicketPage.saveAttachment.click();
  1556.  
  1557. expect(editTicketPage.attachment('index.jpg').isDisplayed()).toBe(true);
  1558. });
  1559. });
  1560. });
  1561.  
  1562. ---------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement