import { browser, element, by, protractor, ExpectedConditions as EC, WebElement, error, Key, $ } from 'protractor'; export class HelpDeskPage { //HELPDESK PAGE sideMenu = element.all(by.className('kt-menu__item')); helpdeskPage = element(by.css('[href="/app/sprintship/support-ticket"]')); helpdeskTitle = "Tickets"; createBtn = element(by.id('createBtn')); helpDeskKPI = element(by.tagName('support-kpi-box')); advanceFilter = element(by.className('clickable-item')); applyBtn = element(by.id('helpdeskApplyBtn')); //TICKET GRID helpdeskGrid = element(by.className('primeng-datatable-container col-12')); rowCount = element(by.id('totalTicketCount')); actionsBtn = element(by.id('actionBtn')); edit = element(by.linkText('Edit')); confirmSave = element(by.id('swal2-content')); myTickets = element(by.css('.box-amber-1')).element(by.className('kpi-box-value')) //Create New Ticket selectAssignedTo = element(by.className('select2-assigned-container')); selectSearch = element(by.className('select2-search__field')); selectTicketType = element(by.id('select2-typeInput-container')); selectType = element(by.id('select2-type-container')); selectTicketStatus = element(by.id('select2-statusNew-container')); selectStatus = element(by.id('select2-status-container')); selectEnvironment = element(by.id('select2-environmentInput-container')); selectPriority = element(by.id('select2-priorityInput-container')) shorDesc = element(by.id('shortDescription')); bugDesc = element(by.id('descriptionhalf')); desc = element(by.id('descriptionfull')) attachment = element(by.id('attachBtn')); saveTicket = element(by.id('saveTicketBtn')); notesTab = element(by.id('notesTab-link')); newNoteBtn = element(by.id('newNoteBtn')); noteModal = element(by.tagName('ticketnotesmodal')); noteInput = element(by.id('note')); noteTimeline = element(by.css('.kt-timeline-v2')); saveNote = element(by.id('saveNoteBtn')); cancelBtn = element(by.id('cancelNoteBtn')); closeNoteIcon = element(by.id('closesNoteIcon')); solutionsTab = element(by.id('solutionTab-link')) solutionDesc = element(by.id('Solution')); rootcauseTab = element(by.id('rootCauseTab-link')); rootcauseDesc = element(by.id('RootCause')); //Ticket Types issue = element(by.cssContainingText('.select2-results__option','Issue or Bug')); featureChange = element(by.cssContainingText('.select2-results__option','Feature Change')); newfeature = element(by.cssContainingText('.select2-results__option','New Feature')); request = element(by.cssContainingText('.select2-results__option','Request')); //Ticket Statuses selectStat = element(by.cssContainingText('.select2-results__option','Select Status')); new = element(by.cssContainingText('.select2-results__option','New')); assigned = element(by.cssContainingText('.select2-results__option','Assigned')); doing = element(by.cssContainingText('.select2-results__option','Doing')); testing = element(by.cssContainingText('.select2-results__option','Testing')); done = element(by.cssContainingText('.select2-results__option','Done')); resolve = element(by.cssContainingText('.select2-results__option','Resolve')); //Environment production = element(by.cssContainingText('.select2-results__option','Production')); sandbox = element(by.cssContainingText('.select2-results__option','Sandbox')); //Ticket priority urgent = element(by.cssContainingText('.select2-results__option','Urgent')); high = element(by.cssContainingText('.select2-results__option','High')); medium = element(by.cssContainingText('.select2-results__option','Medium')); low = element(by.cssContainingText('.select2-results__option','Low')); //Ticket Category //HELPDESK KPI openTicket = element(by.id('totalOpen')); newTicket = element(by.id('totalNew')); urgentTicket = element(by.id('totalUrgent')) assignedTicket = element(by.id('totalAssigned')); unassignedTicket = element(by.id('totalUnassigned')) closedTicket = element(by.id('totalClosed')); todayClosedTicket = element(by.id('totalTodayClosed')); featureChangeTicket = element(by.id('totalFeatureChange')); requestTicket = element(by.id('totalRequest')); bugTicket = element(by.id('totalBug')); newfeatureTicket = element(by.id('totalNewFeature')); myTicket = element(by.id('myTicket')); ////////////////////////////////////////////// async navigateTo() { await browser.get('https://sprinthub-sandbox-staging.azureedge.net/app/sprintship/support-ticket'); } async waitForItemToBeVisible(element) { return await browser.wait(EC.visibilityOf(element)); } async createBugTicket(){ await this.createBtn.click(); await browser.sleep(2000); await this.selectTicketType.click(); await this.issue.click(); await this.selectTicketStatus.click(); await this.new.click(); await this.selectEnvironment.click(); await this.production.click(); await this.selectPriority.click(); await this.low.click(); await this.shorDesc.sendKeys('Portal- Blank Screen') await this.bugDesc.sendKeys('Is the system down? I got a blank white screen when I Logged in. '); await this.notesTab.click(); await this.newNoteBtn.click(); await browser.sleep(5000); await this.noteInput.click(); await this.noteInput.sendKeys('Added Note'); await this.saveNote.click(); } async createBugNote(){ await this.notesTab await this.newNoteBtn.click(); await this.waitForItemToBeVisible(this.noteModal); await this.noteInput.sendKeys('It seems to be working now.'); await this.saveNote.click(); } async addSolutionAndRootcause(){ await this.solutionDesc.click(); await this.solutionDesc.sendKeys('Restart the server ') await this.rootcauseTab.click(); await this.rootcauseDesc.sendKeys('Delay in scaling up the memory of the server.'); await this.solutionsTab.click(); } async editTicekt(){ await this.actionsBtn.click(); await this.edit.click(); await browser.sleep(3000); } async addNote(){ await this.notesTab.click(); await this.newNoteBtn.click(); await this.waitForItemToBeVisible(this.noteModal); await this.noteInput.sendKeys('This is a test note.'); await this.saveNote.click(); } }