Advertisement
Guest User

assets

a guest
Dec 2nd, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.66 KB | None | 0 0
  1. assets.spec
  2.  
  3. 'use strict';
  4.  
  5. const pageObject = require('./../../services').container.PageObject;
  6. const signInPage = pageObject.getSignInPage();
  7. const dashboardPage = pageObject.getDashboardPage();
  8. const assetsPage = pageObject.getAssetsPage();
  9. const addAssetsPage = pageObject.getAddAssetsPage();
  10. const jobCodePage = pageObject.getJobCodePage();
  11. const addSkuPage = pageObject.getAddSkuPage();
  12. const skuPage = pageObject.getSkuPage();
  13. const signInData = require('./../../data/sign_in');
  14. const dashboardData = require('./../../data/dashboard');
  15. const commonHelper = require('./../../services/helpers/common.helper');
  16. var strftime = require('strftime');
  17.  
  18. describe('assets', () => {
  19.  
  20. var username = signInData.testAccount.username;
  21. var password = signInData.testAccount.password;
  22.  
  23. beforeAll(() => {
  24. browser.ignoreSynchronization = false;
  25. browser.driver.manage().window().setSize(1440, 900);
  26. });
  27.  
  28. afterAll(() => {
  29. commonHelper.clearAllData();
  30. });
  31.  
  32. describe('checking for adding new assets and edit', () => {
  33.  
  34. var time = commonHelper.uniqueValue();
  35.  
  36. beforeAll(() => {
  37. browser.get(signInData.link);
  38. });
  39.  
  40. afterAll(() => {
  41. commonHelper.clearAllData();
  42. });
  43.  
  44. it('should redirect on dashboard page after login', () => {
  45. signInPage.login(username, password);
  46. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  47.  
  48. expect(dashboardPage.pageTitle()).toEqual(dashboardData.title);
  49. });
  50.  
  51. it('should click on assets in menu', () => {
  52. dashboardPage.openMenu('Oil Field');
  53. dashboardPage.clickAssets();
  54.  
  55. expect(assetsPage.btnAddAssets.isDisplayed()).toBe(true);
  56. });
  57.  
  58. it('should click on add assets', () => {
  59. assetsPage.clickAddAssets();
  60.  
  61. expect(jobCodePage.btnSave.isDisplayed()).toBe(true);
  62. });
  63.  
  64. it('should add assets', ()=>{
  65. addAssetsPage.selectCompanyAssets('My Own Company');
  66. addAssetsPage.fillLease('qwe');
  67. addAssetsPage.fillAssetName('name' + time);
  68. addAssetsPage.fillAssetBarrel('123');
  69. addAssetsPage.fillAssetsDescription('Description');
  70.  
  71. jobCodePage.clickSave();
  72. });
  73.  
  74. it('should see assets tittle', ()=> {
  75. expect(assetsPage.btnAddAssets.isDisplayed()).toBe(true);
  76. });
  77.  
  78. it('should search assets', ()=>{
  79. assetsPage.fillSearch('name' + time);
  80.  
  81. commonHelper.waitUntilElementVisible(jobCodePage.searchCode(time));
  82. });
  83.  
  84. it('should edit assets', () =>{
  85. skuPage.clickDetails();
  86.  
  87. addAssetsPage.selectCompanyAssets('Testware Associates home office');
  88. addAssetsPage.fillLease('qwe');
  89. addAssetsPage.fillAssetName('Brave' + time);
  90. addAssetsPage.fillAssetBarrel('100');
  91. addAssetsPage.fillAssetsDescription('test');
  92. });
  93.  
  94. it('should click add increment', ()=>{
  95. addAssetsPage.clickAddIncrement();
  96.  
  97. commonHelper.waitUntilElementVisible(addAssetsPage.btnShowPanel)
  98. });
  99.  
  100. it('should add increment', () => {
  101. addAssetsPage.clickShowPanel();
  102.  
  103. addAssetsPage.fillWhole('1');
  104. addAssetsPage.fillFeet('1');
  105. addAssetsPage.fillQuarters('1');
  106. addAssetsPage.clickOk();
  107. addAssetsPage.fillIncrements('10');
  108.  
  109. addAssetsPage.clickSaveIncrement();
  110. });
  111.  
  112. it('should see increment', ()=>{
  113. expect(addAssetsPage.btnAddIncrement.isPresent()).toBe(true);
  114. });
  115.  
  116. it('should save changes', () =>{
  117. addAssetsPage.clickSaveAndClose();
  118.  
  119. commonHelper.waitUntilElementVisible(assetsPage.btnAddAssets);
  120. });
  121. });
  122.  
  123. describe('checking for cancel adding new assets', () => {
  124.  
  125. var time = commonHelper.uniqueValue();
  126.  
  127. beforeAll(() => {
  128. browser.get(signInData.link);
  129. });
  130.  
  131. afterAll(() => {
  132. commonHelper.clearAllData();
  133. });
  134.  
  135. it('should redirect on dashboard page after login', () => {
  136. signInPage.login(username, password);
  137. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  138.  
  139. expect(dashboardPage.pageTitle()).toEqual(dashboardData.title);
  140. });
  141.  
  142. it('should click on assets in menu', () => {
  143. dashboardPage.openMenu('Oil Field');
  144. dashboardPage.clickAssets();
  145.  
  146. expect(assetsPage.btnAddAssets.isDisplayed()).toBe(true);
  147. });
  148.  
  149. it('should click on add assets', () => {
  150. assetsPage.clickAddAssets();
  151.  
  152. expect(jobCodePage.btnSave.isDisplayed()).toBe(true);
  153. });
  154.  
  155. it('should add assets', ()=>{
  156. addAssetsPage.selectCompanyAssets('My Own Company');
  157. addAssetsPage.fillLease('qwe');
  158. addAssetsPage.fillAssetName('name' + time);
  159. addAssetsPage.fillAssetBarrel('123');
  160. addAssetsPage.fillAssetsDescription('Description');
  161.  
  162. dashboardPage.clickCancel();
  163. });
  164.  
  165. it('should see assets tittle', ()=> {
  166. expect(assetsPage.btnAddAssets.isDisplayed()).toBe(true);
  167. });
  168.  
  169. it('should search assets', ()=>{
  170. assetsPage.fillSearch('name' + time);
  171.  
  172. expect(skuPage.searchOnOilFieldPage('name' + time).isPresent()).toBe(false);
  173. });
  174. });
  175. });
  176. -------------------------------------------------------------------
  177. assets.po
  178.  
  179. 'use strict';
  180.  
  181. const commonHelper = require('./../../helpers/common.helper.js');
  182.  
  183. class AssetsPage {
  184.  
  185. //--------------------------------------------------------------------------
  186. // Elements
  187. //--------------------------------------------------------------------------
  188.  
  189. constructor() {
  190. this.btnAddAssets = $('[href="/oil_field/assets/add/"]');
  191. this.txtSearch = element(by.model('paginator.query.name__icontains'));
  192. }
  193. //--------------------------------------------------------------------------
  194. // Functions
  195. //-
  196.  
  197. clickAddAssets(){
  198. this.btnAddAssets.click();
  199. }
  200.  
  201. fillSearch(value) {
  202. this.txtSearch.sendKeys(value);
  203. this.txtSearch.sendKeys(protractor.Key.ENTER);
  204. browser.waitForAngular();
  205. }
  206. }
  207. module.exports = AssetsPage;
  208. -----------------------------------------------------------------
  209. add_assets.po
  210.  
  211. 'use strict';
  212.  
  213. const commonHelper = require('./../../helpers/common.helper.js');
  214.  
  215. class AddAssetsPage {
  216.  
  217. //--------------------------------------------------------------------------
  218. // Elements
  219. //--------------------------------------------------------------------------
  220.  
  221. constructor() {
  222. this.txtAssetsCompany = element(by.model('asset.company'));
  223.  
  224. this.txtLease = $('[aria-label="Lease"]');
  225.  
  226. this.txtAssetName = element(by.model('asset.name'));
  227.  
  228. this.txtAssetBarrel = element(by.model('asset.max_barrels'));
  229.  
  230. this.txtAssetsDescription = element(by.model('asset.tank_description'));
  231.  
  232. this.btnAddIncrement = $('[aria-label="Add Increment"]');
  233.  
  234. this.btnShowPanel = $('[ng-click="showPanel()"]');
  235.  
  236. this.txtFeet = element(by.model('feet'));
  237.  
  238. this.txtWhole = element(by.model('whole'));
  239.  
  240. this.txtQuarters = element(by.model('quarters'));
  241.  
  242. this.btnOk = $('[aria-label="OK"]');
  243.  
  244. this.txtIncrements = element(by.model('strappingIncrement.increments'));
  245.  
  246. this.btnEdit = $('[aria-label="edit"]');
  247.  
  248. this.btnSaveIncrement = $('[ng-click="save(strappingIncrementForm)"]');
  249.  
  250. this.btnSaveAndClose = $('[aria-label="Save & Close"]')
  251.  
  252. }
  253. //--------------------------------------------------------------------------
  254. // Functions
  255. //-
  256.  
  257. clickSaveAndClose(){
  258. this.btnSaveAndClose.click();
  259. }
  260.  
  261. clickSaveIncrement(){
  262. this.btnSaveIncrement.click();
  263. }
  264.  
  265. fillIncrements(value){
  266. this.txtIncrements.clear();
  267. this.txtIncrements.sendKeys(value);
  268. }
  269.  
  270. clickOk(){
  271. this.btnOk.click();
  272. }
  273.  
  274. fillWhole(value){
  275. this.txtWhole.clear();
  276. this.txtWhole.sendKeys(value);
  277. }
  278.  
  279. fillQuarters(value){
  280. this.txtQuarters.clear();
  281. this.txtQuarters.sendKeys(value);
  282. }
  283.  
  284. fillFeet(value){
  285. this.txtFeet.clear();
  286. this.txtFeet.sendKeys(value);
  287. }
  288. clickShowPanel(){
  289. this.btnShowPanel.click();
  290. }
  291.  
  292. clickAddIncrement(){
  293. this.btnAddIncrement.click();
  294. }
  295.  
  296. fillAssetsDescription(value){
  297. this.txtAssetsDescription.clear();
  298. this.txtAssetsDescription.sendKeys(value);
  299. }
  300.  
  301. fillAssetBarrel(value){
  302. this.txtAssetBarrel.clear();
  303. this.txtAssetBarrel.sendKeys(value);
  304. }
  305.  
  306. fillAssetName(value){
  307. this.txtAssetName.clear();
  308. this.txtAssetName.sendKeys(value);
  309. }
  310.  
  311. fillLease(value){
  312. this.txtLease.clear();
  313. this.txtLease.sendKeys(value);
  314. }
  315.  
  316. selectCompanyAssets(type){
  317. browser.waitForAngular();
  318. commonHelper.waitUntilElementVisible(this.txtAssetsCompany);
  319. browser.sleep(1000);
  320. this.txtAssetsCompany.click();
  321. browser.sleep(2000);
  322. element(by.xpath('//div[contains(@class, "md-active")]//div[contains(.,"'+ type +'")]')).click();
  323. }
  324. }
  325. module.exports = AddAssetsPage;
  326. ---------------------------------------------------------------
  327. dashboard.po
  328.  
  329. this.btnAssets = $('[href="/oil_field/assets/"]')
  330.  
  331. clickAssets() {
  332. commonHelper.waitUntilElementVisible(this.btnAssets);
  333. this.btnAssets.click();
  334. }
  335. -----------------------------------------------
  336. services/index
  337. 'use strict';
  338.  
  339. const bottlejs = require('bottlejs').pop('test');
  340.  
  341. bottlejs.factory('PageObject', function (container) {
  342. return {
  343. getSignInPage: function () {
  344. const signInPage = require('./sign_in.po');
  345. return new signInPage();
  346. },
  347. getDashboardPage: function () {
  348. const DashboardPage = require('./dashboard.po');
  349. return new DashboardPage();
  350. },
  351. getTicketsPage: function () {
  352. const TicketsPage = require('./tickets/tickets.po.js');
  353. return new TicketsPage();
  354. },
  355. getEditTicketPage: function () {
  356. const EditTicketPage = require('./tickets/edit_ticket.po.js');
  357. return new EditTicketPage();
  358. },
  359. getJobCodePage: function () {
  360. const JobCodePage = require('./jobs/job_code.po.js');
  361. return new JobCodePage();
  362. },
  363. getAddCompanyPage: function () {
  364. const AddCompanyPage = require('./contacts/add_company.po.js');
  365. return new AddCompanyPage();
  366. },
  367. getAddContactPage: function () {
  368. const AddContactPage = require('./contacts/add_contact.po.js');
  369. return new AddContactPage();
  370. },
  371. getSkuPage: function () {
  372. const SkuPage = require('./oil_field/sku/sku.po.js');
  373. return new SkuPage();
  374. },
  375. getAddSkuPage: function () {
  376. const AddSkuPage = require('./oil_field/sku/add_sku.po.js');
  377. return new AddSkuPage();
  378. },
  379. getViewPage: function () {
  380. const ViewPage = require('./oil_field/view.po.js');
  381. return new ViewPage();
  382. },
  383. getWellsPage: function () {
  384. const WellsPage = require('./oil_field/wells/wells.po.js');
  385. return new WellsPage();
  386. },
  387. getAddWellsPage: function () {
  388. const AddWellsPage = require('./oil_field/wells/add_wells.po.js');
  389. return new AddWellsPage();
  390. },
  391. getContactsPage: function () {
  392. const ContactsPage = require('./contacts/contacts.po.js');
  393. return new ContactsPage();
  394. },
  395. getCategoriesPage: function () {
  396. const CategoriesPage = require('./oil_field/categories/categories.po.js');
  397. return new CategoriesPage();
  398. },
  399. getAddCategoriesPage: function () {
  400. const AddCategoriesPage = require('./oil_field/categories/add_category.po.js');
  401. return new AddCategoriesPage();
  402. },
  403. getPipelineTicketPage: function () {
  404. const PipelineTicketPage = require('./tickets/pipeline_ticket.po.js');
  405. return new PipelineTicketPage();
  406. },
  407. getAddUserPage: function () {
  408. const AddUserPage = require('./profile/add_user.po.js');
  409. return new AddUserPage();
  410. },
  411. getProfilePage: function () {
  412. const ProfilePage = require('./profile/profile.po.js');
  413. return new ProfilePage();
  414. },
  415. getAssetsPage: function () {
  416. const AssetsPage = require('./oil_field/assets/assets.po.js');
  417. return new AssetsPage();
  418. },
  419. getAddAssetsPage: function () {
  420. const AddAssetsPage = require('./oil_field/assets/add_assets.po.js');
  421. return new AddAssetsPage();
  422. }
  423. }
  424. });
  425.  
  426. module.exports = bottlejs;
  427. ---------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement