This is an automated email from the ASF dual-hosted git repository.

ocket8888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new fb6fd14  Migrate Parameter test from E2E to integrate test suite TP 
(#6063)
fb6fd14 is described below

commit fb6fd1477c67847351191aeca30137cdee10bc4e
Author: dpham <[email protected]>
AuthorDate: Mon Aug 2 10:38:14 2021 -0600

    Migrate Parameter test from E2E to integrate test suite TP (#6063)
    
    * Add new test
    
    * Fix PR
    
    * Add name element and change xpath
    
    Co-authored-by: Pham, Dandy (Contractor) <[email protected]>
---
 .../table/parameters/table.parameters.tpl.html     |  2 +-
 traffic_portal/test/integration/Data/parameters.ts | 48 ++++++++++++++++++++++
 .../integration/PageObjects/ParametersPage.po.ts   | 39 +++++++++++-------
 .../test/integration/specs/Parameters.spec.ts      | 18 ++++++++
 4 files changed, 92 insertions(+), 15 deletions(-)

diff --git 
a/traffic_portal/app/src/common/modules/table/parameters/table.parameters.tpl.html
 
b/traffic_portal/app/src/common/modules/table/parameters/table.parameters.tpl.html
index 624032f..6bb2e7e 100644
--- 
a/traffic_portal/app/src/common/modules/table/parameters/table.parameters.tpl.html
+++ 
b/traffic_portal/app/src/common/modules/table/parameters/table.parameters.tpl.html
@@ -23,7 +23,7 @@ under the License.
             <li class="active">Parameters</li>
         </ol>
         <div class="pull-right">
-            <button class="btn btn-primary" title="Create Parameter" 
ng-click="createParameter()"><i class="fa fa-plus"></i></button>
+            <button class="btn btn-primary" name="createParameterButton" 
title="Create Parameter" ng-click="createParameter()"><i class="fa 
fa-plus"></i></button>
             <button class="btn btn-default" title="Refresh" 
ng-click="refresh()"><i class="fa fa-refresh"></i></button>
             <div id="toggleColumns" class="btn-group" role="group" 
title="Select Table Columns" uib-dropdown is-open="columnSettings.isopen">
                 <button type="button" class="btn btn-default dropdown-toggle" 
uib-dropdown-toggle aria-haspopup="true" aria-expanded="false">
diff --git a/traffic_portal/test/integration/Data/parameters.ts 
b/traffic_portal/test/integration/Data/parameters.ts
index 13904c9..0316d2b 100644
--- a/traffic_portal/test/integration/Data/parameters.ts
+++ b/traffic_portal/test/integration/Data/parameters.ts
@@ -61,6 +61,22 @@ export const parameters = {
                                        password: "pa$$word"
                                }
                        ],
+                       check: [
+                               {
+                                       description: "check CSV link from 
Parameter page",
+                                       Name: "Export as CSV"
+                               }
+                       ],
+                       toggle:[
+                               {
+                                       description: "hide first table column",
+                                       Name: "Config File"
+                               },
+                               {
+                                       description: "redisplay first table 
column",
+                                       Name: "Config File"
+                               }
+                       ],
                        add: [
                                {
                                        description: "create a Parameters",
@@ -95,6 +111,22 @@ export const parameters = {
                                        password: "pa$$word"
                                }
                        ],
+                       check: [
+                               {
+                                       description: "check CSV link from 
Parameter page",
+                                       Name: "Export as CSV"
+                               }
+                       ],
+                       toggle:[
+                               {
+                                       description: "hide first table column",
+                                       Name: "Config File"
+                               },
+                               {
+                                       description: "redisplay first table 
column",
+                                       Name: "Config File"
+                               }
+                       ],
                        add: [
                                {
                                        description: "create a Parameters",
@@ -129,6 +161,22 @@ export const parameters = {
                                        password: "pa$$word"
                                }
                        ],
+                       check: [
+                               {
+                                       description: "check CSV link from 
Parameter page",
+                                       Name: "Export as CSV"
+                               }
+                       ],
+                       toggle:[
+                               {
+                                       description: "hide first table column",
+                                       Name: "Config File"
+                               },
+                               {
+                                       description: "redisplay first table 
column",
+                                       Name: "Config File"
+                               }
+                       ],
                        add: [
                                {
                                        description: "create a Parameters",
diff --git a/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts 
b/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
index 0c217cf..1a5855c 100644
--- a/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
@@ -17,7 +17,6 @@
  * under the License.
  */
 import { by, element } from 'protractor';
-
 import { randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
@@ -27,7 +26,7 @@ interface DeleteParameter {
   validationMessage?: string;
 }
 
-interface Parameter extends DeleteParameter{
+interface Parameter extends DeleteParameter {
   ConfigFile: string;
   Secure: string;
   Value: string;
@@ -41,31 +40,31 @@ interface UpdateParameter {
 
 export class ParametersPage extends BasePage {
 
-  private btnCreateNewParameter = element(by.xpath("//button[@title='Create 
Parameter']"));
+  private btnCreateNewParameter = element(by.name('createParameterButton'));
   private txtName = element(by.name('name'));
   private txtConfigFile = element(by.name('configFile'));
   private txtValue = element((by.name("value")));
   private txtSecure = element(by.name('secure'));
-
   private txtSearch = 
element(by.id('parametersTable_filter')).element(by.css('label input'));
   private btnDelete = element(by.buttonText('Delete'));
   private btnYes = element(by.buttonText('Yes'));
   private txtConfirmName = element(by.name('confirmWithNameInput'));
+  private btnTableColumn = element(by.className("caret"))
   private randomize = randomize;
 
-  async OpenParametersPage() {
-    let snp = new SideNavigationPage();
+  public async OpenParametersPage() {
+    const snp = new SideNavigationPage();
     await snp.NavigateToParametersPage();
   }
 
-  async OpenConfigureMenu() {
-    let snp = new SideNavigationPage();
+  public async OpenConfigureMenu() {
+    const snp = new SideNavigationPage();
     await snp.ClickConfigureMenu();
   }
 
   public async CreateParameter(parameter: Parameter): Promise<boolean> {
     let result = false;
-    let basePage = new BasePage();
+    const basePage = new BasePage();
     await this.btnCreateNewParameter.click();
     await this.txtName.sendKeys(parameter.Name + this.randomize);
     await this.txtConfigFile.sendKeys(parameter.ConfigFile);
@@ -82,7 +81,7 @@ export class ParametersPage extends BasePage {
     return result;
   }
 
-  async SearchParameter(nameParameter: string) {
+  public async SearchParameter(nameParameter: string) {
     let name = nameParameter + this.randomize;
     await this.txtSearch.clear();
     await this.txtSearch.sendKeys(name);
@@ -93,8 +92,8 @@ export class ParametersPage extends BasePage {
     }).first().click();
   }
 
-  public async UpdateParameter(parameter: UpdateParameter): Promise<boolean | 
undefined> {
-    let basePage = new BasePage();
+  public async UpdateParameter(parameter: UpdateParameter): Promise<boolean> {
+    const basePage = new BasePage();
     switch (parameter.description) {
       case "update parameter configfile":
         await this.txtConfigFile.clear();
@@ -103,14 +102,14 @@ export class ParametersPage extends BasePage {
         await this.btnYes.click();
         break;
       default:
-        return undefined;
+        return false;
     }
     return await basePage.GetOutputMessage().then(value => 
parameter.validationMessage === value);
   }
 
   async DeleteParameter(parameter: DeleteParameter): Promise<boolean> {
     let result = false;
-    let basePage = new BasePage();
+    const basePage = new BasePage();
     await this.btnDelete.click();
     await this.btnYes.click();
     await this.txtConfirmName.sendKeys(parameter.Name + this.randomize);
@@ -124,4 +123,16 @@ export class ParametersPage extends BasePage {
     })
     return result;
   }
+
+  public async CheckCSV(name: string): Promise<boolean> {
+    return element(by.cssContainingText("span", name)).isPresent();
+  }
+  
+  public async ToggleTableColumn(name: string): Promise<boolean> {
+    await this.btnTableColumn.click();
+    const result = await element(by.cssContainingText("th", name)).isPresent();
+    await element(by.cssContainingText("label", name)).click();
+    await this.btnTableColumn.click();
+    return !result;
+  }
 }
diff --git a/traffic_portal/test/integration/specs/Parameters.spec.ts 
b/traffic_portal/test/integration/specs/Parameters.spec.ts
index 1976b65..95b8c59 100644
--- a/traffic_portal/test/integration/specs/Parameters.spec.ts
+++ b/traffic_portal/test/integration/specs/Parameters.spec.ts
@@ -48,6 +48,24 @@ parameters.tests.forEach(async parametersData => {
                 await parametersPage.OpenConfigureMenu();
                 await parametersPage.OpenParametersPage();
             });
+            parametersData.check.forEach(check => {
+                it(check.description, async () => {
+                    expect(await 
parametersPage.CheckCSV(check.Name)).toBe(true);
+                    await parametersPage.OpenParametersPage();
+                });
+            });
+            parametersData.toggle.forEach(toggle => {
+                it(toggle.description, async () => {
+                    if(toggle.description.includes('hide')){
+                        expect(await 
parametersPage.ToggleTableColumn(toggle.Name)).toBe(false);
+                        await parametersPage.OpenParametersPage();
+                    }else{
+                        expect(await 
parametersPage.ToggleTableColumn(toggle.Name)).toBe(true);
+                        await parametersPage.OpenParametersPage();
+                    }
+                    
+                });
+            })
             parametersData.add.forEach(add => {
                 it(add.description, async () => {
                     expect(await 
parametersPage.CreateParameter(add)).toBeTruthy();

Reply via email to