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

zrhoffman 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 5784d8e  Replace uses of 'require' with 'import' (#5687)
5784d8e is described below

commit 5784d8ed8d7076de69811141c34e682f044f9680
Author: ocket8888 <[email protected]>
AuthorDate: Fri Apr 2 12:30:55 2021 -0600

    Replace uses of 'require' with 'import' (#5687)
    
    * remove uses of 'require' from API.ts
    
    * remove uses of 'require' from page objects
    
    * remove uses of 'require' from spec files
    
    * Add typings for fs-extra
    
    * Remove uses of 'require' from config
    
    * Fix incorrect default imports
    
    * Make config a private variable of API class again
    
    * Fix randomization imports
---
 traffic_portal/test/integration/CommonUtils/API.ts | 63 +++++++++++-----------
 .../test/integration/PageObjects/ASNs.po.ts        |  7 +--
 .../test/integration/PageObjects/CDNPage.po.ts     |  8 +--
 .../test/integration/PageObjects/CacheGroup.po.ts  |  8 +--
 .../integration/PageObjects/CoordinatesPage.po.ts  | 11 ++--
 .../test/integration/PageObjects/Divisions.po.ts   |  8 +--
 .../test/integration/PageObjects/LoginPage.po.ts   | 18 ++++---
 .../test/integration/PageObjects/OriginsPage.po.ts |  9 ++--
 .../integration/PageObjects/ParametersPage.po.ts   | 11 ++--
 .../PageObjects/PhysLocationsPage.po.ts            |  9 ++--
 .../integration/PageObjects/ProfilesPage.po.ts     |  9 ++--
 .../test/integration/PageObjects/RegionsPage.po.ts |  9 ++--
 .../PageObjects/ServerCapabilitiesPage.po.ts       |  8 +--
 .../test/integration/PageObjects/ServersPage.po.ts | 14 +++--
 .../PageObjects/ServiceCategories.po.ts            |  8 +--
 .../test/integration/PageObjects/Statuses.po.ts    |  8 +--
 .../test/integration/PageObjects/TenantsPage.po.ts |  8 +--
 .../PageObjects/TopNavigationPage.po.ts            |  9 ++--
 .../test/integration/PageObjects/Types.po.ts       | 10 ++--
 .../test/integration/PageObjects/UsersPage.po.ts   |  8 +--
 traffic_portal/test/integration/config.ts          | 24 ++++-----
 traffic_portal/test/integration/package-lock.json  | 19 +++++++
 traffic_portal/test/integration/package.json       |  1 +
 traffic_portal/test/integration/pnpm-lock.yaml     | 12 +++++
 traffic_portal/test/integration/specs/ASNs.spec.ts | 15 +++---
 traffic_portal/test/integration/specs/CDNs.spec.ts | 12 ++---
 .../test/integration/specs/CacheGroup.spec.ts      | 19 +++----
 .../test/integration/specs/Coordinates.spec.ts     | 17 +++---
 .../test/integration/specs/Divisions.spec.ts       | 15 +++---
 .../test/integration/specs/Login.spec.ts           |  2 +-
 .../test/integration/specs/Origins.spec.ts         | 17 +++---
 .../test/integration/specs/Parameters.spec.ts      | 17 +++---
 .../test/integration/specs/PhysLocations.spec.ts   | 19 ++++---
 .../test/integration/specs/Profiles.spec.ts        | 16 +++---
 .../test/integration/specs/Regions.spec.ts         | 15 +++---
 .../integration/specs/ServerCapabilities.spec.ts   | 13 ++---
 .../specs/ServerServerCapabilities.spec.ts         | 13 ++---
 .../test/integration/specs/Servers.spec.ts         | 15 +++---
 .../integration/specs/ServiceCategories.spec.ts    | 15 +++---
 .../test/integration/specs/Statuses.spec.ts        | 15 +++---
 .../test/integration/specs/Types.spec.ts           | 15 +++---
 traffic_portal/test/integration/tsconfig.json      |  1 +
 42 files changed, 320 insertions(+), 230 deletions(-)

diff --git a/traffic_portal/test/integration/CommonUtils/API.ts 
b/traffic_portal/test/integration/CommonUtils/API.ts
index e241045..ab4b572 100644
--- a/traffic_portal/test/integration/CommonUtils/API.ts
+++ b/traffic_portal/test/integration/CommonUtils/API.ts
@@ -18,34 +18,33 @@
  */
 
 // API Utility
+import { Agent } from "https";
+
 import axios from 'axios';
-import { config } from '../config';
+import randomIpv6 from "random-ipv6";
 
-const https = require('https');
+import { config, randomize } from '../config';
 
 export class API {
 
-    private config = require('../config');
-    private randomIpv6 = require('random-ipv6');
-    private randomize = this.config.randomize;
-    private twoNumberRandomize = this.config.twoNumberRandomize;
-    private cookie: string;
+    private cookie = "";
+    private readonly config = config;
 
     constructor() {
         axios.defaults.headers.common['Accept'] = 'application/json'
         axios.defaults.headers.common['Authorization'] = 'No-Auth'
         axios.defaults.headers.common['Content-Type'] = 'application/json'
-        axios.defaults.httpsAgent = new https.Agent({ rejectUnauthorized: 
false })
+        axios.defaults.httpsAgent = new Agent({ rejectUnauthorized: false })
     }
 
     Login = async function () {
         try {
             const response = await axios({
                 method: 'post',
-                url: config.params.apiUrl + '/user/login',
+                url: this.config.params.apiUrl + '/user/login',
                 data: {
-                    u: config.params.login.username,
-                    p: config.params.login.password
+                    u: this.config.params.login.username,
+                    p: this.config.params.login.password
                 }
             });
             this.cookie = await response.headers["set-cookie"][0];
@@ -71,7 +70,7 @@ export class API {
                 case "post":
                     response = await axios({
                         method: method,
-                        url: config.params.apiUrl + route,
+                        url: this.config.params.apiUrl + route,
                         headers: { Cookie: this.cookie},
                         data: data
                     });
@@ -79,23 +78,23 @@ export class API {
                 case "get":
                     response = await axios({
                         method: method,
-                        url: config.params.apiUrl + route,
+                        url: this.config.params.apiUrl + route,
                         headers: { Cookie: this.cookie},
                     });
                     break;
                 case "delete":
                     if ((data.route).includes('?name')){
-                        data.route = data.route + this.randomize
+                        data.route = data.route + randomize
                     }
                     if ((data.route).includes('?id')){
                         data.route = data.route + data.id;
                     }
                     if((data.route).includes('/service_categories/')){
-                        data.route = data.route + this.randomize
+                        data.route = data.route + randomize
                     }
                     response = await axios({
                         method: method,
-                        url: config.params.apiUrl + data.route,
+                        url: this.config.params.apiUrl + data.route,
                         headers: { Cookie: this.cookie},
                     });
                     break;
@@ -114,11 +113,11 @@ export class API {
 
     GetId = async function (data) {
         for(var i = 0; i < data.getRequest.length; i++) {
-            var query = '?' + data.getRequest[i].queryKey  + '=' + 
data.getRequest[i].queryValue + this.randomize;
+            var query = '?' + data.getRequest[i].queryKey  + '=' + 
data.getRequest[i].queryValue + randomize;
             try {
                 const response = await axios({
                     method: 'get',
-                    url: config.params.apiUrl + data.getRequest[i].route + 
query,
+                    url: this.config.params.apiUrl + data.getRequest[i].route 
+ query,
                     headers: { Cookie: this.cookie},
                });
 
@@ -142,48 +141,48 @@ export class API {
 
    Randomize = function(data) {
         if(data.hasOwnProperty('email')) {
-            data['email'] = data.fullName + this.randomize + data.email;
+            data['email'] = data.fullName + randomize + data.email;
         }
         if(data.hasOwnProperty('fullName')) {
-            data['fullName'] = data.fullName + this.randomize;
+            data['fullName'] = data.fullName + randomize;
         }
         if(data.hasOwnProperty('hostName')) {
-            data['hostName'] = data.hostName + this.randomize;
+            data['hostName'] = data.hostName + randomize;
         }
         if(data.hasOwnProperty('ipAddress')) {
             data['ipAddress'] = (Math.floor(Math.random() * 255) + 
1)+"."+(Math.floor(Math.random() * 255))+"."+(Math.floor(Math.random() * 
255))+"."+(Math.floor(Math.random() * 255));
         }
         if(data.hasOwnProperty('name')) {
-            data['name'] = data.name + this.randomize;
+            data['name'] = data.name + randomize;
         }
         if(data.hasOwnProperty('requiredCapability')) {
-            data['requiredCapability'] = data.requiredCapability + 
this.randomize;
+            data['requiredCapability'] = data.requiredCapability + randomize;
         }
         if(data.hasOwnProperty('serverCapability')) {
-            data['serverCapability'] = data.serverCapability + this.randomize;
+            data['serverCapability'] = data.serverCapability + randomize;
         }
         if(data.hasOwnProperty('username')) {
-            data['username'] = data.username + this.randomize;
+            data['username'] = data.username + randomize;
         }
         if(data.hasOwnProperty('xmlId')) {
-            data['xmlId'] = data.xmlId + this.randomize;
+            data['xmlId'] = data.xmlId + randomize;
         }
         if(data.hasOwnProperty('shortName')) {
-            data['shortName'] = data.shortName + this.randomize;
+            data['shortName'] = data.shortName + randomize;
         }
         if(data.hasOwnProperty('divisionName')) {
-            data['divisionName'] = data.divisionName + this.randomize;
+            data['divisionName'] = data.divisionName + randomize;
         }
         if(data.hasOwnProperty('domainName')) {
-            data['domainName'] = data.domainName + this.randomize;
+            data['domainName'] = data.domainName + randomize;
         }
         if(data.hasOwnProperty('nodes')){
            for(var i in  data['nodes']){
-               data['nodes'][i].cachegroup = data['nodes'][i].cachegroup + 
this.randomize;
+               data['nodes'][i].cachegroup = data['nodes'][i].cachegroup + 
randomize;
            }
         }
         if(data.hasOwnProperty('interfaces')){
-            let ipv6 = this.randomIpv6();
+            let ipv6 = randomIpv6();
             for(var i in data['interfaces']){
                 for(var j in data['interfaces'][i].ipAddresses){
                    data['interfaces'][i].ipAddresses[j].address = 
ipv6.toString();
@@ -207,7 +206,7 @@ export class API {
                 }
                 return null
             } else if (response.status == undefined) {
-                throw new Error(`Error requesting ${config.params.apiUrl}: 
${response}`);
+                throw new Error(`Error requesting 
${this.config.params.apiUrl}: ${response}`);
             } else {
                 throw new Error('Login failed:\nResponse Status: ' + 
response.statusText + '\nResponse Data: ' + response.data)
             }
diff --git a/traffic_portal/test/integration/PageObjects/ASNs.po.ts 
b/traffic_portal/test/integration/PageObjects/ASNs.po.ts
index a6c1764..560ecc5 100644
--- a/traffic_portal/test/integration/PageObjects/ASNs.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ASNs.po.ts
@@ -17,6 +17,8 @@
  * under the License.
  */
 import { browser, by, element } from 'protractor'
+
+import { config, twoNumberRandomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
 
@@ -27,9 +29,8 @@ export class ASNsPage extends BasePage {
     private txtCacheGroup = element(by.name("cachegroup"))
     private btnDelete = element(by.xpath("//button[text()='Delete']"));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
-    private twoNumberRandomize = this.config.twoNumberRandomize;
+    private config = config;
+    private twoNumberRandomize = twoNumberRandomize;
 
     async OpenASNsPage() {
         let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/CDNPage.po.ts 
b/traffic_portal/test/integration/PageObjects/CDNPage.po.ts
index 1c418f4..1944113 100644
--- a/traffic_portal/test/integration/PageObjects/CDNPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/CDNPage.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element, ExpectedConditions, protractor } from 
'protractor';
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
 
@@ -33,8 +35,8 @@ export class CDNPage extends BasePage {
   private btnDiffSnapshot = element(by.xpath("//button[@title='Diff CDN 
Snapshot']"));
   private btnYes = element((by.xpath("//button[text()='Yes']")));
   private btnQueueUpdates = element((by.xpath("//button[contains(text(),'Queue 
Updates')]")));
-  private config = require('../config');
-  private randomize = this.config.randomize;
+  private readonly config = config;
+  private randomize = randomize;
   async OpenCDNsPage() {
     let snp = new SideNavigationPage();
     await snp.NavigateToCDNPage();
diff --git a/traffic_portal/test/integration/PageObjects/CacheGroup.po.ts 
b/traffic_portal/test/integration/PageObjects/CacheGroup.po.ts
index 6f33d06..f85c318 100644
--- a/traffic_portal/test/integration/PageObjects/CacheGroup.po.ts
+++ b/traffic_portal/test/integration/PageObjects/CacheGroup.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from '../PageObjects/SideNavigationPage.po';
 
@@ -36,8 +38,8 @@ export class CacheGroupPage extends BasePage {
     private txtNoMatchingError = element(by.xpath("//td[text()='No data 
available in table']"));
     private txtConfirmCacheGroupName = 
element(by.name("confirmWithNameInput"));
     private btnDelete = element(by.buttonText('Delete'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private config = config;
+    private randomize = randomize;
 
     async OpenTopologyMenu() {
         let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/CoordinatesPage.po.ts 
b/traffic_portal/test/integration/PageObjects/CoordinatesPage.po.ts
index ac70b72..becb8f6 100644
--- a/traffic_portal/test/integration/PageObjects/CoordinatesPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/CoordinatesPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { by, element, browser } from 'protractor'
+import { by, element, browser } from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class CoordinatesPage extends BasePage {
 
     private btnCreateNewCoordinates = 
element(by.xpath("//button[@title='Create Coordinate']"));
@@ -29,8 +32,8 @@ export class CoordinatesPage extends BasePage {
     private btnDelete = element(by.buttonText('Delete'));
     private btnYes = element(by.buttonText('Yes'));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
 
     async OpenCoordinatesPage() {
         let snp = new SideNavigationPage();
@@ -115,4 +118,4 @@ export class CoordinatesPage extends BasePage {
         return result;
     }
 
-}
\ No newline at end of file
+}
diff --git a/traffic_portal/test/integration/PageObjects/Divisions.po.ts 
b/traffic_portal/test/integration/PageObjects/Divisions.po.ts
index 7dbe574..34fe322 100644
--- a/traffic_portal/test/integration/PageObjects/Divisions.po.ts
+++ b/traffic_portal/test/integration/PageObjects/Divisions.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
 
@@ -27,8 +29,8 @@ export class DivisionsPage extends BasePage {
     private txtName = element(by.id('name'));
     private btnDelete = element(by.xpath("//button[text()='Delete']"));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
 
     async OpenDivisionsPage(){
         let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/LoginPage.po.ts 
b/traffic_portal/test/integration/PageObjects/LoginPage.po.ts
index b3c4201..1db93e0 100644
--- a/traffic_portal/test/integration/PageObjects/LoginPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/LoginPage.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element} from 'protractor'
+import { browser, by, element} from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po'
 
 interface LoginData {
@@ -31,10 +33,10 @@ export class LoginPage extends BasePage{
     private btnLogin = element(by.name("loginSubmit"))
     private lnkResetPassword= element (by.xpath("//button[text()='Reset 
Password']"))
     private lblUserName = element(by.xpath("//span[@id='headerUsername']"))
-    private config = require('../config');
-    private randomize = this.config.randomize;
-    
-    
+    private readonly config = config;
+    private randomize = randomize;
+
+
     async Login(login:LoginData){
         let result = false;
         const basePage = new BasePage();
@@ -42,12 +44,12 @@ export class LoginPage extends BasePage{
             await this.txtUserName.sendKeys(login.username)
             await this.txtPassword.sendKeys(login.password)
             await browser.actions().mouseMove(this.btnLogin).perform();
-            await browser.actions().click(this.btnLogin).perform();    
+            await browser.actions().click(this.btnLogin).perform();
         }else{
             await this.txtUserName.sendKeys(login.username+this.randomize)
             await this.txtPassword.sendKeys(login.password)
             await browser.actions().mouseMove(this.btnLogin).perform();
-            await browser.actions().click(this.btnLogin).perform();    
+            await browser.actions().click(this.btnLogin).perform();
         }
         if(await browser.getCurrentUrl() === browser.params.baseUrl + 
"#!/login"){
             result = await basePage.GetOutputMessage().then(value => value === 
login.validationMessage);
@@ -63,7 +65,7 @@ export class LoginPage extends BasePage{
         if(await this.lblUserName.getText() === 'admin' || await 
this.lblUserName.getText() === login.username+this.randomize){
             return true;
         }else{
-            return false;   
+            return false;
         }
     }
 };
diff --git a/traffic_portal/test/integration/PageObjects/OriginsPage.po.ts 
b/traffic_portal/test/integration/PageObjects/OriginsPage.po.ts
index 32aa0ed..572a8ff 100644
--- a/traffic_portal/test/integration/PageObjects/OriginsPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/OriginsPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class OriginsPage extends BasePage {
     private btnCreateNewOrigins = element(by.xpath("//button[@title='Create 
Origin']"));
     private txtSearch = 
element(by.id('originsTable_filter')).element(by.css('label input'));
@@ -29,8 +32,8 @@ export class OriginsPage extends BasePage {
     private txtDeliveryService = element(by.name("deliveryServiceId"));
     private btnDelete = element(by.xpath("//button[text()='Delete']"));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
     async OpenOriginsPage() {
         let snp = new SideNavigationPage();
         await snp.NavigateToOriginsPage();
diff --git a/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts 
b/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
index 8a2c5ba..b4c388d 100644
--- a/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ParametersPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { by, element } from 'protractor'
+import { by, element } from 'protractor';
+
+import { config, randomize } from "../config";
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class ParametersPage extends BasePage {
 
   private btnCreateNewParameter = element(by.xpath("//button[@title='Create 
Parameter']"));
@@ -32,8 +35,8 @@ export class ParametersPage extends BasePage {
   private btnDelete = element(by.buttonText('Delete'));
   private btnYes = element(by.buttonText('Yes'));
   private txtConfirmName = element(by.name('confirmWithNameInput'));
-  private config = require('../config');
-  private randomize = this.config.randomize;
+  private readonly config = config;
+  private randomize = randomize;
 
   async OpenParametersPage() {
     let snp = new SideNavigationPage();
@@ -112,4 +115,4 @@ export class ParametersPage extends BasePage {
     })
     return result;
   }
-}
\ No newline at end of file
+}
diff --git 
a/traffic_portal/test/integration/PageObjects/PhysLocationsPage.po.ts 
b/traffic_portal/test/integration/PageObjects/PhysLocationsPage.po.ts
index 880aa5c..ab7547c 100644
--- a/traffic_portal/test/integration/PageObjects/PhysLocationsPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/PhysLocationsPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { by, element } from 'protractor'
+import { by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class PhysLocationsPage extends BasePage {
 
   private btnCreateNewPhysLocation = 
element(by.name('createPhysLocationButton'));
@@ -37,8 +40,8 @@ export class PhysLocationsPage extends BasePage {
   private mnuPhysLocationsTable = element(by.id('physLocationsTable'));
   private btnDelete = element(by.buttonText('Delete'));
   private txtConfirmName = element(by.name('confirmWithNameInput'));
-  private config = require('../config');
-  private randomize = this.config.randomize;
+  private readonly config = config;
+  private randomize = randomize;
 
   async OpenPhysLocationPage() {
     let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/ProfilesPage.po.ts 
b/traffic_portal/test/integration/PageObjects/ProfilesPage.po.ts
index 30e6280..f2ca730 100644
--- a/traffic_portal/test/integration/PageObjects/ProfilesPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ProfilesPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class ProfilesPage extends BasePage {
 
     private btnCreateNewProfile = element(by.name('createProfileButton'));
@@ -37,8 +40,8 @@ export class ProfilesPage extends BasePage {
     private txtCompareDropdown2 = element(by.name('compareDropdown2'));
     private btnCompareSubmit = element(by.name('compareSubmit'));
     private mnuCompareTable = 
element(by.id('profilesParamsCompareTable_wrapper'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
     async OpenProfilesPage() {
         let snp = new SideNavigationPage();
         await snp.NavigateToProfilesPage();
diff --git a/traffic_portal/test/integration/PageObjects/RegionsPage.po.ts 
b/traffic_portal/test/integration/PageObjects/RegionsPage.po.ts
index 7f7454f..124d013 100644
--- a/traffic_portal/test/integration/PageObjects/RegionsPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/RegionsPage.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class RegionsPage extends BasePage {
     private btnCreateNewRegions = element(by.name('createRegionButton'));
     private txtSearch = 
element(by.id('regionsTable_filter')).element(by.css('label input'));
@@ -26,8 +29,8 @@ export class RegionsPage extends BasePage {
     private txtDivision = element(by.name('division'));
     private btnDelete = element(by.xpath("//button[text()='Delete']"));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
     async OpenRegionsPage(){
         let snp = new SideNavigationPage();
         await snp.NavigateToRegionsPage();
diff --git 
a/traffic_portal/test/integration/PageObjects/ServerCapabilitiesPage.po.ts 
b/traffic_portal/test/integration/PageObjects/ServerCapabilitiesPage.po.ts
index c32d3c4..4e4fa4f 100644
--- a/traffic_portal/test/integration/PageObjects/ServerCapabilitiesPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ServerCapabilitiesPage.po.ts
@@ -16,9 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { ExpectedConditions, browser, by, element } from 'protractor'
+import { ExpectedConditions, browser, by, element } from 'protractor';
+
 import { BasePage } from './BasePage.po';
 import {SideNavigationPage} from '../PageObjects/SideNavigationPage.po';
+import { config, randomize } from '../config';
 
 export class ServerCapabilitiesPage extends BasePage{
 
@@ -37,8 +39,8 @@ export class ServerCapabilitiesPage extends BasePage{
      private btnAddCapabilities = element(by.name('addCapabilityBtn'));
      private selectCapabilities = element(by.name('selectFormDropdown'));
      private lnkToggleLeftNavigationView = element(by.id('menu_toggle'));
-     private config = require('../config');
-     private randomize = this.config.randomize;
+     private readonly config = config;
+     private randomize = randomize;
 
 
      async OpenServerCapabilityPage(){
diff --git a/traffic_portal/test/integration/PageObjects/ServersPage.po.ts 
b/traffic_portal/test/integration/PageObjects/ServersPage.po.ts
index a066797..8a20702 100644
--- a/traffic_portal/test/integration/PageObjects/ServersPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ServersPage.po.ts
@@ -16,9 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element, ExpectedConditions } from 'protractor'
+import { browser, by, element, ExpectedConditions } from 'protractor';
+
+import randomIpv6 from "random-ipv6";
+
 import { BasePage } from './BasePage.po';
 import {SideNavigationPage} from '../PageObjects/SideNavigationPage.po';
+import { config, randomize } from '../config';
 
 export class ServersPage extends BasePage {
 
@@ -102,9 +106,9 @@ export class ServersPage extends BasePage {
   private btnMoreCreateServer = element(by.name("moreBtn"))
   private btnCreateServer = element(by.name("createServerMenuItem"))
   private txtQuickSearch = element(by.id("quickSearch"));
-  private config = require('../config');
-  private randomize = this.config.randomize;
-  private randomIpv6 = require('random-ipv6');
+  private readonly config = config;
+  private randomize = randomize;
+
   async OpenServerPage(){
     let snp = new SideNavigationPage();
     await snp.NavigateToServersPage();
@@ -130,7 +134,7 @@ export class ServersPage extends BasePage {
     let basePage = new BasePage();
     let networkIp = Math.round(Math.random() * 100).toString()+ "." + 
Math.round(Math.random() * 100).toString() + "." + Math.round(Math.random() * 
100).toString() +
     "." + Math.round(Math.random() * 100).toString();
-    let ipv6 = this.randomIpv6();
+    let ipv6 = randomIpv6();
     await this.btnMoreCreateServer.click();
     await this.btnCreateServer.click();
     await this.txtStatus.sendKeys(server.Status);
diff --git 
a/traffic_portal/test/integration/PageObjects/ServiceCategories.po.ts 
b/traffic_portal/test/integration/PageObjects/ServiceCategories.po.ts
index 4d28f14..003331b 100644
--- a/traffic_portal/test/integration/PageObjects/ServiceCategories.po.ts
+++ b/traffic_portal/test/integration/PageObjects/ServiceCategories.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
 
@@ -29,8 +31,8 @@ export class ServiceCategoriesPage extends BasePage {
 
     private btnDelete = element(by.buttonText('Delete'));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private config = config;
+    private randomize = randomize;
 
     async OpenServicesMenu() {
         let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/Statuses.po.ts 
b/traffic_portal/test/integration/PageObjects/Statuses.po.ts
index b094749..937968a 100644
--- a/traffic_portal/test/integration/PageObjects/Statuses.po.ts
+++ b/traffic_portal/test/integration/PageObjects/Statuses.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
 
@@ -27,8 +29,8 @@ export class StatusesPage extends BasePage {
     private txtSearch = 
element(by.id('statusesTable_filter')).element(by.css('label input'));
     private btnDelete = element(by.buttonText('Delete'));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private config = config;
+    private randomize = randomize;
 
     async OpenStatusesPage() {
         let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/PageObjects/TenantsPage.po.ts 
b/traffic_portal/test/integration/PageObjects/TenantsPage.po.ts
index 129cd45..8823ecc 100644
--- a/traffic_portal/test/integration/PageObjects/TenantsPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/TenantsPage.po.ts
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { by, element } from 'protractor'
+import { by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import {SideNavigationPage} from './SideNavigationPage.po';
 export class TenantsPage extends BasePage {
@@ -29,8 +31,8 @@ export class TenantsPage extends BasePage {
     private mnuTenantTable = element(by.id('tenantsTable'));
     private btnDelete = element(by.buttonText('Delete'));
     private txtConfirmTenantName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
 
     async OpenTenantPage(){
       let snp = new SideNavigationPage();
diff --git 
a/traffic_portal/test/integration/PageObjects/TopNavigationPage.po.ts 
b/traffic_portal/test/integration/PageObjects/TopNavigationPage.po.ts
index bb05437..ad41310 100644
--- a/traffic_portal/test/integration/PageObjects/TopNavigationPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/TopNavigationPage.po.ts
@@ -16,6 +16,8 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { existsSync, readdirSync, unlink } from "fs";
+
 import { browser, by, element, ExpectedConditions } from 'protractor';
 import { BasePage } from './BasePage.po';
 
@@ -76,22 +78,21 @@ export class TopNavigationPage extends BasePage{
         let filename= "";
         let result = false;
         let readme = 'Readme.md';
-        const fs = require('fs');
         const folder = 'Downloads';
         await this.btnDBDump.click();
         await browser.wait(async function(){
-            await fs.readdirSync(folder).forEach(file => {
+            await readdirSync(folder).forEach(file => {
                 if (file != readme){
                     filename = file;
                 }
             });
         }, 30*1000, 'File has not downloaded within 30 
seconds').catch(function(){
-            if(fs.existsSync(`Downloads/${filename}`))
+            if(existsSync(`Downloads/${filename}`))
         {
             //if file exist result will be true
             result = true;
             //delete the file
-            fs.unlink(`Downloads/${filename}`, (err) => {
+            unlink(`Downloads/${filename}`, (err) => {
                 if (err) throw err;
             });
         }
diff --git a/traffic_portal/test/integration/PageObjects/Types.po.ts 
b/traffic_portal/test/integration/PageObjects/Types.po.ts
index 8656e67..03c0c67 100644
--- a/traffic_portal/test/integration/PageObjects/Types.po.ts
+++ b/traffic_portal/test/integration/PageObjects/Types.po.ts
@@ -16,9 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser, by, element } from 'protractor'
+import { browser, by, element } from 'protractor';
+
+import { config, randomize } from '../config';
 import { BasePage } from './BasePage.po';
 import { SideNavigationPage } from './SideNavigationPage.po';
+
 export class TypesPage extends BasePage {
     private btnCreateNewType = element(by.xpath("//button[@title='Create 
Type']//i[1]"));
     private txtName = element(by.id('name'));
@@ -26,8 +29,9 @@ export class TypesPage extends BasePage {
     private txtSearch = 
element(by.id('typesTable_filter')).element(by.css('label input'));
     private btnDelete = element(by.buttonText('Delete'));
     private txtConfirmName = element(by.name('confirmWithNameInput'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
+
     async OpenTypesPage() {
         let snp = new SideNavigationPage();
         await snp.NavigateToTypesPage();
diff --git a/traffic_portal/test/integration/PageObjects/UsersPage.po.ts 
b/traffic_portal/test/integration/PageObjects/UsersPage.po.ts
index 311d866..125afb4 100644
--- a/traffic_portal/test/integration/PageObjects/UsersPage.po.ts
+++ b/traffic_portal/test/integration/PageObjects/UsersPage.po.ts
@@ -16,9 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { by, element } from 'protractor'
+import { by, element } from 'protractor';
+
 import { BasePage } from './BasePage.po';
 import {SideNavigationPage} from '../PageObjects/SideNavigationPage.po';
+import { config, randomize } from '../config';
 
 export class UsersPage extends BasePage {
 
@@ -31,8 +33,8 @@ export class UsersPage extends BasePage {
     private txtPassword = element(by.name('uPass'));
     private txtConfirmPassword = element(by.name('confirmPassword'));
     private txtPublicSSHKey = element(by.name('publicSshKey'));
-    private config = require('../config');
-    private randomize = this.config.randomize;
+    private readonly config = config;
+    private randomize = randomize;
 
     async OpenUserPage(){
       let snp = new SideNavigationPage();
diff --git a/traffic_portal/test/integration/config.ts 
b/traffic_portal/test/integration/config.ts
index c04a2c5..0b244f3 100644
--- a/traffic_portal/test/integration/config.ts
+++ b/traffic_portal/test/integration/config.ts
@@ -16,26 +16,26 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+import { resolve } from "path";
+
+import { emptyDir } from "fs-extra";
+import { Config, browser } from 'protractor';
+import HtmlReporter from "protractor-beautiful-reporter";
+
 import { API } from './CommonUtils/API';
-import { Config, browser } from 'protractor'
 import * as conf from "./config.json"
 
-let path = require('path');
-let downloadsPath = path.resolve('Downloads');
-let randomize = Math.random().toString(36).substring(3, 7);
-let HtmlReporter = require('protractor-beautiful-reporter');
-let twoNumberRandomize = Math.floor(Math.random() * 101);
-exports.twoNumberRandomize = twoNumberRandomize;
-exports.randomize = randomize;
+let downloadsPath = resolve('Downloads');
+export const randomize = Math.random().toString(36).substring(3, 7);
+export const twoNumberRandomize = Math.floor(Math.random() * 101);
 
 export let config: Config = conf;
 config.capabilities.chromeOptions.prefs.download.default_directory = 
downloadsPath;
 config.onPrepare = async function () {
     await browser.waitForAngularEnabled(true);
 
-    var fs = require('fs-extra');
-
-    fs.emptyDir('./Reports/', function (err) {
+    emptyDir('./Reports/', function (err) {
       console.log(err);
     });
 
@@ -54,7 +54,7 @@ config.onPrepare = async function () {
     try {
       let api = new API();
       let setupFile = 'Data/Prerequisites/user.setup.json';
-      let setupData = JSON.parse(fs.readFileSync(setupFile));
+      let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
       let output = await api.UseAPI(setupData);
       if (output != null){
         throw new Error(output)
diff --git a/traffic_portal/test/integration/package-lock.json 
b/traffic_portal/test/integration/package-lock.json
index 5cc6a4d..3387bc3 100644
--- a/traffic_portal/test/integration/package-lock.json
+++ b/traffic_portal/test/integration/package-lock.json
@@ -26,6 +26,7 @@
         "xlsx": "^0.15.1"
       },
       "devDependencies": {
+        "@types/fs-extra": "^9.0.9",
         "@types/jasmine": "^3.4.6",
         "@types/node": "^12.12.0",
         "jasmine": "^3.5.0",
@@ -33,6 +34,15 @@
         "typescript": "^3.6.4"
       }
     },
+    "node_modules/@types/fs-extra": {
+      "version": "9.0.9",
+      "resolved": 
"https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.9.tgz";,
+      "integrity": 
"sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==",
+      "dev": true,
+      "dependencies": {
+        "@types/node": "*"
+      }
+    },
     "node_modules/@types/glob": {
       "version": "7.1.3",
       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";,
@@ -2563,6 +2573,15 @@
     }
   },
   "dependencies": {
+    "@types/fs-extra": {
+      "version": "9.0.9",
+      "resolved": 
"https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.9.tgz";,
+      "integrity": 
"sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*"
+      }
+    },
     "@types/glob": {
       "version": "7.1.3",
       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";,
diff --git a/traffic_portal/test/integration/package.json 
b/traffic_portal/test/integration/package.json
index 0aa2a0c..30b852d 100644
--- a/traffic_portal/test/integration/package.json
+++ b/traffic_portal/test/integration/package.json
@@ -21,6 +21,7 @@
     "xlsx": "^0.15.1"
   },
   "devDependencies": {
+    "@types/fs-extra": "^9.0.9",
     "@types/jasmine": "^3.4.6",
     "@types/node": "^12.12.0",
     "jasmine": "^3.5.0",
diff --git a/traffic_portal/test/integration/pnpm-lock.yaml 
b/traffic_portal/test/integration/pnpm-lock.yaml
index c0db4d3..f0c71ee 100644
--- a/traffic_portal/test/integration/pnpm-lock.yaml
+++ b/traffic_portal/test/integration/pnpm-lock.yaml
@@ -15,6 +15,7 @@ dependencies:
   selenium-webdriver: 4.0.0-beta.1
   xlsx: 0.15.6
 devDependencies:
+  '@types/fs-extra': 9.0.9
   '@types/jasmine': 3.6.4
   '@types/node': 12.20.4
   jasmine: 3.6.4
@@ -22,6 +23,12 @@ devDependencies:
   typescript: 3.9.9
 lockfileVersion: 5.2
 packages:
+  /@types/fs-extra/9.0.9:
+    dependencies:
+      '@types/node': 12.20.7
+    dev: true
+    resolution:
+      integrity: 
sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==
   /@types/glob/7.1.3:
     dependencies:
       '@types/minimatch': 3.0.3
@@ -40,6 +47,10 @@ packages:
   /@types/node/12.20.4:
     resolution:
       integrity: 
sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ==
+  /@types/node/12.20.7:
+    dev: true
+    resolution:
+      integrity: 
sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==
   /@types/q/0.0.32:
     dev: false
     resolution:
@@ -1852,6 +1863,7 @@ packages:
     resolution:
       integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
 specifiers:
+  '@types/fs-extra': ^9.0.9
   '@types/jasmine': ^3.4.6
   '@types/node': ^12.12.0
   axios: ^0.21.1
diff --git a/traffic_portal/test/integration/specs/ASNs.spec.ts 
b/traffic_portal/test/integration/specs/ASNs.spec.ts
index 1f959a5..b6fe3c0 100644
--- a/traffic_portal/test/integration/specs/ASNs.spec.ts
+++ b/traffic_portal/test/integration/specs/ASNs.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { ASNsPage } from '../PageObjects/ASNs.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/ASNs/Setup.json';
 let cleanupFile = 'Data/ASNs/Cleanup.json';
 let filename = 'Data/ASNs/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let asnsPage = new ASNsPage();
 
 describe('Setup API for ASNs Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -85,8 +86,8 @@ using(testData.ASNs, async function(asnsData){
 
 describe('Clean Up API for ASNs Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/CDNs.spec.ts 
b/traffic_portal/test/integration/specs/CDNs.spec.ts
index 705f475..0066279 100644
--- a/traffic_portal/test/integration/specs/CDNs.spec.ts
+++ b/traffic_portal/test/integration/specs/CDNs.spec.ts
@@ -16,17 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser } from 'protractor'
+import { readFileSync } from "fs";
+
+import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { CDNPage } from '../PageObjects/CDNPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let filename = 'Data/CDN/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
diff --git a/traffic_portal/test/integration/specs/CacheGroup.spec.ts 
b/traffic_portal/test/integration/specs/CacheGroup.spec.ts
index 89b1948..8e83eec 100644
--- a/traffic_portal/test/integration/specs/CacheGroup.spec.ts
+++ b/traffic_portal/test/integration/specs/CacheGroup.spec.ts
@@ -16,17 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { CacheGroupPage } from '../PageObjects/CacheGroup.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let filename = 'Data/CacheGroup/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -56,25 +57,25 @@ using(testData.CacheGroup, function (cacheGroupData) {
                         await cacheGroupPage.SearchCacheGroups(update.Name)
                         expect(await cacheGroupPage.UpdateCacheGroups(update, 
update.validationMessage)).toBeUndefined();
                         await cacheGroupPage.OpenCacheGroupsPage();
-                    }) 
+                    })
                 }else{
                     it(update.description, async function () {
                         await cacheGroupPage.SearchCacheGroups(update.Name)
                         expect(await cacheGroupPage.UpdateCacheGroups(update, 
update.validationMessage)).toBeTruthy();
                         await cacheGroupPage.OpenCacheGroupsPage();
-                    }) 
+                    })
                 }
-                
+
             })
             using(cacheGroupData.Remove, function (remove) {
                 it(remove.description, async function () {
                     await cacheGroupPage.SearchCacheGroups(remove.Name)
                     expect(await cacheGroupPage.DeleteCacheGroups(remove.Name, 
remove.validationMessage)).toBeTruthy();
-                }) 
+                })
             })
             it('can logout', async function () {
                 expect(await topNavigation.Logout()).toBeTruthy();
             })
         })
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Coordinates.spec.ts 
b/traffic_portal/test/integration/specs/Coordinates.spec.ts
index e452d44..3bbd395 100644
--- a/traffic_portal/test/integration/specs/Coordinates.spec.ts
+++ b/traffic_portal/test/integration/specs/Coordinates.spec.ts
@@ -16,15 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { CoordinatesPage } from '../PageObjects/CoordinatesPage.po';
 import { API } from '../CommonUtils/API';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let api = new API();
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -34,11 +35,11 @@ let coordinatesPage = new CoordinatesPage();
 let setupFile = 'Data/Coordinates/Setup.json';
 let cleanupFile = 'Data/Coordinates/Cleanup.json';
 let filename = 'Data/Coordinates/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 describe('Setup API for coordinates test', function () {
     it('Setup', async function () {
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -70,7 +71,7 @@ using(testData.Coordinates, async function(coordinatesData){
                     await coordinatesPage.OpenCoordinatesPage();
                 })
             })
-          
+
             using(coordinatesData.Remove, function (remove) {
                 it(remove.description, async function () {
                     await coordinatesPage.SearchCoordinates(remove.Name);
@@ -89,8 +90,8 @@ using(testData.Coordinates, async function(coordinatesData){
 
 describe('Clean up API for coordinates test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Divisions.spec.ts 
b/traffic_portal/test/integration/specs/Divisions.spec.ts
index 0734865..ef49ea9 100644
--- a/traffic_portal/test/integration/specs/Divisions.spec.ts
+++ b/traffic_portal/test/integration/specs/Divisions.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { DivisionsPage } from '../PageObjects/Divisions.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Divisions/Setup.json';
 let cleanupFile = 'Data/Divisions/Cleanup.json';
 let filename = 'Data/Divisions/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let divisionsPage = new DivisionsPage();
 
 describe('Setup API for Divisions Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -85,8 +86,8 @@ using(testData.Divisions, async function(divisionsData){
 
 describe('Clean Up API for Divisions Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Login.spec.ts 
b/traffic_portal/test/integration/specs/Login.spec.ts
index 869e118..2537893 100644
--- a/traffic_portal/test/integration/specs/Login.spec.ts
+++ b/traffic_portal/test/integration/specs/Login.spec.ts
@@ -18,7 +18,7 @@
  */
 import { browser } from 'protractor';
 import { LoginPage } from '../PageObjects/LoginPage.po';
-import  * as using  from "jasmine-data-provider";
+import  using  from "jasmine-data-provider";
 import { readFileSync } from "fs"
 
 const filename = 'Data/Login/TestCases.json';
diff --git a/traffic_portal/test/integration/specs/Origins.spec.ts 
b/traffic_portal/test/integration/specs/Origins.spec.ts
index 7af65f2..d363914 100644
--- a/traffic_portal/test/integration/specs/Origins.spec.ts
+++ b/traffic_portal/test/integration/specs/Origins.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { browser } from 'protractor'
+import { readFileSync } from "fs";
+
+import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { OriginsPage } from '../PageObjects/OriginsPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Origins/Setup.json';
 let cleanupFile = 'Data/Origins/Cleanup.json';
 let filename = 'Data/Origins/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let originsPage = new OriginsPage();
 
 describe('Setup Origin Delivery Service', function () {
     it('Setup', async function () {
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -91,8 +92,8 @@ using(testData.Origins, async function (originsData) {
 
 describe('Clean up Origin Delivery Service', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Parameters.spec.ts 
b/traffic_portal/test/integration/specs/Parameters.spec.ts
index 651e5be..1849bb5 100644
--- a/traffic_portal/test/integration/specs/Parameters.spec.ts
+++ b/traffic_portal/test/integration/specs/Parameters.spec.ts
@@ -16,15 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { ParametersPage } from '../PageObjects/ParametersPage.po';
 import { API } from '../CommonUtils/API';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let api = new API();
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -34,11 +35,11 @@ let parametersPage = new ParametersPage();
 let setupFile = 'Data/Parameters/Setup.json';
 let cleanupFile = 'Data/Parameters/Cleanup.json';
 let filename = 'Data/Parameters/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 describe('Setup API for parameter test', function () {
     it('Setup', async function () {
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -70,7 +71,7 @@ using(testData.Parameters, async function(parametersData){
                     await parametersPage.OpenParametersPage();
                 })
             })
-          
+
             using(parametersData.Remove, function (remove) {
                 it(remove.description, async function () {
                     await parametersPage.SearchParameter(remove.Name);
@@ -88,8 +89,8 @@ using(testData.Parameters, async function(parametersData){
 
 describe('Clean up API for parameter test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/PhysLocations.spec.ts 
b/traffic_portal/test/integration/specs/PhysLocations.spec.ts
index 673c15b..2db9964 100644
--- a/traffic_portal/test/integration/specs/PhysLocations.spec.ts
+++ b/traffic_portal/test/integration/specs/PhysLocations.spec.ts
@@ -16,17 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { PhysLocationsPage } from '../PageObjects/PhysLocationsPage.po';
 import { API } from '../CommonUtils/API';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
-
 let api = new API();
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -35,11 +34,11 @@ let physlocationsPage = new PhysLocationsPage();
 let setupFile = 'Data/PhysLocations/Setup.json';
 let cleanupFile = 'Data/PhysLocations/Cleanup.json';
 let filename = 'Data/PhysLocations/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 describe('Setup API for physlocation test', function () {
     it('Setup', async function () {
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -71,7 +70,7 @@ using(testData.PhysLocations, async 
function(physlocationsData){
                     await physlocationsPage.OpenPhysLocationPage();
                 })
             })
-          
+
             using(physlocationsData.Remove, function (remove) {
                 it(remove.description, async function () {
                     await physlocationsPage.SearchPhysLocation(remove.Name);
@@ -88,8 +87,8 @@ using(testData.PhysLocations, async 
function(physlocationsData){
 
 describe('Clean up API for physlocation test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Profiles.spec.ts 
b/traffic_portal/test/integration/specs/Profiles.spec.ts
index 2ee348b..b9c8165 100644
--- a/traffic_portal/test/integration/specs/Profiles.spec.ts
+++ b/traffic_portal/test/integration/specs/Profiles.spec.ts
@@ -16,20 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor'
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { ProfilesPage } from '../PageObjects/ProfilesPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Profiles/Setup.json';
 let cleanupFile = 'Data/Profiles/Cleanup.json';
 let filename = 'Data/Profiles/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
-
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -38,7 +38,7 @@ let profilesPage = new ProfilesPage();
 
 describe('Setup API for Profiles', function () {
     it('Setup', async function () {
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -83,8 +83,8 @@ using(testData.Profiles, async function(profilesData){
 })
 describe('Clean up API for Profiles', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Regions.spec.ts 
b/traffic_portal/test/integration/specs/Regions.spec.ts
index 2567811..9af387a 100644
--- a/traffic_portal/test/integration/specs/Regions.spec.ts
+++ b/traffic_portal/test/integration/specs/Regions.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { RegionsPage } from '../PageObjects/RegionsPage.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Regions/Setup.json';
 let cleanupFile = 'Data/Regions/Cleanup.json';
 let filename = 'Data/Regions/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let regionsPage = new RegionsPage();
 
 describe('Setup Divisions for Regions Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -85,8 +86,8 @@ using(testData.Regions, async function(regionsData){
 
 describe('Clean Up Divisions for Regions Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/ServerCapabilities.spec.ts 
b/traffic_portal/test/integration/specs/ServerCapabilities.spec.ts
index e75501f..ae9b018 100644
--- a/traffic_portal/test/integration/specs/ServerCapabilities.spec.ts
+++ b/traffic_portal/test/integration/specs/ServerCapabilities.spec.ts
@@ -16,16 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { ServerCapabilitiesPage } from 
'../PageObjects/ServerCapabilitiesPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let filename = 'Data/ServerCapabilities/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -53,7 +54,7 @@ using(testData.ServerCapabilities, 
function(serverCapabilitiesData) {
                 if(remove.description.includes("invalid")){
                     it(remove.description, async function(){
                         await 
serverCapabilitiesPage.SearchServerCapabilities(remove.Name)
-                        expect(await 
serverCapabilitiesPage.DeleteServerCapabilities(remove.InvalidName, 
remove.validationMessage)).toBeFalsy();  
+                        expect(await 
serverCapabilitiesPage.DeleteServerCapabilities(remove.InvalidName, 
remove.validationMessage)).toBeFalsy();
                         await 
serverCapabilitiesPage.OpenServerCapabilityPage();
                     })
                 } else {
@@ -69,4 +70,4 @@ using(testData.ServerCapabilities, 
function(serverCapabilitiesData) {
             })
         })
     })
-})
\ No newline at end of file
+})
diff --git 
a/traffic_portal/test/integration/specs/ServerServerCapabilities.spec.ts 
b/traffic_portal/test/integration/specs/ServerServerCapabilities.spec.ts
index 4c9b8bd..a200967 100644
--- a/traffic_portal/test/integration/specs/ServerServerCapabilities.spec.ts
+++ b/traffic_portal/test/integration/specs/ServerServerCapabilities.spec.ts
@@ -16,20 +16,21 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { ServerCapabilitiesPage } from 
'../PageObjects/ServerCapabilitiesPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { ServersPage } from '../PageObjects/ServersPage.po';
 import { API } from '../CommonUtils/API';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/ServerServerCapabilities/Setup.json';
 let cleanupFile = 'Data/ServerServerCapabilities/Cleanup.json';
 let filename = 'Data/ServerServerCapabilities/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -39,7 +40,7 @@ let serverPage = new  ServersPage();
 
 describe("Setup Server Capabilities and Server for prereq", function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -96,7 +97,7 @@ using(testData.ServerServerCapabilities, async 
function(serverServerCapData){
 })
 describe("Clean up prereq", function(){
     it('Clean up', async function(){
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
diff --git a/traffic_portal/test/integration/specs/Servers.spec.ts 
b/traffic_portal/test/integration/specs/Servers.spec.ts
index 3726946..c5f087a 100644
--- a/traffic_portal/test/integration/specs/Servers.spec.ts
+++ b/traffic_portal/test/integration/specs/Servers.spec.ts
@@ -16,15 +16,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po'
 import { ServersPage } from '../PageObjects/ServersPage.po';
 import { API } from '../CommonUtils/API';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let api = new API();
 let loginPage = new LoginPage();
 let topNavigation = new TopNavigationPage();
@@ -33,11 +34,11 @@ let serversPage = new ServersPage();
 let setupFile = 'Data/Servers/Setup.json';
 let cleanupFile = 'Data/Servers/Cleanup.json';
 let filename = 'Data/Servers/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 describe('Setup API call for Servers Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -84,8 +85,8 @@ using(testData.Servers, async function(serversData){
 
 describe('API Clean Up for Servers Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/ServiceCategories.spec.ts 
b/traffic_portal/test/integration/specs/ServiceCategories.spec.ts
index 2793bcb..b9d171b 100644
--- a/traffic_portal/test/integration/specs/ServiceCategories.spec.ts
+++ b/traffic_portal/test/integration/specs/ServiceCategories.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { ServiceCategoriesPage } from '../PageObjects/ServiceCategories.po';
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/ServiceCategories/Setup.json';
 let cleanupFile = 'Data/ServiceCategories/Cleanup.json';
 let filename = 'Data/ServiceCategories/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let serviceCategoriesPage = new ServiceCategoriesPage();
 
 describe('Setup API for Service Categories Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -84,8 +85,8 @@ using(testData.ServiceCategories, async 
function(serviceCategoriesData){
 
 describe('Clean Up API for Service Categories Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Statuses.spec.ts 
b/traffic_portal/test/integration/specs/Statuses.spec.ts
index c596219..aa5bf3b 100644
--- a/traffic_portal/test/integration/specs/Statuses.spec.ts
+++ b/traffic_portal/test/integration/specs/Statuses.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { StatusesPage } from '../PageObjects/Statuses.po'
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Statuses/Setup.json';
 let cleanupFile = 'Data/Statuses/Cleanup.json';
 let filename = 'Data/Statuses/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let statusesPage = new StatusesPage();
 
 describe('Setup API for Statuses Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -83,8 +84,8 @@ using(testData.Statuses, async function(statusesData){
 })
 describe('Clean Up API for Statuses Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/specs/Types.spec.ts 
b/traffic_portal/test/integration/specs/Types.spec.ts
index a5e4d46..f8acd95 100644
--- a/traffic_portal/test/integration/specs/Types.spec.ts
+++ b/traffic_portal/test/integration/specs/Types.spec.ts
@@ -16,19 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import { readFileSync } from "fs";
+
 import { browser } from 'protractor';
+import using from "jasmine-data-provider";
+
 import { LoginPage } from '../PageObjects/LoginPage.po';
 import { TopNavigationPage } from '../PageObjects/TopNavigationPage.po';
 import { API } from '../CommonUtils/API';
 import { TypesPage } from '../PageObjects/Types.po'
 
-let fs = require('fs')
-let using = require('jasmine-data-provider');
-
 let setupFile = 'Data/Types/Setup.json';
 let cleanupFile = 'Data/Types/Cleanup.json';
 let filename = 'Data/Types/TestCases.json';
-let testData = JSON.parse(fs.readFileSync(filename));
+let testData = JSON.parse(readFileSync(filename, "utf8"));
 
 let api = new API();
 let loginPage = new LoginPage();
@@ -37,7 +38,7 @@ let typesPage = new TypesPage();
 
 describe('Setup API for Types Test', function(){
     it('Setup', async function(){
-        let setupData = JSON.parse(fs.readFileSync(setupFile));
+        let setupData = JSON.parse(readFileSync(setupFile, "utf8"));
         let output = await api.UseAPI(setupData);
         expect(output).toBeNull();
     })
@@ -83,8 +84,8 @@ using(testData.Types, async function(typesData){
 })
 describe('Clean Up API for Types Test', function () {
     it('Cleanup', async function () {
-        let cleanupData = JSON.parse(fs.readFileSync(cleanupFile));
+        let cleanupData = JSON.parse(readFileSync(cleanupFile, "utf8"));
         let output = await api.UseAPI(cleanupData);
         expect(output).toBeNull();
     })
-})
\ No newline at end of file
+})
diff --git a/traffic_portal/test/integration/tsconfig.json 
b/traffic_portal/test/integration/tsconfig.json
index eac68a9..bdd4772 100644
--- a/traffic_portal/test/integration/tsconfig.json
+++ b/traffic_portal/test/integration/tsconfig.json
@@ -1,6 +1,7 @@
 {
   "compilerOptions": {
     "target": "es6",
+    "esModuleInterop": true,
     "module": "commonjs",
     "moduleResolution": "node",
     "inlineSourceMap": true,

Reply via email to