From d024d0ebf506eb5a0a6f39f271a074a00e4ef655 Mon Sep 17 00:00:00 2001 From: Cristina Jalba Date: Thu, 25 Oct 2018 12:38:47 +0300 Subject: [PATCH] [ADF-3477]Added a test for task details- no form --- .../adf/process_services/taskDetailsPage.ts | 21 ++++- .../Task_details_no_form.e2e.ts | 84 ++++++++++++++++++ e2e/process-services/standalone_task.e2e.ts | 5 +- e2e/resources/apps/No form app.zip | Bin 0 -> 5089 bytes e2e/util/resources.js | 10 +-- 5 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 e2e/process-services/Task_details_no_form.e2e.ts create mode 100644 e2e/resources/apps/No form app.zip diff --git a/e2e/pages/adf/process_services/taskDetailsPage.ts b/e2e/pages/adf/process_services/taskDetailsPage.ts index 61e0709239..d6ea0a8e45 100644 --- a/e2e/pages/adf/process_services/taskDetailsPage.ts +++ b/e2e/pages/adf/process_services/taskDetailsPage.ts @@ -21,7 +21,7 @@ import { element, by, browser, protractor } from 'protractor'; import Util = require('../../../util/util'); export class TaskDetailsPage { - + formContent = element(by.css("adf-form")); formNameField = element(by.css('span[data-automation-id*="formName"] span')); assigneeField = element(by.css('span[data-automation-id*="assignee"] span')); statusField = element(by.css('span[data-automation-id*="status"] span')); @@ -108,6 +108,11 @@ export class TaskDetailsPage { Util.waitUntilElementIsVisible(this.cancelAttachForm); } + noFormIsDisplayed() { + Util.waitUntilElementIsNotOnPage(this.formContent); + return this; + } + clickCancelAttachForm() { Util.waitUntilElementIsClickable(this.cancelAttachForm); return this.cancelAttachForm.click(); @@ -126,6 +131,10 @@ export class TaskDetailsPage { Util.waitUntilElementIsVisible(this.attachFormButton); } + checkAttachFormButtonIsNotDisplayed() { + Util.waitUntilElementIsNotOnPage(this.attachFormButton); + } + clickAttachFormButton() { Util.waitUntilElementIsClickable(this.attachFormButton); return this.attachFormButton.click(); @@ -388,6 +397,16 @@ export class TaskDetailsPage { return this.completeFormTask; } + checkCompleteTaskButtonIsEnabled() { + Util.waitUntilElementIsClickable(this.completeTask); + return this; + } + + checkCompleteTaskButtonIsDisplayed() { + Util.waitUntilElementIsVisible(this.completeTask); + return this; + } + clickCompleteFormTask() { Util.waitUntilElementIsClickable(this.completeFormTask); return this.completeFormTask.click(); diff --git a/e2e/process-services/Task_details_no_form.e2e.ts b/e2e/process-services/Task_details_no_form.e2e.ts new file mode 100644 index 0000000000..a262f98ea6 --- /dev/null +++ b/e2e/process-services/Task_details_no_form.e2e.ts @@ -0,0 +1,84 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { LoginPage } from '../pages/adf/loginPage'; +import { ProcessServicesPage } from '../pages/adf/process_services/processServicesPage'; +import { TasksPage } from '../pages/adf/process_services/tasksPage'; + +import CONSTANTS = require('../util/constants'); + +import Tenant = require('../models/APS/Tenant'); +import Task = require('../models/APS/Task'); + +import TestConfig = require('../test.config'); +import resources = require('../util/resources'); + +import AlfrescoApi = require('alfresco-js-api-node'); +import { UsersActions } from '../actions/users.actions'; +import { AppsActions } from '../actions/APS/apps.actions'; + +describe('Task Details - No form', () => { + + let loginPage = new LoginPage(); + let processServicesPage = new ProcessServicesPage(); + let processUserModel; + let app = resources.Files.NO_FORM_APP; + let taskPage = new TasksPage(); + let noFormMessage = 'No forms attached'; + let apps = new AppsActions(); + let importedApp; + + beforeAll(async (done) => { + let users = new UsersActions(); + + this.alfrescoJsApi = new AlfrescoApi({ + provider: 'BPM', + hostBpm: TestConfig.adf.url + }); + + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + + let newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant()); + + processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id); + + await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password); + + importedApp = await apps.importPublishDeployApp(this.alfrescoJsApi, app.file_location); + + await apps.startProcess(this.alfrescoJsApi, importedApp); + + loginPage.loginToProcessServicesUsingUserModel(processUserModel); + + done(); + }); + + it('[C289311] Should attach form and complete buttons to be displayed when no form is attached', () => { + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(app.taskName); + taskPage.tasksListPage().selectTaskFromTasksList(app.taskName); + taskPage.taskDetails().noFormIsDisplayed(); + taskPage.taskDetails().checkCompleteTaskButtonIsDisplayed().checkCompleteTaskButtonIsEnabled(); + taskPage.taskDetails().checkAttachFormButtonIsNotDisplayed(); + expect(taskPage.taskDetails().getFormName()).toEqual(CONSTANTS.TASK_DETAILS.NO_FORM); + expect(taskPage.formFields().getNoFormMessage()).toEqual(noFormMessage); + + }); + +}) diff --git a/e2e/process-services/standalone_task.e2e.ts b/e2e/process-services/standalone_task.e2e.ts index b21dfac0da..75daee938a 100644 --- a/e2e/process-services/standalone_task.e2e.ts +++ b/e2e/process-services/standalone_task.e2e.ts @@ -76,7 +76,10 @@ describe('Start Task - Task App', () => { taskPage.createNewTask().addName(tasks[0]).clickStartButton() .then(() => { taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(tasks[0]); - taskPage.formFields().noFormIsDisplayed(); + taskPage.taskDetails().noFormIsDisplayed(); + taskPage.taskDetails().checkCompleteTaskButtonIsDisplayed().checkCompleteTaskButtonIsEnabled(); + taskPage.taskDetails().checkAttachFormButtonIsDisplayed(); + taskPage.taskDetails().checkAttachFormButtonIsEnabled(); expect(taskPage.taskDetails().getFormName()).toEqual(CONSTANTS.TASK_DETAILS.NO_FORM); expect(taskPage.formFields().getNoFormMessage()).toEqual(noFormMessage); }); diff --git a/e2e/resources/apps/No form app.zip b/e2e/resources/apps/No form app.zip new file mode 100644 index 0000000000000000000000000000000000000000..31e392b5febe519fa0fff535e99ea8b973a94af4 GIT binary patch literal 5089 zcmaJ_byO7E*QG-d1Sv@+q?@5d8XUR@1SEzWVCWW*MnXW^kq+tZWT?$b@tX!#>65;!^6Wvv$Y1PqWukzf3MY`&#a&>4$sV- zoVe{=p^olxRd#UR$6;@Kmke7FvC6bDv=2{n;-je zS@;x!$|=oXunr-dj|IDs7Zx%cb>8r)Ph%$0Y|=QS_|t1iDQ zI5;*l@p91A4dxRnv|Ibj!|j(vp~E$XhB7YR%-XQ-+VAAu(9zH|{C}F_+zdR=`9Dx6%~Kr^Ul^#tUTbN=Cp05l_Cd` zNTj%__9FPjhm+Ow^f)3smFdrW!w-V&}hOO@7g327&``%QTtaHAQQSEHK9D-W$i%zo0beb?Q z>D<#33WaLJ*qie|s5OCB0qsu>q@Q`S*yall73qXXt3@mYG?fNOmId%3Gc$<9zz@TJ zHt*NH(SJQluwD7YQio-7MSavXP#f6#;$`ybw>O-u{{4V31=?(hOKgM4i}vWuf`E3wS?s32|EtG^q+6ydfl$-gX5l5SRc zr0Uy5(Dv-a8vQ{GW}f#N*`VE#%bh|Gy<3~+)h_K+XlZ0s@crX1^kS0YTNOR)l4+3j zj?-7)Uq0Vj4yDQu|MRoLm%5g{VR>+(ThQn1Q&dA#}J&?zi0g=AsoiTX98fk&?g zJ31_pg4v9u0a(IRi^lsY#4@ilJq4(vkHdMEHxAlMUsPAM73BCucjQ~=p|>Wjz4fYu zw*)VmbwX9+!2ovFtg(8R=dk=?m@(fz`a@M~Fy7 zuH`yTb{eO}SS7@JOCk-|$~>2efF{5SyDKh?cC|!zZ%#ThjJhNyNRx_AKqm|!!9D2N zcb_(paHDOTQJQr^v`ip{L%?pk4nhA_cU(2kGVV`L*=MmeGbVysE;<;76ub2*Ch2ty0KX?zE z&b<)HvIB=tLYh|UpD0|AhR)O-K>_c^k2ELiece281z(njWcUAotzdJF?iGEvsU=Jy zL~J;-$In*W76QD_waACk3=8jfS4j}gd8*su``BcqckRs~nK}MNzFhs{pdZH;xS-=l ze>g#6#&rsTiH0Ul_+Okr`=6ZP?`ubkGfBI%Ses5NC%Nk2FXi>#|Gl=;XY}d)PO!CgDX6=2-KTQVb=&sL&U>cX$w-@ zl&jGs2?Q!oO>%;kly5#dWg#r}%3dbJ>fHmUc;B|Su)E53-R4)CC`l5+&99Nl^`s?r zwTC>8x+vU%?r|^W`Xbk=XFn=R ztzu)x-(vW32c72XMzohjL}Y}jBZ5env33B_{T7%ksmJz&ig+U7ktce=ZEIk)L%Fz} zDDgW2H4?@L(Rh~+)JHjbNGqCW6?lJ6V>FQV1uCgx6>IJS-lL>5Ono#+P#68l!3z|UgE-5EV&OkSQjB7V}y6*0C`O_&b@?-V+>*%6FpdbkSUVX z^jJH?i+GrUNFaE!kHCV%@ugbJStO=}R;oyDgpNOAk-hD}EuoyAp3?bP1UjEF&i%gS7zFiF5&KLOUNATmiXHF z#V`;xLbm}ioPYc?_23N0!QnvIKxnV+-MeCn($bI{ObmP2ThV3My$}1sLbGgh|6?|& z%j>&Hw5k&Yb0zimrKA%YH>BztN!$m<|oN2QuS&Al+ics1OT=~G}@Cgoi`im%oQFO@5dHg)Y&6x zYx%^};^X79Wab4n-jbD`=Ty#ypEp;Z)Oa)+<76Wr*}&asvP>=zs;9h5Ki(#3u-59# zvtnQfZH|l4D@z zP9;?_kK|PbkfO}e?OMIu2N`@3#_qelKmCx;;nWshLQXI0RqwPF6~ottBYQ?s6u{(O zkG#6{8>v?t!CDJgI|s)EDr(zcV0p^MW@o3=HPr;-f*3;txwy?hoRP+HOZBU7B7boL zmpDp|*vBQb39702K6^c(t&x~0Vpu)jeQI!X^K;Q?#%0L5kWI)F?4qK=C^(4?hy@rX zpP2O3iN%yR@~^!vqcv+xFRT2$ z&W+J?qMwO=ce)kajh|Fz2WZRs13wM8LadtszN};@<%!?VUtL~VKK(o$G%qwEUqpap zXzWVR(Ifv7mEjdz#Q_s^Zf?pPvsG8+T~AA9Rr_QG7+ec8;n+?$C(?+b8OP4=+`HnEGI42;m31y(B-8{wQzYBZGb!|`+dO;uBXepO^KT9s zZw`a?<>L)urH^JDAo@YYxo z8)Q{2{j=vTL#i?aqP!qoGBh%R^QP3MAFQS@Q3iQ9pj6NyrYYSNd=xv>+KO$UD4+Br zBG8As(MRpXx%We6XjDr}y>`>72=~WtBEk(+bb>bp91v4K;vp5Fu$8>^sNVUHEVAPZ?H=0|1lQnP)>Oy zvy*7Z;a>5yVbN{!-R@EmD`sr$9Oyh{5F41tzo@-6GcN)sP^tF5ckl{;DpTh;f{ zS0pJ~0P*ovk%z~|l^4Q;PO3sT|io{QC}q+yMa(X8C+Ht>5KYVgqyQo_PARY%rD9!m1oj@2Uarc754f0NlX|< zh)3JG=z;$A{ZQV$dUVGecEJXA1>)VDf6x6ES}B*qsP^znk~^F~tyDUyYy}M;4einI z`S0?I=|5YkKf;Tjm)pz1zD@rP^fU0W|6#>0(lVl9B1Y=Tt4AP`m1RF; zFT7Ph*t=AmUrEfRSh+H2a#~9<$(CuVa?Wigs|C(ppSQ9>;3WhQpwWy9fK50%iV8TVMJobIe`nMjQd1|a?*`rXZQ-P=_ zjs`K9LW$w7qt2$J7lmfAljy@OSpwE)QchZz8RNJKAsi$V&zE*z4BBc=AJG7XRJCtV zDg(?gsgt;5b*2J&g`0M79!rCatM61;olQNqQjF>JR&(kWRr56X!=~MJ01SumJmc`V z$yPU|*A$##r|(}SGs}M>TTWCh?Ju*v^(A761C$~w?rTmv8jhttoIuDs(aE%CnaK7F z%u@^a)89P~v6WRZtz3>)l#wY0d1&i3Qtwp&PXvNC`QMIHJ+z6lF=>VhvO#bUbR0Q5 z!yJL>I$ce~F=i#-#VZ?>WjhB16*b!2lCDXsOoeXuua~OGXU=0M>0eoC9}|Spvt@|5 zve%EKC+SL`Vzc=>Y*?cQE$!FavEo6lXr$YXz_uB|oWAzE7P8gM>g!K^fT6R3AEgy~ zE8;uJc%Nr=@n)MIo!?I0uCEySUHKVEDv{3zv7BQ z$#Q*Nv6Y1;IA!G*mIUG>w{a3^`=+WKqO0s;Lk@~EcOm!bf?PH&k~;pgEpIU49o@bA z;Bo`Zeh))jxpkj{gE_BQrfIFX7cCE}jc2itC!l&=&+{?PRpllZ<9W5_B znt?$wAT4t4t{C=ZnJ=@PtSNrg?`KVl6%To-N_a^YnUIPA!KJSB#SIr*3vqc;&q$#g z_JXjHwBidp66Kp!wrc{eS$^v-;=lze~A4CeB}= z|84mEx25yXSbyiTKjQB%2w?wLtlv`bpP~Mq@E`K~3;w?~=f8jJFDlef#>V+`3+wk_ M`JGB0$)DZ-0X