You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by rm...@apache.org on 2017/09/27 17:31:52 UTC
[3/3] metron git commit: METRON-1189 Add alert escalation to the
Alerts UI (merrimanr) closes apache/metron#762
METRON-1189 Add alert escalation to the Alerts UI (merrimanr) closes apache/metron#762
Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/cd7257e1
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/cd7257e1
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/cd7257e1
Branch: refs/heads/master
Commit: cd7257e126752dcb5aff1c75d89948565d9dd838
Parents: e3900c4
Author: merrimanr <me...@gmail.com>
Authored: Wed Sep 27 12:31:34 2017 -0500
Committer: merrimanr <me...@apache.org>
Committed: Wed Sep 27 12:31:34 2017 -0500
----------------------------------------------------------------------
.../metron-alerts/alerts-server-e2e.js | 161 ---
metron-interface/metron-alerts/angular-cli.json | 3 +-
.../e2e/alert-details/alert-details.po.ts | 60 ++
.../alert-details-status.e2e-spec.ts | 60 ++
.../alert-status/alerts-list-status.e2e-spec.ts | 85 ++
.../e2e/alerts-list/alerts-list.e2e-spec.ts | 5 +-
.../e2e/alerts-list/alerts-list.po.ts | 35 +-
.../configure-table/configure-table.e2e-spec.ts | 3 +
.../save-search/save-search.e2e-spec.ts | 9 +-
.../metron-alerts/e2e/login/login.po.ts | 2 +-
.../e2e/mock-data/alerts_ui_e2e_index.data | 338 +++++++
.../e2e/mock-data/alerts_ui_e2e_index.template | 975 +++++++++++++++++++
.../metron-alerts/e2e/mock-data/setup.sh | 19 +
.../metron-alerts/e2e/mock-data/teardown.sh | 18 +
.../metron-alerts/e2e/utils/e2e_util.ts | 11 +
.../metron-alerts/protractor.conf.js | 6 +-
.../scripts/start-server-for-e2e.sh | 4 +-
.../alert-details/alert-details.component.html | 10 +-
.../alert-details/alert-details.component.ts | 36 +-
.../alert-details/alerts-details.module.ts | 5 +-
.../alerts-list/alerts-list.component.html | 6 +-
.../alerts/alerts-list/alerts-list.component.ts | 84 +-
.../alerts/alerts-list/alerts-list.module.ts | 3 +-
.../table-view/table-view.component.html | 2 +-
.../table-view/table-view.component.ts | 49 +-
.../src/app/model/patch-request.ts | 24 +
.../src/app/service/alerts.service.ts | 36 +
.../src/app/service/data-source.ts | 9 -
.../src/app/service/search.service.ts | 17 -
.../src/app/service/update.service.ts | 58 ++
.../src/app/service/workflow.service.ts | 36 -
.../metron-table-pagination.component.ts | 11 +-
.../src/environments/environment.e2e.ts | 21 +
.../src/environments/environment.prod.ts | 3 +-
.../src/environments/environment.ts | 3 +-
metron-interface/metron-config/package.json | 3 +-
pom.xml | 2 +
37 files changed, 1885 insertions(+), 327 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/alerts-server-e2e.js
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/alerts-server-e2e.js b/metron-interface/metron-alerts/alerts-server-e2e.js
deleted file mode 100644
index f1b6410..0000000
--- a/metron-interface/metron-alerts/alerts-server-e2e.js
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/env node
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-var os = require('os');
-var jsonfile = require('jsonfile');
-var bodyParser = require('body-parser');
-var app = require('express')();
-var path = require('path');
-var compression = require('compression');
-var serveStatic = require('serve-static');
-var favicon = require('serve-favicon');
-var proxy = require('http-proxy-middleware');
-var argv = require('optimist')
- .demand(['p', 'r'])
- .usage('Usage: alerts-server-e2e.js -p [port]')
- .describe('p', 'Port to run metron alerts ui')
- .describe('r', 'Url where metron rest application is available')
- .argv;
-
-var port = argv.p;
-var metronUIAddress = '';
-var ifaces = os.networkInterfaces();
-var restUrl = argv.r || argv.resturl;
-var conf = {
- "restapi": {
- "target": restUrl,
- "secure": false
- }
-};
-
-Object.keys(ifaces).forEach(function (dev) {
- ifaces[dev].forEach(function (details) {
- if (details.family === 'IPv4') {
- metronUIAddress += '\n';
- metronUIAddress += 'http://' + details.address + ':' + port;
- }
- });
-});
-
-function setCustomCacheControl (res, path) {
- if (serveStatic.mime.lookup(path) === 'text/html') {
- res.setHeader('Cache-Control', 'public, max-age=10')
- }
- res.setHeader("Expires", new Date(Date.now() + 2592000000).toUTCString());
-}
-
-var indexHTML = function(req, res){
- res.sendFile(path.resolve('dist/index.html'));
-};
-
-var searchResult = function(req, res){
- console.log('Serving ', req.originalUrl ,'from alert-list.json');
- jsonfile.readFile('e2e/mock-data/alert-list.json', function(err, obj) {
- if(err) {
- res.json({status: 'error', reason: err.toString()});
- return;
- }
-
- var responseMap = {
- total: 0,
- results: obj.hits.hits
- };
-
- var filter = req.body.query;
-
- if (filter !== '*') {
- filter = filter.replace(/\\/g, '');
- var lastIndex = filter.lastIndexOf(':');
- var key = filter.substr(0, lastIndex);
- var value = filter.substr(lastIndex+1);
- responseMap.results = obj.hits.hits.filter(function (hits) {
- return hits._source[key] === value;
- });
- }
-
- var sortField = req.body.sort && req.body.sort.length === 1 && req.body.sort[0];
- if (sortField) {
- var key = Object.keys(sortField)[0];
- var order = sortField[key].order;
- responseMap.results = obj.hits.hits.sort(function(o1, o2) {
- if (!o1._source[key] || !o2._source[key]) {
- return -1;
- }
-
- if (typeof(o1._source[key]) === 'number' && typeof(o2._source[key]) === 'number') {
- return order === 'desc' ? o2._source[key]- (o1._source[key]) : o1._source[key] - (o2._source[key]);
- } else {
- return order === 'desc' ? o2._source[key].localeCompare(o1._source[key]) : o1._source[key].localeCompare(o2._source[key]);
- }
-
- });
- }
-
- responseMap.total = responseMap.results.length;
- responseMap.results = responseMap.results.splice(req.body.from, req.body.size);
-
- responseMap.results.map(function (obj) {
- obj.id = obj._id;
- obj.source = obj._source;
- });
-
- res.json(responseMap);
- });
-};
-
-var clusterState = function(req, res){
- console.log('Serving ', req.originalUrl ,'from cluster-state.json');
- jsonfile.readFile('e2e/mock-data/cluster-state.json', function(err, obj) {
- if(err) {
- res.json({status: 'error', reason: err.toString()});
- return;
- }
- res.json(obj);
- });
-};
-
-
-app.use(compression());
-
-app.use(favicon(path.join(__dirname, 'dist/favicon.ico')));
-app.use(serveStatic(path.join(__dirname, 'dist'), {
- maxAge: '1d',
- setHeaders: setCustomCacheControl
-}));
-
-app.use('/logout', proxy(conf.restapi));
-app.use('/api/v1/user', proxy(conf.restapi));
-app.use('/api/v1/search/findOne', proxy(conf.restapi));
-app.use('/api/v1/search/column/metadata', proxy(conf.restapi));
-
-app.get('/alerts-list', indexHTML);
-app.get('', indexHTML);
-
-app.use(bodyParser.json());
-app.post('/api/v1/search/search', searchResult);
-
-app.use(function(req, res, next){
- res.status(404).sendStatus(304);
-});
-
-app.listen(port, function(){
- console.log("Metron alerts ui is listening on " + metronUIAddress);
-});
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/angular-cli.json
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/angular-cli.json b/metron-interface/metron-alerts/angular-cli.json
index 68922d7..141f29b 100644
--- a/metron-interface/metron-alerts/angular-cli.json
+++ b/metron-interface/metron-alerts/angular-cli.json
@@ -31,7 +31,8 @@
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
- "prod": "environments/environment.prod.ts"
+ "prod": "environments/environment.prod.ts",
+ "e2e": "environments/environment.e2e.ts"
}
}
],
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alert-details/alert-details.po.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alert-details/alert-details.po.ts b/metron-interface/metron-alerts/e2e/alert-details/alert-details.po.ts
new file mode 100644
index 0000000..de0650f
--- /dev/null
+++ b/metron-interface/metron-alerts/e2e/alert-details/alert-details.po.ts
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {browser, element, by, protractor} from 'protractor';
+
+export class MetronAlertDetailsPage {
+
+ navigateTo() {
+ browser.waitForAngularEnabled(false);
+ return browser.get('/alerts-list(dialog:details/alerts_ui_e2e/c4c5e418-3938-099e-bb0d-37028a98dca8)');
+ }
+
+ clickNew() {
+ element.all(by.css('.metron-slider-pane-details table tbody tr')).get(1).all(by.css('td')).get(0).click();
+ }
+
+ clickOpen() {
+ element.all(by.css('.metron-slider-pane-details table tbody tr')).get(1).all(by.css('td')).get(1).click();
+ }
+
+ clickDismiss() {
+ element.all(by.css('.metron-slider-pane-details table tbody tr')).get(1).all(by.css('td')).get(2).click();
+ }
+
+ clickEscalate() {
+ element.all(by.css('.metron-slider-pane-details table tbody tr')).get(0).all(by.css('td')).get(1).click();
+ }
+
+ clickResolve() {
+ element.all(by.css('.metron-slider-pane-details table tbody tr')).get(2).all(by.css('td')).get(1).click();
+ }
+
+ getAlertStatus(previousText) {
+ let alertStatusElement = element.all(by.css('.metron-slider-pane-details .form .row')).get(0).all(by.css('div')).get(1);
+ return this.waitForTextChange(alertStatusElement, previousText).then(() => {
+ return alertStatusElement.getText();
+ });
+ }
+
+ waitForTextChange(element, previousText) {
+ let EC = protractor.ExpectedConditions;
+ return browser.wait(EC.not(EC.textToBePresentInElement(element, previousText)));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alert-details/alert-status/alert-details-status.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alert-details/alert-status/alert-details-status.e2e-spec.ts b/metron-interface/metron-alerts/e2e/alert-details/alert-status/alert-details-status.e2e-spec.ts
new file mode 100644
index 0000000..f464e62
--- /dev/null
+++ b/metron-interface/metron-alerts/e2e/alert-details/alert-status/alert-details-status.e2e-spec.ts
@@ -0,0 +1,60 @@
+/// <reference path="../../matchers/custom-matchers.d.ts"/>
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { MetronAlertDetailsPage } from '../alert-details.po';
+import {customMatchers} from '../../matchers/custom-matchers';
+import {LoginPage} from '../../login/login.po';
+import {loadTestData, deleteTestData} from '../../utils/e2e_util';
+import { MetronAlertsPage } from '../../alerts-list/alerts-list.po';
+
+describe('metron-alerts alert status', function() {
+ let page: MetronAlertDetailsPage;
+ let loginPage: LoginPage;
+
+ beforeAll(() => {
+ loadTestData();
+ loginPage = new LoginPage();
+ loginPage.login();
+ });
+
+ afterAll(() => {
+ new MetronAlertsPage().navigateTo();
+ loginPage.logout();
+ deleteTestData();
+ });
+
+ beforeEach(() => {
+ page = new MetronAlertDetailsPage();
+ jasmine.addMatchers(customMatchers);
+ });
+
+ it('should change alert statuses', () => {
+ page.navigateTo();
+ page.clickNew();
+ page.clickOpen();
+ expect(page.getAlertStatus('NEW')).toEqual('OPEN');
+ page.clickDismiss();
+ expect(page.getAlertStatus('OPEN')).toEqual('DISMISS');
+ page.clickEscalate();
+ expect(page.getAlertStatus('DISMISS')).toEqual('ESCALATE');
+ page.clickResolve();
+ expect(page.getAlertStatus('ESCALATE')).toEqual('RESOLVE');
+ page.clickNew();
+ });
+
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alerts-list/alert-status/alerts-list-status.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alerts-list/alert-status/alerts-list-status.e2e-spec.ts b/metron-interface/metron-alerts/e2e/alerts-list/alert-status/alerts-list-status.e2e-spec.ts
new file mode 100644
index 0000000..e793d6f
--- /dev/null
+++ b/metron-interface/metron-alerts/e2e/alerts-list/alert-status/alerts-list-status.e2e-spec.ts
@@ -0,0 +1,85 @@
+/// <reference path="../../matchers/custom-matchers.d.ts"/>
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { MetronAlertsPage } from '../alerts-list.po';
+import {customMatchers} from '../../matchers/custom-matchers';
+import {LoginPage} from '../../login/login.po';
+import {loadTestData, deleteTestData} from '../../utils/e2e_util';
+
+describe('metron-alerts alert status', function() {
+ let page: MetronAlertsPage;
+ let loginPage: LoginPage;
+
+ beforeAll(() => {
+ loadTestData();
+ loginPage = new LoginPage();
+ loginPage.login();
+ });
+
+ afterAll(() => {
+ loginPage.logout();
+ deleteTestData();
+ });
+
+ beforeEach(() => {
+ page = new MetronAlertsPage();
+ jasmine.addMatchers(customMatchers);
+ });
+
+ it('should change alert status for multiple alerts to OPEN', () => {
+ page.navigateTo();
+ page.toggleAlertInList(0);
+ page.toggleAlertInList(1);
+ page.toggleAlertInList(2);
+ page.clickActionDropdownOption('Open');
+ expect(page.getAlertStatus(0, 'NEW')).toEqual('OPEN');
+ expect(page.getAlertStatus(1, 'NEW')).toEqual('OPEN');
+ expect(page.getAlertStatus(2, 'NEW')).toEqual('OPEN');
+ });
+
+ it('should change alert status for multiple alerts to DISMISS', () => {
+ page.toggleAlertInList(3);
+ page.toggleAlertInList(4);
+ page.toggleAlertInList(5);
+ page.clickActionDropdownOption('Dismiss');
+ expect(page.getAlertStatus(3, 'NEW')).toEqual('DISMISS');
+ expect(page.getAlertStatus(4, 'NEW')).toEqual('DISMISS');
+ expect(page.getAlertStatus(5, 'NEW')).toEqual('DISMISS');
+ });
+
+ it('should change alert status for multiple alerts to ESCALATE', () => {
+ page.toggleAlertInList(6);
+ page.toggleAlertInList(7);
+ page.toggleAlertInList(8);
+ page.clickActionDropdownOption('Escalate');
+ expect(page.getAlertStatus(6, 'NEW')).toEqual('ESCALATE');
+ expect(page.getAlertStatus(7, 'NEW')).toEqual('ESCALATE');
+ expect(page.getAlertStatus(8, 'NEW')).toEqual('ESCALATE');
+ });
+
+ it('should change alert status for multiple alerts to RESOLVE', () => {
+ page.toggleAlertInList(9);
+ page.toggleAlertInList(10);
+ page.toggleAlertInList(11);
+ page.clickActionDropdownOption('Resolve');
+ expect(page.getAlertStatus(9, 'NEW')).toEqual('RESOLVE');
+ expect(page.getAlertStatus(10, 'NEW')).toEqual('RESOLVE');
+ expect(page.getAlertStatus(11, 'NEW')).toEqual('RESOLVE');
+ });
+
+});
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.e2e-spec.ts b/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.e2e-spec.ts
index b27df7e..8e92737 100644
--- a/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.e2e-spec.ts
+++ b/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.e2e-spec.ts
@@ -19,6 +19,7 @@
import { MetronAlertsPage } from './alerts-list.po';
import { customMatchers } from '../matchers/custom-matchers';
import { LoginPage } from '../login/login.po';
+import { loadTestData, deleteTestData } from "../utils/e2e_util";
describe('metron-alerts App', function() {
let page: MetronAlertsPage;
@@ -29,12 +30,14 @@ describe('metron-alerts App', function() {
'ip_dst_addr', 'host', 'alert_status' ];
beforeAll(() => {
+ loadTestData();
loginPage = new LoginPage();
loginPage.login();
});
afterAll(() => {
loginPage.logout();
+ deleteTestData();
});
beforeEach(() => {
@@ -55,7 +58,7 @@ describe('metron-alerts App', function() {
expect(page.isPausePlayRefreshButtonPresent()).toEqualBcoz(true, 'for pause/play button');
expect(page.isConfigureTableColumnsPresent()).toEqualBcoz(true, 'for alerts table column configure button');
- expect(page.getAlertTableTitle()).toEqualBcoz('Alerts (25 of 169)', 'for alerts title');
+ expect(page.getAlertTableTitle()).toEqualBcoz('Alerts (169)', 'for alerts title');
expect(page.getActionDropdownItems()).toEqualBcoz([ 'Open', 'Dismiss', 'Escalate', 'Resolve' ], 'for default dropdown actions');
expect(page.getTableColumnNames()).toEqualBcoz(columnNames, 'for default column names for alert list table');
});
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.po.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.po.ts b/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.po.ts
index cefa137..ec44120 100644
--- a/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.po.ts
+++ b/metron-interface/metron-alerts/e2e/alerts-list/alerts-list.po.ts
@@ -68,8 +68,18 @@ export class MetronAlertsPage {
return element(by.css('.col-form-label-lg')).getText();
}
+ clickActionDropdown() {
+ return element(by.buttonText('ACTIONS')).click();
+ }
+
+ clickActionDropdownOption(option: string) {
+ this.clickActionDropdown().then(() => {
+ element(by.cssContainingText('.dropdown-menu span', option)).click();
+ });
+ }
+
getActionDropdownItems() {
- return element(by.buttonText('ACTIONS')).click().then(() => element.all(by.css('.dropdown-menu .dropdown-item.disabled')).getText());
+ return this.clickActionDropdown().then(() => element.all(by.css('.dropdown-menu .dropdown-item.disabled')).getText());
}
getTableColumnNames() {
@@ -241,4 +251,27 @@ export class MetronAlertsPage {
let EC = protractor.ExpectedConditions;
return browser.wait(EC.presenceOf(element));
}
+
+ waitForTextChange(element, previousText) {
+ let EC = protractor.ExpectedConditions;
+ return browser.wait(EC.not(EC.textToBePresentInElement(element, previousText)));
+ }
+
+ toggleAlertInList(index: number) {
+ let selector = by.css('app-alerts-list tbody tr label');
+ let checkbox = element.all(selector).get(index);
+ this.waitForElementPresence(checkbox).then(() => {
+ browser.actions().mouseMove(checkbox).perform().then(() => {
+ checkbox.click();
+ });
+ });
+ }
+
+ getAlertStatus(rowIndex: number, previousText) {
+ let row = element.all(by.css('app-alerts-list tbody tr')).get(rowIndex);
+ let column = row.all(by.css('td a')).get(8);
+ return this.waitForTextChange(column, previousText).then(() => {
+ return column.getText();
+ });
+ }
}
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alerts-list/configure-table/configure-table.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alerts-list/configure-table/configure-table.e2e-spec.ts b/metron-interface/metron-alerts/e2e/alerts-list/configure-table/configure-table.e2e-spec.ts
index fb3e3cd..284255f 100644
--- a/metron-interface/metron-alerts/e2e/alerts-list/configure-table/configure-table.e2e-spec.ts
+++ b/metron-interface/metron-alerts/e2e/alerts-list/configure-table/configure-table.e2e-spec.ts
@@ -19,6 +19,7 @@
import { MetronAlertsPage } from '../alerts-list.po';
import {customMatchers} from '../../matchers/custom-matchers';
import {LoginPage} from '../../login/login.po';
+import {loadTestData, deleteTestData} from '../../utils/e2e_util';
describe('metron-alerts configure table', function() {
let page: MetronAlertsPage;
@@ -27,12 +28,14 @@ describe('metron-alerts configure table', function() {
'ip_dst_addr', 'host', 'alert_status' ];
beforeAll(() => {
+ loadTestData();
loginPage = new LoginPage();
loginPage.login();
});
afterAll(() => {
loginPage.logout();
+ deleteTestData();
});
beforeEach(() => {
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/alerts-list/save-search/save-search.e2e-spec.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/alerts-list/save-search/save-search.e2e-spec.ts b/metron-interface/metron-alerts/e2e/alerts-list/save-search/save-search.e2e-spec.ts
index 85127dc..91bb81a 100644
--- a/metron-interface/metron-alerts/e2e/alerts-list/save-search/save-search.e2e-spec.ts
+++ b/metron-interface/metron-alerts/e2e/alerts-list/save-search/save-search.e2e-spec.ts
@@ -19,18 +19,21 @@
import { customMatchers } from '../../matchers/custom-matchers';
import {MetronAlertsPage} from '../alerts-list.po';
import {LoginPage} from '../../login/login.po';
+import {loadTestData, deleteTestData} from '../../utils/e2e_util';
describe('metron-alerts Search', function() {
let page: MetronAlertsPage;
let loginPage: LoginPage;
beforeAll(() => {
+ loadTestData();
loginPage = new LoginPage();
loginPage.login();
});
afterAll(() => {
loginPage.logout();
+ deleteTestData();
});
beforeEach(() => {
@@ -73,10 +76,10 @@ describe('metron-alerts Search', function() {
it('should delete first search items from search box having multiple search fields', () => {
page.clickTableText('US');
- page.clickTableText('bro');
- expect(page.getSearchText()).toEqual('enrichments:geo:ip_dst_addr:country:US AND source:type:bro', 'for search text US and bro');
+ page.clickTableText('alerts_ui_e2e');
+ expect(page.getSearchText()).toEqual('enrichments:geo:ip_dst_addr:country:US AND source:type:alerts_ui_e2e', 'for search text US and alerts_ui_e2e');
page.clickRemoveSearchChip();
- expect(page.getSearchText()).toEqual('source:type:bro', 'for search text bro after US is removed');
+ expect(page.getSearchText()).toEqual('source:type:alerts_ui_e2e', 'for search text alerts_ui_e2e after US is removed');
page.clickRemoveSearchChip();
expect(page.getSearchText()).toEqual('*', 'for search chip remove for two search texts');
});
http://git-wip-us.apache.org/repos/asf/metron/blob/cd7257e1/metron-interface/metron-alerts/e2e/login/login.po.ts
----------------------------------------------------------------------
diff --git a/metron-interface/metron-alerts/e2e/login/login.po.ts b/metron-interface/metron-alerts/e2e/login/login.po.ts
index b3e9769..c9f8c23 100644
--- a/metron-interface/metron-alerts/e2e/login/login.po.ts
+++ b/metron-interface/metron-alerts/e2e/login/login.po.ts
@@ -24,7 +24,7 @@ export class LoginPage {
}
login() {
- browser.wait(function() {return element(by.css('input.form-control')).isPresent(); });
+ this.navigateToLogin();
this.setUserNameAndPassword('admin', 'password');
this.submitLoginForm();
browser.waitForAngularEnabled(false);