Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[7.x] Tests Endpoint App Host Detail (#61857) #62296

Merged
merged 1 commit into from
Apr 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions x-pack/test/api_integration/apis/endpoint/alerts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export default function({ getService }: FtrProviderContext) {
.expect(404);
});

it('should return one entry for each alert with default paging', async () => {
it.skip('should return one entry for each alert with default paging', async () => {
const { body } = await supertest
.get('/api/endpoint/alerts')
.set('kbn-xsrf', 'xxx')
Expand All @@ -111,7 +111,7 @@ export default function({ getService }: FtrProviderContext) {
expect(body.result_from_index).to.eql(0);
});

it('should return the page_size and page_index specified in the query params', async () => {
it.skip('should return the page_size and page_index specified in the query params', async () => {
const pageSize = 1;
const pageIndex = 1;
const { body } = await supertest
Expand Down Expand Up @@ -140,7 +140,7 @@ export default function({ getService }: FtrProviderContext) {
.expect(200);
body = response.body;
});
it('should return accurate total counts', async () => {
it.skip('should return accurate total counts', async () => {
expect(body.total).to.eql(numberOfAlertsInFixture);
/**
* Nothing was returned due to pagination.
Expand All @@ -160,7 +160,7 @@ export default function({ getService }: FtrProviderContext) {
expect(body.message).to.contain('Value must be equal to or greater than [1]');
});

it('should return links to the next and previous pages using cursor-based pagination', async () => {
it.skip('should return links to the next and previous pages using cursor-based pagination', async () => {
const { body } = await supertest
.get('/api/endpoint/alerts?page_index=0')
.set('kbn-xsrf', 'xxx')
Expand Down Expand Up @@ -346,7 +346,7 @@ export default function({ getService }: FtrProviderContext) {
expect(valid).to.eql(true);
});

it('should filter results of alert data using rison-encoded filters', async () => {
it.skip('should filter results of alert data using rison-encoded filters', async () => {
const hostname = 'Host-abmfhmc5ku';
const { body } = await supertest
.get(
Expand All @@ -361,7 +361,7 @@ export default function({ getService }: FtrProviderContext) {
expect(body.result_from_index).to.eql(0);
});

it('should filter results of alert data using KQL', async () => {
it.skip('should filter results of alert data using KQL', async () => {
const agentID = '7cf9f7a3-28a6-4d1e-bb45-005aa28f18d0';
const { body } = await supertest
.get(
Expand All @@ -376,7 +376,7 @@ export default function({ getService }: FtrProviderContext) {
expect(body.result_from_index).to.eql(0);
});

it('should return alert details by id, getting last alert', async () => {
it.skip('should return alert details by id, getting last alert', async () => {
const documentID = 'zbNm0HABdD75WLjLYgcB';
const prevDocumentID = '2rNm0HABdD75WLjLYgcU';
const { body } = await supertest
Expand Down
22 changes: 10 additions & 12 deletions x-pack/test/api_integration/apis/endpoint/metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export default function({ getService }: FtrProviderContext) {
const { body } = await supertest
.post('/api/endpoint/metadata')
.set('kbn-xsrf', 'xxx')
.send({ filter: 'not host.ip:10.100.170.247' })
.send({ filter: 'not host.ip:10.46.229.234' })
.expect(200);
expect(body.total).to.eql(2);
expect(body.hosts.length).to.eql(2);
Expand All @@ -121,7 +121,7 @@ export default function({ getService }: FtrProviderContext) {
});

it('metadata api should return page based on filters and paging passed.', async () => {
const notIncludedIp = '10.100.170.247';
const notIncludedIp = '10.46.229.234';
const { body } = await supertest
.post('/api/endpoint/metadata')
.set('kbn-xsrf', 'xxx')
Expand All @@ -142,12 +142,10 @@ export default function({ getService }: FtrProviderContext) {
...body.hosts.map((metadata: Record<string, any>) => metadata.host.ip)
);
expect(resultIps).to.eql([
'10.48.181.222',
'10.116.62.62',
'10.102.83.30',
'10.198.70.21',
'10.252.10.66',
'10.128.235.38',
'10.192.213.130',
'10.70.28.129',
'10.101.149.26',
'2606:a000:ffc0:39:11ef:37b9:3371:578c',
]);
expect(resultIps).not.include.eql(notIncludedIp);
expect(body.hosts.length).to.eql(2);
Expand All @@ -164,18 +162,18 @@ export default function({ getService }: FtrProviderContext) {
filter: `host.os.variant.keyword:${variantValue}`,
})
.expect(200);
expect(body.total).to.eql(1);
expect(body.total).to.eql(2);
const resultOsVariantValue: Set<string> = new Set(
body.hosts.map((metadata: Record<string, any>) => metadata.host.os.variant)
);
expect(Array.from(resultOsVariantValue)).to.eql([variantValue]);
expect(body.hosts.length).to.eql(1);
expect(body.hosts.length).to.eql(2);
expect(body.request_page_size).to.eql(10);
expect(body.request_page_index).to.eql(0);
});

it('metadata api should return the latest event for all the events for an endpoint', async () => {
const targetEndpointIp = '10.100.170.247';
const targetEndpointIp = '10.46.229.234';
const { body } = await supertest
.post('/api/endpoint/metadata')
.set('kbn-xsrf', 'xxx')
Expand All @@ -188,7 +186,7 @@ export default function({ getService }: FtrProviderContext) {
(ip: string) => ip === targetEndpointIp
);
expect(resultIp).to.eql([targetEndpointIp]);
expect(body.hosts[0].event.created).to.eql(1584044335459);
expect(body.hosts[0].event.created).to.eql(1579881969541);
expect(body.hosts.length).to.eql(1);
expect(body.request_page_size).to.eql(10);
expect(body.request_page_index).to.eql(0);
Expand Down
86 changes: 63 additions & 23 deletions x-pack/test/functional/apps/endpoint/host_list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {

describe('host list', function() {
this.tags('ciGroup7');
const sleep = (ms = 100) => new Promise(resolve => setTimeout(resolve, ms));
before(async () => {
await esArchiver.load('endpoint/metadata/api_feature');
await pageObjects.common.navigateToUrlWithBrowserHistory('endpoint', '/hosts');
Expand All @@ -37,32 +38,32 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
'Last Active',
],
[
'Host-cxz5glsoup',
'cadmann-4.example.com',
'Policy Name',
'Policy Status',
'0',
'windows 6.2',
'10.48.181.222, 10.116.62.62, 10.102.83.30',
'windows 10.0',
'10.192.213.130, 10.70.28.129',
'version',
'xxxx',
],
[
'Host-frl2otafoa',
'thurlow-9.example.com',
'Policy Name',
'Policy Status',
'0',
'windows 10.0',
'10.198.70.21, 10.252.10.66, 10.128.235.38',
'10.46.229.234',
'version',
'xxxx',
],
[
'Host-abmfhmc5ku',
'rezzani-7.example.com',
'Policy Name',
'Policy Status',
'0',
'windows 6.2',
'10.100.170.247, 10.113.203.29, 10.83.81.146',
'windows 10.0',
'10.101.149.26, 2606:a000:ffc0:39:11ef:37b9:3371:578c',
'version',
'xxxx',
],
Expand All @@ -71,29 +72,68 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
expect(tableData).to.eql(expectedData);
});

it('no details flyout when host page displayed', async () => {
await testSubjects.missingOrFail('hostDetailsFlyout');
});

it('display details flyout when the hostname is clicked on', async () => {
await (await testSubjects.find('hostnameCellLink')).click();
await testSubjects.existOrFail('hostDetailsUpperList');
await testSubjects.existOrFail('hostDetailsLowerList');
});

it('displays no items found when empty', async () => {
// clear out the data and reload the page
await esArchiver.unload('endpoint/metadata/api_feature');
await pageObjects.common.navigateToUrlWithBrowserHistory('endpoint', '/hosts');
// get the table data and verify no entries appear
const tableData = await pageObjects.endpoint.getEndpointAppTableData('hostListTable');
expect(tableData[1][0]).to.equal('No items found');
// reload the data so the other tests continue to pass
await esArchiver.load('endpoint/metadata/api_feature');
it('update details flyout when new hostname is clicked on', async () => {
// display flyout for the first host in the list
await (await testSubjects.findAll('hostnameCellLink'))[0].click();
await testSubjects.existOrFail('hostDetailsFlyoutTitle');
const hostDetailTitle0 = await testSubjects.getVisibleText('hostDetailsFlyoutTitle');
// select the 2nd host in the host list
await (await testSubjects.findAll('hostnameCellLink'))[1].click();
await pageObjects.endpoint.waitForVisibleTextToChange(
'hostDetailsFlyoutTitle',
hostDetailTitle0
);
const hostDetailTitle1 = await testSubjects.getVisibleText('hostDetailsFlyoutTitle');
expect(hostDetailTitle1).to.not.eql(hostDetailTitle0);
});

it('details flyout remains the same when current hostname is clicked on', async () => {
// display flyout for the first host in the list
await (await testSubjects.findAll('hostnameCellLink'))[1].click();
await testSubjects.existOrFail('hostDetailsFlyoutTitle');
const hostDetailTitleInitial = await testSubjects.getVisibleText('hostDetailsFlyoutTitle');
// select the same host in the host list
await (await testSubjects.findAll('hostnameCellLink'))[1].click();
await sleep(500); // give page time to refresh and verify it did not change
const hostDetailTitleNew = await testSubjects.getVisibleText('hostDetailsFlyoutTitle');
expect(hostDetailTitleNew).to.eql(hostDetailTitleInitial);
});

describe('no data', () => {
before(async () => {
// clear out the data and reload the page
await esArchiver.unload('endpoint/metadata/api_feature');
await pageObjects.common.navigateToUrlWithBrowserHistory('endpoint', '/hosts');
});
after(async () => {
// reload the data so the other tests continue to pass
await esArchiver.load('endpoint/metadata/api_feature');
});
it('displays no items found when empty', async () => {
// get the host list table data and verify message
const [, [noItemsFoundMessage]] = await pageObjects.endpoint.getEndpointAppTableData(
'hostListTable'
);
expect(noItemsFoundMessage).to.equal('No items found');
});
});

describe('has a url with a host id', () => {
before(async () => {
await pageObjects.common.navigateToUrlWithBrowserHistory(
'endpoint',
'/hosts',
'selected_host=cbe80003-6964-4e0f-aba1-f94c32b44e95'
'selected_host=fc0ff548-feba-41b6-8367-65e8790d0eaf'
);
});

Expand All @@ -120,14 +160,14 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => {
const values = await pageObjects.endpoint.hostFlyoutDescriptionValues('hostDetailsFlyout');

expect(values).to.eql([
'Windows Server 2012',
'Windows 10',
'',
'0',
'C2A9093E-E289-4C0A-AA44-8C32A414FA7A',
'00000000-0000-0000-0000-000000000000',
'active',
'10.48.181.22210.116.62.6210.102.83.30',
'Host-cxz5glsoup',
'6.6.9',
'10.101.149.262606:a000:ffc0:39:11ef:37b9:3371:578c',
'rezzani-7.example.com',
'6.8.0',
]);
});
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"type": "index",
"value": {
"aliases": {
},
"aliases": {},
"index": "events-endpoint-1",
"mappings": {
"_meta": {
Expand Down Expand Up @@ -2370,4 +2369,4 @@
}
}
}
}
}
Loading