-
Notifications
You must be signed in to change notification settings - Fork 8.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Security Solution] Add unit test for all hosts (#76752)
* add unit test for all hosts * fix types Co-authored-by: Elastic Machine <[email protected]>
- v8.17.1
- v8.17.0
- v8.16.3
- v8.16.2
- v8.16.1
- v8.16.0
- v8.15.5
- v8.15.4
- v8.15.3
- v8.15.2
- v8.15.1
- v8.15.0
- v8.14.3
- v8.14.2
- v8.14.1
- v8.14.0
- v8.13.4
- v8.13.3
- v8.13.2
- v8.13.1
- v8.13.0
- v8.12.2
- v8.12.1
- v8.12.0
- v8.11.4
- v8.11.3
- v8.11.2
- v8.11.1
- v8.11.0
- v8.10.4
- v8.10.3
- v8.10.2
- v8.10.1
- v8.10.0
- v8.9.2
- v8.9.1
- v8.9.0
- v8.8.2
- v8.8.1
- v8.8.0
- v8.7.1
- v8.7.0
- v8.6.2
- v8.6.1
- v8.6.0
- v8.5.3
- v8.5.2
- v8.5.1
- v8.5.0
- v8.4.3
- v8.4.2
- v8.4.1
- v8.4.0
- v8.3.3
- v8.3.2
- v8.3.1
- v8.3.0
- v8.2.3
- v8.2.2
- v8.2.1
- v8.2.0
- v8.1.3
- v8.1.2
- v8.1.1
- v8.1.0
- v8.0.1
- v8.0.0
- v8.0.0-rc2
- v8.0.0-rc1
- v8.0.0-beta1
- v8.0.0-alpha2
- v8.0.0-alpha1
- test-depl-20231025084603
- test-depl-20231013154558
- deploy-fix-test-ci
- deploy-fix@1728886420
- deploy-fix@1722233551
- deploy-fix@1721023892
- deploy-fix@1720419201
- deploy-fix@1718000036
- deploy-fix@1717401777
- deploy-fix@1708322739
- deploy-fix@1707717945
- deploy-fix@1701687168
- deploy-fix@1699260155
- deploy-fix@1698657637
- deploy@1738563299
- deploy@1737958429
- deploy@1737353792
- deploy@1736748791
- deploy@1736144018
- deploy@1735539127
- deploy@1734934371
- deploy@1734329529
- deploy@1733724770
- deploy@1733120035
- deploy@1732515196
- deploy@1731910526
- deploy@1731305644
- deploy@1730700921
- deploy@1730095989
- deploy@1729491328
- deploy@1728886420
- deploy@1728281754
- deploy@1727676838
- deploy@1727071987
- deploy@1726473511
- deploy@1725862301
- deploy@1725257503
- deploy@1724652827
- deploy@1724047965
- deploy@1723443177
- deploy@1722838314
- deploy@1722233551
- deploy@1721628835
- deploy@1721023892
- deploy@1720419201
- deploy@1719814351
- deploy@1719209622
- deploy@1718616070
- deploy@1718000036
- deploy@1717401777
- deploy@1717395230
- deploy@1716800745
- deploy@1716790412
- deploy@1716185667
- deploy@1715580861
- deploy@1714976069
- deploy@1714371303
- deploy@1713766425
- deploy@1713161715
- deploy@1712566963
- deploy@1711952105
- deploy@1711370131
- deploy@1710741924
- deploy@1710146776
- deploy@1710137117
- deploy@1709533819
- deploy@1709532332
- deploy@1708927574
- deploy@1708322739
- deploy@1707717945
- deploy@1707113127
- deploy@1706508321
- deploy@1705903520
- deploy@1705306975
- deploy@1705298718
- deploy@1704693922
- deploy@1704089101
- deploy@1703484304
- deploy@1702903357
- deploy@1702879551
- deploy@1702367069
- deploy@1702284899
- deploy@1701687168
- deploy@1701160888
- deploy@1700491293
- deploy@1699865290
- deploy@1699260155
- deploy@1698657637
- deploy@1698046713
- deploy@1697564183
- deploy@1697232175
- deploy@1697028216
- deploy@1696873111
- deploy@1696618725
- deploy@1696508231
- deploy@1696415195
- deploy@1696328885
- deploy@1695286747
- deploy@1694683198
- deploy@1694506029
- deploy@1694162455
- deploy@1694087994
- deploy@1693866333
- deploy@1693860790
- deploy@1693853982
- deploy@1693609987
- deploy@1693594780
1 parent
d16c239
commit 8556427
Showing
6 changed files
with
946 additions
and
11 deletions.
There are no files selected for viewing
777 changes: 777 additions & 0 deletions
777
...ty_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts
Large diffs are not rendered by default.
Oops, something went wrong.
87 changes: 87 additions & 0 deletions
87
...urity_solution/server/search_strategy/security_solution/factory/hosts/all/helpers.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
/* | ||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one | ||
* or more contributor license agreements. Licensed under the Elastic License; | ||
* you may not use this file except in compliance with the Elastic License. | ||
*/ | ||
|
||
import { HostsEdges } from '../../../../../../common/search_strategy/security_solution'; | ||
|
||
import { formatHostEdgesData } from './helpers'; | ||
import { mockBuckets } from './__mocks__'; | ||
|
||
describe('#formatHostsData', () => { | ||
test('it formats a host with a source of name correctly', () => { | ||
const mockFields: readonly string[] = ['host.name']; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { tiebreaker: null, value: 'zeek-london' }, | ||
node: { host: { name: ['zeek-london'] }, _id: 'zeek-london' }, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
|
||
test('it formats a host with a source of os correctly', () => { | ||
const mockFields: readonly string[] = ['host.os.name']; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { tiebreaker: null, value: 'zeek-london' }, | ||
node: { host: { os: { name: ['Ubuntu'] } }, _id: 'zeek-london' }, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
|
||
test('it formats a host with a source of version correctly', () => { | ||
const mockFields: readonly string[] = ['host.os.version']; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { tiebreaker: null, value: 'zeek-london' }, | ||
node: { host: { os: { version: ['18.04.2 LTS (Bionic Beaver)'] } }, _id: 'zeek-london' }, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
|
||
test('it formats a host with a source of id correctly', () => { | ||
const mockFields: readonly string[] = ['host.name']; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { tiebreaker: null, value: 'zeek-london' }, | ||
node: { _id: 'zeek-london', host: { name: ['zeek-london'] } }, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
|
||
test('it formats a host with a source of name, lastBeat, os, and version correctly', () => { | ||
const mockFields: readonly string[] = ['host.name', 'host.os.name', 'host.os.version']; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { tiebreaker: null, value: 'zeek-london' }, | ||
node: { | ||
_id: 'zeek-london', | ||
host: { | ||
name: ['zeek-london'], | ||
os: { name: ['Ubuntu'], version: ['18.04.2 LTS (Bionic Beaver)'] }, | ||
}, | ||
}, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
|
||
test('it formats a host without any data if mockFields are empty', () => { | ||
const mockFields: readonly string[] = []; | ||
const data = formatHostEdgesData(mockFields, mockBuckets); | ||
const expected: HostsEdges = { | ||
cursor: { | ||
tiebreaker: null, | ||
value: '', | ||
}, | ||
node: {}, | ||
}; | ||
|
||
expect(data).toEqual(expected); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
...ecurity_solution/server/search_strategy/security_solution/factory/hosts/all/index.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* | ||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one | ||
* or more contributor license agreements. Licensed under the Elastic License; | ||
* you may not use this file except in compliance with the Elastic License. | ||
*/ | ||
|
||
import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; | ||
|
||
import { HostsRequestOptions } from '../../../../../../common/search_strategy/security_solution'; | ||
import * as buildQuery from './query.all_hosts.dsl'; | ||
import { allHosts } from '.'; | ||
import { | ||
mockOptions, | ||
mockSearchStrategyResponse, | ||
formattedSearchStrategyResponse, | ||
} from './__mocks__'; | ||
|
||
describe('allHosts search strategy', () => { | ||
const buildAllHostsQuery = jest.spyOn(buildQuery, 'buildHostsQuery'); | ||
|
||
afterEach(() => { | ||
buildAllHostsQuery.mockClear(); | ||
}); | ||
|
||
describe('buildDsl', () => { | ||
test('should build dsl query', () => { | ||
allHosts.buildDsl(mockOptions); | ||
expect(buildAllHostsQuery).toHaveBeenCalledWith(mockOptions); | ||
}); | ||
|
||
test('should throw error if query size is greater equal than DEFAULT_MAX_TABLE_QUERY_SIZE ', () => { | ||
const overSizeOptions = { | ||
...mockOptions, | ||
pagination: { | ||
...mockOptions.pagination, | ||
querySize: DEFAULT_MAX_TABLE_QUERY_SIZE, | ||
}, | ||
} as HostsRequestOptions; | ||
|
||
expect(() => { | ||
allHosts.buildDsl(overSizeOptions); | ||
}).toThrowError(`No query size above ${DEFAULT_MAX_TABLE_QUERY_SIZE}`); | ||
}); | ||
}); | ||
|
||
describe('parse', () => { | ||
test('should parse data correctly', async () => { | ||
const result = await allHosts.parse(mockOptions, mockSearchStrategyResponse); | ||
expect(result).toMatchObject(formattedSearchStrategyResponse); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
13 changes: 13 additions & 0 deletions
13
...on/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/* | ||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one | ||
* or more contributor license agreements. Licensed under the Elastic License; | ||
* you may not use this file except in compliance with the Elastic License. | ||
*/ | ||
import { buildHostsQuery } from './query.all_hosts.dsl'; | ||
import { mockOptions, expectedDsl } from './__mocks__/'; | ||
|
||
describe('buildHostsQuery', () => { | ||
test('build query from options correctly', () => { | ||
expect(buildHostsQuery(mockOptions)).toEqual(expectedDsl); | ||
}); | ||
}); |