mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 03:01:21 -04:00
FTR: enable ESLint mocha rules for api integration tests (#191267)
## Summary Follow-up to #190690 Most of API integration tests does not match the path pattern set in the original PR (thanks @pheyos for catching it) and where not updated. This PR updates `.eslintrc.js` with explicit patterns to lint api_integration tests. Hopefully it is final change, but I rely on code owners to double check it. Most of the changes are trivial adjustments: - duplicated before/after hooks `mocha/no-sibling-hooks` - duplicated test titles `mocha/no-identical-title` - async function in describe() `mocha/no-async-describe` --------- Co-authored-by: Ash <1849116+ashokaditya@users.noreply.github.com>
This commit is contained in:
parent
22d23ffd29
commit
8436f45fd1
164 changed files with 518 additions and 622 deletions
|
@ -1371,8 +1371,10 @@ module.exports = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
files: [
|
files: [
|
||||||
'test/{accessibility,*functional*,*api_integration*}/apps/**/*.{js,ts}',
|
'test/{accessibility,*functional*}/apps/**/*.{js,ts}',
|
||||||
'x-pack/test/{accessibility,*functional*,*api_integration*}/apps/**/*.{js,ts}',
|
'test/*api_integration*/**/*.{js,ts}',
|
||||||
|
'x-pack/test/{accessibility,*functional*}/apps/**/*.{js,ts}',
|
||||||
|
'x-pack/test/*api_integration*/**/*.{js,ts}',
|
||||||
'x-pack/test_serverless/{functional,api_integration}/test_suites/**/*.{js,ts}',
|
'x-pack/test_serverless/{functional,api_integration}/test_suites/**/*.{js,ts}',
|
||||||
],
|
],
|
||||||
extends: ['plugin:mocha/recommended'],
|
extends: ['plugin:mocha/recommended'],
|
||||||
|
|
|
@ -224,7 +224,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
expect(response.body[config.serviceKey].fieldFormats.foo.params).to.eql({});
|
expect(response.body[config.serviceKey].fieldFormats.foo.params).to.eql({});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can specify optional fieldFormats attribute when creating an index pattern', async () => {
|
it('can specify optional fieldFormats attributes count and customLabel when creating an index pattern', async () => {
|
||||||
const title = `foo-${Date.now()}-${Math.random()}*`;
|
const title = `foo-${Date.now()}-${Math.random()}*`;
|
||||||
const response = await supertest.post(config.path).send({
|
const response = await supertest.post(config.path).send({
|
||||||
[config.serviceKey]: {
|
[config.serviceKey]: {
|
||||||
|
|
|
@ -68,13 +68,6 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns 404 error on non-existing scripted field', async () => {
|
|
||||||
const response1 = await supertest.get(
|
|
||||||
`/api/index_patterns/index_pattern/${indexPattern.id}/scripted_field/test`
|
|
||||||
);
|
|
||||||
expect(response1.status).to.be(404);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('returns error when attempting to fetch a field which is not a scripted field', async () => {
|
it('returns error when attempting to fetch a field which is not a scripted field', async () => {
|
||||||
const response2 = await supertest.get(
|
const response2 = await supertest.get(
|
||||||
`/api/index_patterns/index_pattern/${indexPattern.id}/scripted_field/foo`
|
`/api/index_patterns/index_pattern/${indexPattern.id}/scripted_field/foo`
|
||||||
|
|
|
@ -19,7 +19,7 @@ import type { ToolingLog } from '@kbn/tooling-log';
|
||||||
* Example usage:
|
* Example usage:
|
||||||
* ```ts
|
* ```ts
|
||||||
const fleetResponse = await retry<InstallPackageResponse>({
|
const fleetResponse = await retry<InstallPackageResponse>({
|
||||||
test: async () => {
|
testFn: async () => {
|
||||||
const testResponse = await supertest
|
const testResponse = await supertest
|
||||||
.post(`/api/fleet/epm/packages/security_detection_engine`)
|
.post(`/api/fleet/epm/packages/security_detection_engine`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
@ -45,7 +45,7 @@ import type { ToolingLog } from '@kbn/tooling-log';
|
||||||
* @returns The response from the test
|
* @returns The response from the test
|
||||||
*/
|
*/
|
||||||
export const retry = async <T>({
|
export const retry = async <T>({
|
||||||
test,
|
testFn,
|
||||||
retryService,
|
retryService,
|
||||||
utilityName,
|
utilityName,
|
||||||
retries = 3,
|
retries = 3,
|
||||||
|
@ -53,7 +53,7 @@ export const retry = async <T>({
|
||||||
retryDelay = 200,
|
retryDelay = 200,
|
||||||
logger,
|
logger,
|
||||||
}: {
|
}: {
|
||||||
test: () => Promise<T>;
|
testFn: () => Promise<T>;
|
||||||
utilityName: string;
|
utilityName: string;
|
||||||
retryService: RetryService;
|
retryService: RetryService;
|
||||||
retries?: number;
|
retries?: number;
|
||||||
|
@ -77,7 +77,7 @@ export const retry = async <T>({
|
||||||
|
|
||||||
retryAttempt = retryAttempt + 1;
|
retryAttempt = retryAttempt + 1;
|
||||||
|
|
||||||
return await test();
|
return await testFn();
|
||||||
},
|
},
|
||||||
undefined,
|
undefined,
|
||||||
retryDelay
|
retryDelay
|
||||||
|
|
|
@ -34,7 +34,7 @@ export async function waitForRuleStatus({
|
||||||
logger: ToolingLog;
|
logger: ToolingLog;
|
||||||
}): Promise<Record<string, any>> {
|
}): Promise<Record<string, any>> {
|
||||||
const ruleResponse = await retry<Record<string, any>>({
|
const ruleResponse = await retry<Record<string, any>>({
|
||||||
test: async () => {
|
testFn: async () => {
|
||||||
const response = await supertest.get(`/api/alerting/rule/${id}`);
|
const response = await supertest.get(`/api/alerting/rule/${id}`);
|
||||||
const { execution_status: executionStatus } = response.body || {};
|
const { execution_status: executionStatus } = response.body || {};
|
||||||
const { status } = executionStatus || {};
|
const { status } = executionStatus || {};
|
||||||
|
@ -74,7 +74,7 @@ export async function waitForDocumentInIndex<T>({
|
||||||
retryDelay?: number;
|
retryDelay?: number;
|
||||||
}): Promise<SearchResponse<T, Record<string, AggregationsAggregate>>> {
|
}): Promise<SearchResponse<T, Record<string, AggregationsAggregate>>> {
|
||||||
return await retry<SearchResponse<T, Record<string, AggregationsAggregate>>>({
|
return await retry<SearchResponse<T, Record<string, AggregationsAggregate>>>({
|
||||||
test: async () => {
|
testFn: async () => {
|
||||||
const response = await esClient.search<T>({
|
const response = await esClient.search<T>({
|
||||||
index: indexName,
|
index: indexName,
|
||||||
rest_total_hits_as_int: true,
|
rest_total_hits_as_int: true,
|
||||||
|
@ -112,7 +112,7 @@ export async function waitForAlertInIndex<T>({
|
||||||
logger: ToolingLog;
|
logger: ToolingLog;
|
||||||
}): Promise<SearchResponse<T, Record<string, AggregationsAggregate>>> {
|
}): Promise<SearchResponse<T, Record<string, AggregationsAggregate>>> {
|
||||||
return await retry<SearchResponse<T, Record<string, AggregationsAggregate>>>({
|
return await retry<SearchResponse<T, Record<string, AggregationsAggregate>>>({
|
||||||
test: async () => {
|
testFn: async () => {
|
||||||
const response = await esClient.search<T>({
|
const response = await esClient.search<T>({
|
||||||
index: indexName,
|
index: indexName,
|
||||||
body: {
|
body: {
|
||||||
|
|
|
@ -36,7 +36,7 @@ export default function bulkUntrackByQueryTests({ getService }: FtrProviderConte
|
||||||
});
|
});
|
||||||
|
|
||||||
for (const scenario of UserAtSpaceScenarios) {
|
for (const scenario of UserAtSpaceScenarios) {
|
||||||
describe(scenario.id, async () => {
|
describe(scenario.id, () => {
|
||||||
it('should bulk mark alerts as untracked by query', async () => {
|
it('should bulk mark alerts as untracked by query', async () => {
|
||||||
const { body: createdRule1 } = await supertest
|
const { body: createdRule1 } = await supertest
|
||||||
.post(`${getUrlPrefix(scenario.space.id)}/api/alerting/rule`)
|
.post(`${getUrlPrefix(scenario.space.id)}/api/alerting/rule`)
|
||||||
|
|
|
@ -10,8 +10,6 @@ import { FtrProviderContext } from '../../../../common/ftr_provider_context';
|
||||||
// eslint-disable-next-line import/no-default-export
|
// eslint-disable-next-line import/no-default-export
|
||||||
export default function alertingApiIntegrationTests({ loadTestFile }: FtrProviderContext) {
|
export default function alertingApiIntegrationTests({ loadTestFile }: FtrProviderContext) {
|
||||||
describe('alerting api integration security and spaces enabled', function () {
|
describe('alerting api integration security and spaces enabled', function () {
|
||||||
describe('', function () {
|
loadTestFile(require.resolve('./alerting'));
|
||||||
loadTestFile(require.resolve('./alerting'));
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,7 +239,7 @@ export default function opsgenieTest({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('optional parameters', async () => {
|
describe('optional parameters', () => {
|
||||||
describe('responders', () => {
|
describe('responders', () => {
|
||||||
it('should fail to create an alert when the responders is an invalid type', async () => {
|
it('should fail to create an alert when the responders is an invalid type', async () => {
|
||||||
const { body } = await supertest
|
const { body } = await supertest
|
||||||
|
|
|
@ -30,7 +30,7 @@ export default function createAlertTests({ getService }: FtrProviderContext) {
|
||||||
const es = getService('es');
|
const es = getService('es');
|
||||||
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
||||||
|
|
||||||
describe('clone', async () => {
|
describe('clone', () => {
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
const space1 = Spaces[0].id;
|
const space1 = Spaces[0].id;
|
||||||
const space2 = Spaces[1].id;
|
const space2 = Spaces[1].id;
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { FtrProviderContext } from '../../../../common/ftr_provider_context';
|
||||||
export default function getRuleFieldsTests({ getService }: FtrProviderContext) {
|
export default function getRuleFieldsTests({ getService }: FtrProviderContext) {
|
||||||
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
||||||
|
|
||||||
describe('fields rule', async () => {
|
describe('fields rule', () => {
|
||||||
for (const scenario of UserAtSpaceScenarios) {
|
for (const scenario of UserAtSpaceScenarios) {
|
||||||
const { user, space } = scenario;
|
const { user, space } = scenario;
|
||||||
describe(scenario.id, () => {
|
describe(scenario.id, () => {
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { FtrProviderContext } from '../../../../common/ftr_provider_context';
|
||||||
export default function createRuleSuggestionValuesTests({ getService }: FtrProviderContext) {
|
export default function createRuleSuggestionValuesTests({ getService }: FtrProviderContext) {
|
||||||
const space1 = Spaces[0].id;
|
const space1 = Spaces[0].id;
|
||||||
|
|
||||||
describe('alerts/suggestions/values', async () => {
|
describe('alerts/suggestions/values', () => {
|
||||||
const esArchiver = getService('esArchiver');
|
const esArchiver = getService('esArchiver');
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function createRuleSuggestionValuesTests({ getService }: FtrProvi
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
||||||
|
|
||||||
describe('rules/suggestions/values', async () => {
|
describe('rules/suggestions/values', () => {
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
const space1 = Spaces[0].id;
|
const space1 = Spaces[0].id;
|
||||||
const space2 = Spaces[1].id;
|
const space2 = Spaces[1].id;
|
||||||
|
|
|
@ -75,7 +75,7 @@ export default function alertTests({ getService }: FtrProviderContext) {
|
||||||
const esTestIndexTool = new ESTestIndexTool(es, retry);
|
const esTestIndexTool = new ESTestIndexTool(es, retry);
|
||||||
const esTestIndexToolOutput = new ESTestIndexTool(es, retry, ES_TEST_OUTPUT_INDEX_NAME);
|
const esTestIndexToolOutput = new ESTestIndexTool(es, retry, ES_TEST_OUTPUT_INDEX_NAME);
|
||||||
|
|
||||||
describe('alert', async () => {
|
describe('alert', () => {
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
let actionId: string;
|
let actionId: string;
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
`.internal.alerts-transform.health.alerts-default-000001`
|
`.internal.alerts-transform.health.alerts-default-000001`
|
||||||
);
|
);
|
||||||
|
|
||||||
describe('rule', async () => {
|
describe('rule', () => {
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
let connectorId: string;
|
let connectorId: string;
|
||||||
const transformId = 'test_transform_01';
|
const transformId = 'test_transform_01';
|
||||||
|
|
|
@ -38,7 +38,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
getAllAADDocs,
|
getAllAADDocs,
|
||||||
} = getRuleServices(getService);
|
} = getRuleServices(getService);
|
||||||
|
|
||||||
describe('rule', async () => {
|
describe('rule', () => {
|
||||||
let endDate: string;
|
let endDate: string;
|
||||||
let connectorId: string;
|
let connectorId: string;
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
|
|
|
@ -33,7 +33,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
const { es, esTestIndexTool, esTestIndexToolOutput, createEsDocumentsInGroups, waitForDocs } =
|
const { es, esTestIndexTool, esTestIndexToolOutput, createEsDocumentsInGroups, waitForDocs } =
|
||||||
getRuleServices(getService);
|
getRuleServices(getService);
|
||||||
|
|
||||||
describe('rule', async () => {
|
describe('rule', () => {
|
||||||
let endDate: string;
|
let endDate: string;
|
||||||
let connectorId: string;
|
let connectorId: string;
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
|
|
|
@ -50,7 +50,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
{ label: 'host.name', searchPath: 'host.name' },
|
{ label: 'host.name', searchPath: 'host.name' },
|
||||||
];
|
];
|
||||||
|
|
||||||
describe('rule', async () => {
|
describe('rule', () => {
|
||||||
let endDate: string;
|
let endDate: string;
|
||||||
let connectorId: string;
|
let connectorId: string;
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
|
|
|
@ -41,7 +41,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
`.internal.alerts-${STACK_AAD_INDEX_NAME}.alerts-default-000001`
|
`.internal.alerts-${STACK_AAD_INDEX_NAME}.alerts-default-000001`
|
||||||
);
|
);
|
||||||
|
|
||||||
describe('rule', async () => {
|
describe('rule', () => {
|
||||||
let endDate: string;
|
let endDate: string;
|
||||||
let connectorId: string;
|
let connectorId: string;
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
|
|
|
@ -18,7 +18,7 @@ export default function ruleTests({ getService }: FtrProviderContext) {
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
const retry = getService('retry');
|
const retry = getService('retry');
|
||||||
|
|
||||||
describe('long running rule', async () => {
|
describe('long running rule', () => {
|
||||||
const objectRemover = new ObjectRemover(supertest);
|
const objectRemover = new ObjectRemover(supertest);
|
||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default function createGetTests({ getService }: FtrProviderContext) {
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/alerting/8_2_0');
|
await esArchiver.unload('x-pack/test/functional/es_archives/alerting/8_2_0');
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('rule with null snoozeEndTime value', async () => {
|
describe('rule with null snoozeEndTime value', () => {
|
||||||
it('has snoozeEndTime removed', async () => {
|
it('has snoozeEndTime removed', async () => {
|
||||||
const response = await es.get<{ alert: RawRule & { snoozeEndTime?: string } }>(
|
const response = await es.get<{ alert: RawRule & { snoozeEndTime?: string } }>(
|
||||||
{
|
{
|
||||||
|
@ -60,7 +60,7 @@ export default function createGetTests({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('rules with snoozeEndTime value', async () => {
|
describe('rules with snoozeEndTime value', () => {
|
||||||
it('has snoozeEndTime migrated to snoozeSchedule', async () => {
|
it('has snoozeEndTime migrated to snoozeSchedule', async () => {
|
||||||
const response = await es.get<{ alert: RawRule & { snoozeEndTime?: string } }>(
|
const response = await es.get<{ alert: RawRule & { snoozeEndTime?: string } }>(
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const es = getService('es');
|
const es = getService('es');
|
||||||
const esDeleteAllIndices = getService('esDeleteAllIndices');
|
const esDeleteAllIndices = getService('esDeleteAllIndices');
|
||||||
|
|
||||||
describe('create index', async () => {
|
describe('create index', () => {
|
||||||
const testIndices = ['my-test-index-001', 'my-test-index-002'];
|
const testIndices = ['my-test-index-001', 'my-test-index-002'];
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await esDeleteAllIndices(testIndices);
|
await esDeleteAllIndices(testIndices);
|
||||||
|
|
|
@ -54,7 +54,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const testIndex = '.test_index';
|
const testIndex = '.test_index';
|
||||||
const testAlias = 'test_alias';
|
const testAlias = 'test_alias';
|
||||||
const testIlmPolicy = 'test_policy';
|
const testIlmPolicy = 'test_policy';
|
||||||
describe('GET indices with data enrichers', async () => {
|
describe('GET indices with data enrichers', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await createIndex(testIndex);
|
await createIndex(testIndex);
|
||||||
await createIlmPolicy('test_policy');
|
await createIlmPolicy('test_policy');
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const testIndex = 'test_index';
|
const testIndex = 'test_index';
|
||||||
describe('GET indices without data enrichers', async () => {
|
describe('GET indices without data enrichers', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await createIndex(testIndex);
|
await createIndex(testIndex);
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const testIndex = 'test_index';
|
const testIndex = 'test_index';
|
||||||
describe('index details', async () => {
|
describe('index details', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await createIndex(testIndex);
|
await createIndex(testIndex);
|
||||||
});
|
});
|
||||||
|
|
|
@ -28,8 +28,6 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
after(async () => await deleteAllIndices());
|
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
log.debug('Creating index');
|
log.debug('Creating index');
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default function ({ loadTestFile, getService }) {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('', () => {
|
describe('apis', () => {
|
||||||
loadTestFile(require.resolve('./maps_telemetry'));
|
loadTestFile(require.resolve('./maps_telemetry'));
|
||||||
loadTestFile(require.resolve('./get_indexes_matching_pattern'));
|
loadTestFile(require.resolve('./get_indexes_matching_pattern'));
|
||||||
loadTestFile(require.resolve('./create_doc_source'));
|
loadTestFile(require.resolve('./create_doc_source'));
|
||||||
|
|
|
@ -22,10 +22,14 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const kibanaServer = getService('kibanaServer');
|
const kibanaServer = getService('kibanaServer');
|
||||||
|
|
||||||
describe('sources', () => {
|
describe('sources', () => {
|
||||||
before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs'));
|
before(async () => {
|
||||||
after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/metrics_and_logs'));
|
await esArchiver.load('x-pack/test/functional/es_archives/infra/metrics_and_logs');
|
||||||
before(() => kibanaServer.savedObjects.cleanStandardList());
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
after(() => kibanaServer.savedObjects.cleanStandardList());
|
});
|
||||||
|
after(async () => {
|
||||||
|
await esArchiver.unload('x-pack/test/functional/es_archives/infra/metrics_and_logs');
|
||||||
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
|
});
|
||||||
|
|
||||||
const patchRequest = async (
|
const patchRequest = async (
|
||||||
body: PartialMetricsSourceConfigurationProperties
|
body: PartialMetricsSourceConfigurationProperties
|
||||||
|
|
|
@ -129,7 +129,7 @@ export default ({ getService }: FtrProviderContext) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
testJobConfigs.forEach((testConfig) => {
|
testJobConfigs.forEach((testConfig) => {
|
||||||
describe(`EvaluateDataFrameAnalytics ${testConfig.jobType}`, async () => {
|
describe(`EvaluateDataFrameAnalytics ${testConfig.jobType}`, () => {
|
||||||
it(`should evaluate ${testConfig.jobType} analytics job`, async () => {
|
it(`should evaluate ${testConfig.jobType} analytics job`, async () => {
|
||||||
const { body, status } = await supertest
|
const { body, status } = await supertest
|
||||||
.post(`/internal/ml/data_frame/_evaluate`)
|
.post(`/internal/ml/data_frame/_evaluate`)
|
||||||
|
|
|
@ -88,7 +88,7 @@ export default ({ getService }: FtrProviderContext) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
testJobConfigs.forEach((testConfig) => {
|
testJobConfigs.forEach((testConfig) => {
|
||||||
describe(`ExplainDataFrameAnalytics ${testConfig.jobType}`, async () => {
|
describe(`ExplainDataFrameAnalytics ${testConfig.jobType}`, () => {
|
||||||
it(`should explain ${testConfig.jobType} analytics job`, async () => {
|
it(`should explain ${testConfig.jobType} analytics job`, async () => {
|
||||||
const { body, status } = await supertest
|
const { body, status } = await supertest
|
||||||
.post(`/internal/ml/data_frame/analytics/_explain`)
|
.post(`/internal/ml/data_frame/analytics/_explain`)
|
||||||
|
|
|
@ -62,7 +62,7 @@ export default ({ getService }: FtrProviderContext) => {
|
||||||
expect(body).to.eql({ [jobIdSpace1]: { exists: true, isGroup: false } });
|
expect(body).to.eql({ [jobIdSpace1]: { exists: true, isGroup: false } });
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should find single job from same space', async () => {
|
it('should find single group from same space', async () => {
|
||||||
const body = await runRequest(idSpace1, 200, [groupSpace1]);
|
const body = await runRequest(idSpace1, 200, [groupSpace1]);
|
||||||
expect(body).to.eql({ [groupSpace1]: { exists: true, isGroup: true } });
|
expect(body).to.eql({ [groupSpace1]: { exists: true, isGroup: true } });
|
||||||
});
|
});
|
||||||
|
|
|
@ -61,9 +61,6 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
await getService('esArchiver').unload(
|
await getService('esArchiver').unload(
|
||||||
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
||||||
);
|
);
|
||||||
});
|
|
||||||
|
|
||||||
after(async function () {
|
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/agent_policies/delete`)
|
.post(`/api/fleet/agent_policies/delete`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
|
|
@ -23,7 +23,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const esArchiver = getService('esArchiver');
|
const esArchiver = getService('esArchiver');
|
||||||
|
|
||||||
describe('certs api', () => {
|
describe('certs api', () => {
|
||||||
describe('empty index', async () => {
|
describe('empty index', () => {
|
||||||
it('returns empty array for no data', async () => {
|
it('returns empty array for no data', async () => {
|
||||||
const apiResponse = await supertest
|
const apiResponse = await supertest
|
||||||
.post(`/internal/search/ese`)
|
.post(`/internal/search/ese`)
|
||||||
|
@ -41,7 +41,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when data is present', async () => {
|
describe('when data is present', () => {
|
||||||
const now = moment();
|
const now = moment();
|
||||||
const cnva = now.add(6, 'months').toISOString();
|
const cnva = now.add(6, 'months').toISOString();
|
||||||
const cnvb = now.subtract(23, 'weeks').toISOString();
|
const cnvb = now.subtract(23, 'weeks').toISOString();
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
const retry = getService('retry');
|
const retry = getService('retry');
|
||||||
|
|
||||||
describe('monitor state scoping', async () => {
|
describe('monitor state scoping', () => {
|
||||||
const numIps = 4; // Must be > 2 for IP uniqueness checks
|
const numIps = 4; // Must be > 2 for IP uniqueness checks
|
||||||
|
|
||||||
let dateRangeStart: string;
|
let dateRangeStart: string;
|
||||||
|
@ -37,7 +37,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
// was available and the query code assumed at least one
|
// was available and the query code assumed at least one
|
||||||
// event would be a summary for each monitor.
|
// event would be a summary for each monitor.
|
||||||
// See https://github.com/elastic/kibana/issues/81950
|
// See https://github.com/elastic/kibana/issues/81950
|
||||||
describe('checks with no summaries', async () => {
|
describe('checks with no summaries', () => {
|
||||||
const testMonitorId = 'scope-test-id';
|
const testMonitorId = 'scope-test-id';
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const es = getService('es');
|
const es = getService('es');
|
||||||
|
@ -55,7 +55,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('query document scoping with mismatched check statuses', async () => {
|
describe('query document scoping with mismatched check statuses', () => {
|
||||||
let checks: any[] = [];
|
let checks: any[] = [];
|
||||||
let nonSummaryIp: string | null = null;
|
let nonSummaryIp: string | null = null;
|
||||||
const testMonitorId = 'scope-test-id';
|
const testMonitorId = 'scope-test-id';
|
||||||
|
@ -104,7 +104,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
expect(nonSummaryRes.summaries.length).to.eql(0);
|
expect(nonSummaryRes.summaries.length).to.eql(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('matching outside of the date range', async () => {
|
describe('matching outside of the date range', () => {
|
||||||
before('set date range to future', () => {
|
before('set date range to future', () => {
|
||||||
const futureDate = new Date();
|
const futureDate = new Date();
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('test status filter', async () => {
|
describe('test status filter', () => {
|
||||||
const upMonitorId = 'up-test-id';
|
const upMonitorId = 'up-test-id';
|
||||||
const downMonitorId = 'down-test-id';
|
const downMonitorId = 'down-test-id';
|
||||||
const mixMonitorId = 'mix-test-id';
|
const mixMonitorId = 'mix-test-id';
|
||||||
|
|
|
@ -17,7 +17,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const dateRangeStart = new Date().toISOString();
|
const dateRangeStart = new Date().toISOString();
|
||||||
const dateRangeEnd = new Date().toISOString();
|
const dateRangeEnd = new Date().toISOString();
|
||||||
|
|
||||||
describe('when no data is present', async () => {
|
describe('when no data is present', () => {
|
||||||
it('returns a null snapshot', async () => {
|
it('returns a null snapshot', async () => {
|
||||||
const apiResponse = await supertest.get(API_URLS.SNAPSHOT_COUNT).query({
|
const apiResponse = await supertest.get(API_URLS.SNAPSHOT_COUNT).query({
|
||||||
dateRangeStart,
|
dateRangeStart,
|
||||||
|
@ -32,7 +32,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when data is present', async () => {
|
describe('when data is present', () => {
|
||||||
const numUpMonitors = 10;
|
const numUpMonitors = 10;
|
||||||
const numDownMonitors = 7;
|
const numDownMonitors = 7;
|
||||||
const numIps = 2;
|
const numIps = 2;
|
||||||
|
@ -42,7 +42,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
[true, false].forEach((includeTimespan: boolean) => {
|
[true, false].forEach((includeTimespan: boolean) => {
|
||||||
[true, false].forEach((includeObserver: boolean) => {
|
[true, false].forEach((includeObserver: boolean) => {
|
||||||
describe(`with timespans=${includeTimespan} and observer=${includeObserver}`, async () => {
|
describe(`with timespans=${includeTimespan} and observer=${includeObserver}`, () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const promises: Array<Promise<any>> = [];
|
const promises: Array<Promise<any>> = [];
|
||||||
|
|
||||||
|
|
|
@ -9,12 +9,12 @@ import { ELASTIC_HTTP_VERSION_HEADER } from '@kbn/core-http-common';
|
||||||
import { FtrProviderContext } from '../ftr_provider_context';
|
import { FtrProviderContext } from '../ftr_provider_context';
|
||||||
|
|
||||||
export async function FleetAndAgents({ getService }: FtrProviderContext) {
|
export async function FleetAndAgents({ getService }: FtrProviderContext) {
|
||||||
// Use elastic/fleet-server service account to execute setup to verify privilege configuration
|
|
||||||
const es = getService('es');
|
const es = getService('es');
|
||||||
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
||||||
|
|
||||||
return {
|
return {
|
||||||
async setup() {
|
async setup() {
|
||||||
|
// Use elastic/fleet-server service account to execute setup to verify privilege configuration
|
||||||
const { token } = await es.security.createServiceToken({
|
const { token } = await es.security.createServiceToken({
|
||||||
namespace: 'elastic',
|
namespace: 'elastic',
|
||||||
service: 'fleet-server',
|
service: 'fleet-server',
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
registry.when.skip(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
registry.when.skip(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/172769
|
// FLAKY: https://github.com/elastic/kibana/issues/172769
|
||||||
describe('error_count', () => {
|
describe('error_count: with data loaded', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
@ -309,7 +309,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
{ config: 'basic', archives: [] },
|
{ config: 'basic', archives: [] },
|
||||||
() => {
|
() => {
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/176975
|
// FLAKY: https://github.com/elastic/kibana/issues/176975
|
||||||
describe('error_count', () => {
|
describe('error_count: with data loaded and using KQL filter', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
|
|
@ -71,7 +71,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
registry.when(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
registry.when(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/176977
|
// FLAKY: https://github.com/elastic/kibana/issues/176977
|
||||||
describe('transaction_error_rate', () => {
|
describe('transaction_error_rate: with data loaded', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
@ -330,7 +330,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
registry.when(`with data loaded and using KQL filter`, { config: 'basic', archives: [] }, () => {
|
registry.when(`with data loaded and using KQL filter`, { config: 'basic', archives: [] }, () => {
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/176983
|
// FLAKY: https://github.com/elastic/kibana/issues/176983
|
||||||
describe('transaction_error_rate', () => {
|
describe('transaction_error_rate: with data loaded and using KQL filter', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateErrorData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
|
|
@ -74,7 +74,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
registry.when(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
registry.when(`with data loaded`, { config: 'basic', archives: [] }, () => {
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/176986
|
// FLAKY: https://github.com/elastic/kibana/issues/176986
|
||||||
// Failing: See https://github.com/elastic/kibana/issues/176989
|
// Failing: See https://github.com/elastic/kibana/issues/176989
|
||||||
describe('transaction_duration', () => {
|
describe('transaction_duration: with data loaded', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateLatencyData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateLatencyData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateLatencyData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateLatencyData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
@ -302,7 +302,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/176989
|
// FLAKY: https://github.com/elastic/kibana/issues/176989
|
||||||
registry.when(`with data loaded and using KQL filter`, { config: 'basic', archives: [] }, () => {
|
registry.when(`with data loaded and using KQL filter`, { config: 'basic', archives: [] }, () => {
|
||||||
describe('transaction_duration', () => {
|
describe('transaction_duration: with data loaded and using KQL filter', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateLatencyData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
await generateLatencyData({ serviceName: 'synth-go', start, end, apmSynthtraceEsClient });
|
||||||
await generateLatencyData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
await generateLatencyData({ serviceName: 'synth-java', start, end, apmSynthtraceEsClient });
|
||||||
|
|
|
@ -89,7 +89,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
await deleteAllServiceDashboard(apmApiClient, 'synth-go', start, end);
|
await deleteAllServiceDashboard(apmApiClient, 'synth-go', start, end);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when data is not loaded', () => {
|
describe('and when data is not loaded', () => {
|
||||||
it('creates a new service dashboard', async () => {
|
it('creates a new service dashboard', async () => {
|
||||||
const serviceDashboard = {
|
const serviceDashboard = {
|
||||||
dashboardSavedObjectId: 'dashboard-saved-object-id',
|
dashboardSavedObjectId: 'dashboard-saved-object-id',
|
||||||
|
|
|
@ -86,6 +86,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/177120
|
// FLAKY: https://github.com/elastic/kibana/issues/177120
|
||||||
registry.when('mappings and APM data exists', { config: 'basic', archives: [] }, () => {
|
registry.when('mappings and APM data exists', { config: 'basic', archives: [] }, () => {
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateApmData(synthtrace);
|
await generateApmData(synthtrace);
|
||||||
});
|
});
|
||||||
|
@ -123,7 +124,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when fetching the data view', async () => {
|
describe('when fetching the data view', () => {
|
||||||
let dataViewResponse: request.Response;
|
let dataViewResponse: request.Response;
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
@ -210,7 +211,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when creating data view in "default" space', async () => {
|
describe('when creating data view in "default" space', () => {
|
||||||
it('can be retrieved from the "default" space', async () => {
|
it('can be retrieved from the "default" space', async () => {
|
||||||
await createDataViewWithWriteUser({ spaceId: 'default' });
|
await createDataViewWithWriteUser({ spaceId: 'default' });
|
||||||
const res = await getDataView({ spaceId: 'default' });
|
const res = await getDataView({ spaceId: 'default' });
|
||||||
|
@ -225,7 +226,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when creating data view in "foo" space', async () => {
|
describe('when creating data view in "foo" space', () => {
|
||||||
it('can be retrieved from the "foo" space', async () => {
|
it('can be retrieved from the "foo" space', async () => {
|
||||||
await createDataViewWithWriteUser({ spaceId: 'foo' });
|
await createDataViewWithWriteUser({ spaceId: 'foo' });
|
||||||
const res = await getDataView({ spaceId: 'foo' });
|
const res = await getDataView({ spaceId: 'foo' });
|
||||||
|
|
|
@ -38,7 +38,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
'Dependency for service when data is not loaded',
|
'Dependency for service when data is not loaded',
|
||||||
{ config: 'basic', archives: [] },
|
{ config: 'basic', archives: [] },
|
||||||
() => {
|
() => {
|
||||||
it('handles empty state', async () => {
|
it('handles empty state #1', async () => {
|
||||||
const { status, body } = await callApi();
|
const { status, body } = await callApi();
|
||||||
|
|
||||||
expect(status).to.be(200);
|
expect(status).to.be(200);
|
||||||
|
@ -76,7 +76,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
'Dependency for service breakdown when data is not loaded',
|
'Dependency for service breakdown when data is not loaded',
|
||||||
{ config: 'basic', archives: [] },
|
{ config: 'basic', archives: [] },
|
||||||
() => {
|
() => {
|
||||||
it('handles empty state', async () => {
|
it('handles empty state #2', async () => {
|
||||||
const { status, body } = await callApi();
|
const { status, body } = await callApi();
|
||||||
|
|
||||||
expect(status).to.be(200);
|
expect(status).to.be(200);
|
||||||
|
@ -87,7 +87,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
|
|
||||||
// FLAKY: https://github.com/elastic/kibana/issues/177125
|
// FLAKY: https://github.com/elastic/kibana/issues/177125
|
||||||
registry.when('Dependency for services breakdown', { config: 'basic', archives: [] }, () => {
|
registry.when('Dependency for services breakdown', { config: 'basic', archives: [] }, () => {
|
||||||
describe('when data is loaded', () => {
|
describe('when data is loaded - breakdown', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateData({ apmSynthtraceEsClient, start, end });
|
await generateData({ apmSynthtraceEsClient, start, end });
|
||||||
});
|
});
|
||||||
|
|
|
@ -100,7 +100,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('transactions', async () => {
|
describe('transactions', () => {
|
||||||
let body: APIReturnType<'GET /internal/apm/diagnostics'>;
|
let body: APIReturnType<'GET /internal/apm/diagnostics'>;
|
||||||
|
|
||||||
const expectedDocCount = 450;
|
const expectedDocCount = 450;
|
||||||
|
|
|
@ -28,7 +28,7 @@ export default function ApiTest(ftrProviderContext: FtrProviderContext) {
|
||||||
await setupFleet(bettertest);
|
await setupFleet(bettertest);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('cloud_apm_migration_enabled', () => {
|
describe('cloud_apm_migration_enabled - basic', () => {
|
||||||
it('should be false when when config not set', async () => {
|
it('should be false when when config not set', async () => {
|
||||||
const { body } = await bettertest({
|
const { body } = await bettertest({
|
||||||
pathname: '/internal/apm/fleet/migration_check',
|
pathname: '/internal/apm/fleet/migration_check',
|
||||||
|
@ -39,6 +39,7 @@ export default function ApiTest(ftrProviderContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
|
|
||||||
registry.when('Fleet migration check - cloud', { config: 'cloud', archives: [] }, () => {
|
registry.when('Fleet migration check - cloud', { config: 'cloud', archives: [] }, () => {
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await setupFleet(bettertest);
|
await setupFleet(bettertest);
|
||||||
});
|
});
|
||||||
|
@ -58,7 +59,7 @@ export default function ApiTest(ftrProviderContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('cloud_apm_migration_enabled', () => {
|
describe('cloud_apm_migration_enabled - cloud', () => {
|
||||||
it('should be true when when config is set', async () => {
|
it('should be true when when config is set', async () => {
|
||||||
const { body } = await bettertest({
|
const { body } = await bettertest({
|
||||||
pathname: '/internal/apm/fleet/migration_check',
|
pathname: '/internal/apm/fleet/migration_check',
|
||||||
|
|
|
@ -76,6 +76,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
serverlessId,
|
serverlessId,
|
||||||
} = config;
|
} = config;
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateData({ start, end, apmSynthtraceEsClient });
|
await generateData({ start, end, apmSynthtraceEsClient });
|
||||||
});
|
});
|
||||||
|
|
|
@ -54,6 +54,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
const { billedDurationMs, pythonServerlessFunctionNames, faasDuration, serverlessId } = config;
|
const { billedDurationMs, pythonServerlessFunctionNames, faasDuration, serverlessId } = config;
|
||||||
const { expectedMemoryUsedRate } = expectedValues;
|
const { expectedMemoryUsedRate } = expectedValues;
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await generateData({ start, end, apmSynthtraceEsClient });
|
await generateData({ start, end, apmSynthtraceEsClient });
|
||||||
});
|
});
|
||||||
|
|
|
@ -50,7 +50,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
|
|
||||||
registry.when('Service Map without data', { config: 'trial', archives: [] }, () => {
|
registry.when('Service Map without data', { config: 'trial', archives: [] }, () => {
|
||||||
describe('/internal/apm/service-map', () => {
|
describe('/internal/apm/service-map without data', () => {
|
||||||
it('returns an empty list', async () => {
|
it('returns an empty list', async () => {
|
||||||
const response = await apmApiClient.readUser({
|
const response = await apmApiClient.readUser({
|
||||||
endpoint: `GET /internal/apm/service-map`,
|
endpoint: `GET /internal/apm/service-map`,
|
||||||
|
@ -68,7 +68,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('/internal/apm/service-map/service/{serviceName}', () => {
|
describe('/internal/apm/service-map/service/{serviceName} without data', () => {
|
||||||
let response: ServiceNodeResponse;
|
let response: ServiceNodeResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
@ -128,7 +128,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
|
|
||||||
registry.when('Service Map with data', { config: 'trial', archives: ['apm_8.0.0'] }, () => {
|
registry.when('Service Map with data', { config: 'trial', archives: ['apm_8.0.0'] }, () => {
|
||||||
describe('/internal/apm/service-map', () => {
|
describe('/internal/apm/service-map with data', () => {
|
||||||
let response: ServiceMapResponse;
|
let response: ServiceMapResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
@ -322,7 +322,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('/internal/apm/service-map/service/{serviceName}', () => {
|
describe('/internal/apm/service-map/service/{serviceName} with data', () => {
|
||||||
let response: ServiceNodeResponse;
|
let response: ServiceNodeResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
@ -371,7 +371,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('/internal/apm/service-map/dependency', () => {
|
describe('/internal/apm/service-map/dependency with data', () => {
|
||||||
let response: DependencyResponse;
|
let response: DependencyResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
@ -416,7 +416,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('With comparison', () => {
|
describe('With comparison', () => {
|
||||||
describe('/internal/apm/service-map/dependency', () => {
|
describe('/internal/apm/service-map/dependency with comparison', () => {
|
||||||
let response: DependencyResponse;
|
let response: DependencyResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
@ -467,7 +467,7 @@ export default function serviceMapsApiTests({ getService }: FtrProviderContext)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('/internal/apm/service-map/service/{serviceName}', () => {
|
describe('/internal/apm/service-map/service/{serviceName} with comparison', () => {
|
||||||
let response: ServiceNodeResponse;
|
let response: ServiceNodeResponse;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
|
|
|
@ -311,7 +311,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
status: number;
|
status: number;
|
||||||
body: APIReturnType<'GET /internal/apm/services/{serviceName}/dependencies'>;
|
body: APIReturnType<'GET /internal/apm/services/{serviceName}/dependencies'>;
|
||||||
};
|
};
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
|
endpoint: `GET /internal/apm/services/{serviceName}/dependencies`,
|
||||||
|
|
|
@ -75,9 +75,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
start,
|
start,
|
||||||
end,
|
end,
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
endpoint:
|
endpoint:
|
||||||
'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
|
'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
|
||||||
|
@ -135,9 +133,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
start,
|
start,
|
||||||
end,
|
end,
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
response = await apmApiClient.readUser({
|
response = await apmApiClient.readUser({
|
||||||
endpoint:
|
endpoint:
|
||||||
'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
|
'GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics',
|
||||||
|
|
|
@ -78,7 +78,7 @@ export default function annotationApiTests({ getService }: FtrProviderContext) {
|
||||||
}
|
}
|
||||||
|
|
||||||
registry.when('Annotations with a basic license', { config: 'basic', archives: [] }, () => {
|
registry.when('Annotations with a basic license', { config: 'basic', archives: [] }, () => {
|
||||||
describe('when creating an annotation', () => {
|
describe('when creating an annotation in basic license', () => {
|
||||||
it('fails with a 403 forbidden', async () => {
|
it('fails with a 403 forbidden', async () => {
|
||||||
const err = await expectToReject<ApmApiError>(() =>
|
const err = await expectToReject<ApmApiError>(() =>
|
||||||
createAnnotation({
|
createAnnotation({
|
||||||
|
@ -101,7 +101,7 @@ export default function annotationApiTests({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
|
|
||||||
registry.when('Annotations with a trial license', { config: 'trial', archives: [] }, () => {
|
registry.when('Annotations with a trial license', { config: 'trial', archives: [] }, () => {
|
||||||
describe('when creating an annotation', () => {
|
describe('when creating an annotation in trial license', () => {
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
const indexExists = await es.indices.exists({ index: DEFAULT_INDEX_NAME });
|
const indexExists = await es.indices.exists({ index: DEFAULT_INDEX_NAME });
|
||||||
if (indexExists) {
|
if (indexExists) {
|
||||||
|
|
|
@ -208,6 +208,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
{ config: 'basic', archives: [archiveName] },
|
{ config: 'basic', archives: [archiveName] },
|
||||||
() => {
|
() => {
|
||||||
let servicesDetailedStatistics: ServicesDetailedStatisticsReturn;
|
let servicesDetailedStatistics: ServicesDetailedStatisticsReturn;
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const response = await apmApiClient.readUser({
|
const response = await apmApiClient.readUser({
|
||||||
endpoint: `POST /internal/apm/services/detailed_statistics`,
|
endpoint: `POST /internal/apm/services/detailed_statistics`,
|
||||||
|
@ -232,13 +233,13 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
expect(response.status).to.be(200);
|
expect(response.status).to.be(200);
|
||||||
servicesDetailedStatistics = response.body;
|
servicesDetailedStatistics = response.body;
|
||||||
});
|
});
|
||||||
it('returns current period data', async () => {
|
it('returns current period data with time comparison', async () => {
|
||||||
expect(servicesDetailedStatistics.currentPeriod).not.to.be.empty();
|
expect(servicesDetailedStatistics.currentPeriod).not.to.be.empty();
|
||||||
});
|
});
|
||||||
it('returns previous period data', async () => {
|
it('returns previous period data', async () => {
|
||||||
expect(servicesDetailedStatistics.previousPeriod).not.to.be.empty();
|
expect(servicesDetailedStatistics.previousPeriod).not.to.be.empty();
|
||||||
});
|
});
|
||||||
it('returns current data for requested service names', () => {
|
it('returns current data for requested service names with time comparison', () => {
|
||||||
serviceNames.forEach((serviceName) => {
|
serviceNames.forEach((serviceName) => {
|
||||||
expect(servicesDetailedStatistics.currentPeriod[serviceName]).not.to.be.empty();
|
expect(servicesDetailedStatistics.currentPeriod[serviceName]).not.to.be.empty();
|
||||||
});
|
});
|
||||||
|
@ -248,7 +249,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
expect(servicesDetailedStatistics.currentPeriod[serviceName]).not.to.be.empty();
|
expect(servicesDetailedStatistics.currentPeriod[serviceName]).not.to.be.empty();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it('returns correct statistics', () => {
|
it('returns correct statistics with time comparison', () => {
|
||||||
const currentPeriodStatistics = servicesDetailedStatistics.currentPeriod[serviceNames[0]];
|
const currentPeriodStatistics = servicesDetailedStatistics.currentPeriod[serviceNames[0]];
|
||||||
const previousPeriodStatistics = servicesDetailedStatistics.previousPeriod[serviceNames[0]];
|
const previousPeriodStatistics = servicesDetailedStatistics.previousPeriod[serviceNames[0]];
|
||||||
|
|
||||||
|
|
|
@ -92,9 +92,6 @@ export default function apiTest({ getService }: FtrProviderContext) {
|
||||||
describe('when there are both v2 and v3 jobs', () => {
|
describe('when there are both v2 and v3 jobs', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await createV2Jobs(['production', 'development']);
|
await createV2Jobs(['production', 'development']);
|
||||||
});
|
|
||||||
|
|
||||||
before(async () => {
|
|
||||||
await createV3Jobs(['production']);
|
await createV3Jobs(['production']);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -243,7 +243,7 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('list source maps', async () => {
|
describe('list source maps', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
const totalCount = 6;
|
const totalCount = 6;
|
||||||
const sourcemapCount = times(totalCount);
|
const sourcemapCount = times(totalCount);
|
||||||
|
|
|
@ -620,10 +620,6 @@ export default function ApiTest({ getService }: FtrProviderContext) {
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
after(() => {
|
|
||||||
return apmSynthtraceEsClient.clean();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -848,7 +848,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('title', async () => {
|
describe('title', () => {
|
||||||
it('400s if the title is too long', async () => {
|
it('400s if the title is too long', async () => {
|
||||||
const longTitle = 'a'.repeat(161);
|
const longTitle = 'a'.repeat(161);
|
||||||
|
|
||||||
|
@ -903,7 +903,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('description', async () => {
|
describe('description', () => {
|
||||||
it('400s if the description is too long', async () => {
|
it('400s if the description is too long', async () => {
|
||||||
const longDescription = 'a'.repeat(30001);
|
const longDescription = 'a'.repeat(30001);
|
||||||
|
|
||||||
|
@ -958,7 +958,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('categories', async () => {
|
describe('categories', () => {
|
||||||
it('400s when a too long category value is passed', async () => {
|
it('400s when a too long category value is passed', async () => {
|
||||||
const postedCase = await createCase(supertest, postCaseReq);
|
const postedCase = await createCase(supertest, postCaseReq);
|
||||||
await updateCase({
|
await updateCase({
|
||||||
|
@ -1011,7 +1011,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('tags', async () => {
|
describe('tags', () => {
|
||||||
it('400s when tags array is too long', async () => {
|
it('400s when tags array is too long', async () => {
|
||||||
const tags = Array(201).fill('foo');
|
const tags = Array(201).fill('foo');
|
||||||
|
|
||||||
|
@ -1085,7 +1085,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('customFields', async () => {
|
describe('customFields', () => {
|
||||||
it('patches a case with missing required custom fields to their default values', async () => {
|
it('patches a case with missing required custom fields to their default values', async () => {
|
||||||
await createConfiguration(
|
await createConfiguration(
|
||||||
supertest,
|
supertest,
|
||||||
|
@ -1449,7 +1449,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('alerts', () => {
|
describe('alerts', () => {
|
||||||
describe('esArchiver', () => {
|
describe('Update', () => {
|
||||||
const defaultSignalsIndex = '.siem-signals-default-000001';
|
const defaultSignalsIndex = '.siem-signals-default-000001';
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
@ -1583,7 +1583,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('esArchiver', () => {
|
describe('No update', () => {
|
||||||
const defaultSignalsIndex = '.siem-signals-default-000001';
|
const defaultSignalsIndex = '.siem-signals-default-000001';
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
|
|
@ -467,7 +467,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
await createCase(supertest, getPostCaseRequest({ description: longDescription }), 400);
|
await createCase(supertest, getPostCaseRequest({ description: longDescription }), 400);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('tags', async () => {
|
describe('tags', () => {
|
||||||
it('400s if the a tag is a whitespace', async () => {
|
it('400s if the a tag is a whitespace', async () => {
|
||||||
const tags = ['test', ' '];
|
const tags = ['test', ' '];
|
||||||
|
|
||||||
|
@ -493,7 +493,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('categories', async () => {
|
describe('categories', () => {
|
||||||
it('400s when the category is too long', async () => {
|
it('400s when the category is too long', async () => {
|
||||||
await createCase(
|
await createCase(
|
||||||
supertest,
|
supertest,
|
||||||
|
@ -525,7 +525,7 @@ export default ({ getService }: FtrProviderContext): void => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('customFields', async () => {
|
describe('customFields', () => {
|
||||||
it('400s when trying to patch with duplicated custom field keys', async () => {
|
it('400s when trying to patch with duplicated custom field keys', async () => {
|
||||||
await createCase(
|
await createCase(
|
||||||
supertest,
|
supertest,
|
||||||
|
|
|
@ -29,7 +29,10 @@ interface SpaceCreate {
|
||||||
export function SpacesServiceProvider({ getService }: FtrProviderContext) {
|
export function SpacesServiceProvider({ getService }: FtrProviderContext) {
|
||||||
const log = getService('log');
|
const log = getService('log');
|
||||||
const config = getService('config');
|
const config = getService('config');
|
||||||
|
const kibanaServer = getService('kibanaServer');
|
||||||
const url = formatUrl(config.get('servers.kibana'));
|
const url = formatUrl(config.get('servers.kibana'));
|
||||||
|
// used often in fleet_api_integration tests
|
||||||
|
const TEST_SPACE_1 = 'test1';
|
||||||
|
|
||||||
const certificateAuthorities = config.get('servers.kibana.certificateAuthorities');
|
const certificateAuthorities = config.get('servers.kibana.certificateAuthorities');
|
||||||
const httpsAgent: Https.Agent | undefined = certificateAuthorities
|
const httpsAgent: Https.Agent | undefined = certificateAuthorities
|
||||||
|
@ -109,5 +112,21 @@ export function SpacesServiceProvider({ getService }: FtrProviderContext) {
|
||||||
pathname: `/s/${spaceId}`,
|
pathname: `/s/${spaceId}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getDefaultTestSpace() {
|
||||||
|
return TEST_SPACE_1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async createTestSpace(id: string, name: string = id) {
|
||||||
|
try {
|
||||||
|
await kibanaServer.spaces.create({
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
log.error(`failed to create space with 'id=${id}': ${err}`);
|
||||||
|
}
|
||||||
|
return id;
|
||||||
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
|
@ -997,8 +997,6 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.expect(200)
|
.expect(200)
|
||||||
);
|
);
|
||||||
await Promise.all(deletedPromises);
|
await Promise.all(deletedPromises);
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
});
|
});
|
||||||
let agentPolicyId: undefined | string;
|
let agentPolicyId: undefined | string;
|
||||||
|
@ -1554,10 +1552,8 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
await createAgentPolicyWithPackagePolicy();
|
await createAgentPolicyWithPackagePolicy();
|
||||||
});
|
|
||||||
before(async () => {
|
|
||||||
const getPkRes = await getPackage('system');
|
|
||||||
|
|
||||||
|
const getPkRes = await getPackage('system');
|
||||||
// we must first force install the system package to override package verification error on policy create
|
// we must first force install the system package to override package verification error on policy create
|
||||||
await epmInstall('system', `${getPkRes.body.item.version}`);
|
await epmInstall('system', `${getPkRes.body.item.version}`);
|
||||||
|
|
||||||
|
|
|
@ -93,9 +93,8 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
after(async () => {
|
after(async () => {
|
||||||
// Wait before agent status is updated
|
// Wait before agent status is updated
|
||||||
return new Promise((resolve) => setTimeout(resolve, AGENT_UPDATE_LAST_CHECKIN_INTERVAL_MS));
|
await new Promise((resolve) => setTimeout(resolve, AGENT_UPDATE_LAST_CHECKIN_INTERVAL_MS));
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/agents');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/agents');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -151,9 +151,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
await setupTestUsers(getService('security'));
|
await setupTestUsers(getService('security'));
|
||||||
});
|
|
||||||
|
|
||||||
before(async () => {
|
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/agent_policies`)
|
.post(`/api/fleet/agent_policies`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
|
|
@ -47,23 +47,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
})
|
})
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/agents');
|
|
||||||
await supertest
|
|
||||||
.delete(`/api/fleet/epm/packages/${FLEET_ELASTIC_AGENT_PACKAGE}/${elasticAgentpkgVersion}`)
|
|
||||||
.set('kbn-xsrf', 'xxxx');
|
|
||||||
await es.transport
|
|
||||||
.request({
|
|
||||||
method: 'DELETE',
|
|
||||||
path: `/_data_stream/metrics-elastic_agent.elastic_agent-default`,
|
|
||||||
})
|
|
||||||
.catch(() => {});
|
|
||||||
});
|
|
||||||
|
|
||||||
const fleetServerVersion = '8.14.0';
|
|
||||||
|
|
||||||
before(async () => {
|
|
||||||
await supertest.post(`/api/fleet/agent_policies`).set('kbn-xsrf', 'kibana').send({
|
await supertest.post(`/api/fleet/agent_policies`).set('kbn-xsrf', 'kibana').send({
|
||||||
name: 'Fleet Server policy 1',
|
name: 'Fleet Server policy 1',
|
||||||
id: 'fleet-server-policy',
|
id: 'fleet-server-policy',
|
||||||
|
@ -90,7 +74,33 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
'fleet-server-policy',
|
'fleet-server-policy',
|
||||||
fleetServerVersion
|
fleetServerVersion
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Make agent 1 upgradeable
|
||||||
|
await es.update({
|
||||||
|
id: 'agent1',
|
||||||
|
refresh: 'wait_for',
|
||||||
|
index: AGENTS_INDEX,
|
||||||
|
doc: {
|
||||||
|
local_metadata: {
|
||||||
|
elastic: { agent: { upgradeable: true, version: '8.13.0' } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
after(async () => {
|
||||||
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/agents');
|
||||||
|
await supertest
|
||||||
|
.delete(`/api/fleet/epm/packages/${FLEET_ELASTIC_AGENT_PACKAGE}/${elasticAgentpkgVersion}`)
|
||||||
|
.set('kbn-xsrf', 'xxxx');
|
||||||
|
await es.transport
|
||||||
|
.request({
|
||||||
|
method: 'DELETE',
|
||||||
|
path: `/_data_stream/metrics-elastic_agent.elastic_agent-default`,
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
const fleetServerVersion = '8.14.0';
|
||||||
|
|
||||||
const READ_SCENARIOS = [
|
const READ_SCENARIOS = [
|
||||||
{
|
{
|
||||||
|
@ -319,19 +329,6 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
afterEach: deleteFileAfterEach,
|
afterEach: deleteFileAfterEach,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
before(async () => {
|
|
||||||
// Make agent 1 upgradeable
|
|
||||||
await es.update({
|
|
||||||
id: 'agent1',
|
|
||||||
refresh: 'wait_for',
|
|
||||||
index: AGENTS_INDEX,
|
|
||||||
doc: {
|
|
||||||
local_metadata: {
|
|
||||||
elastic: { agent: { upgradeable: true, version: '8.13.0' } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
});
|
|
||||||
runPrivilegeTests(ROUTES, supertestWithoutAuth);
|
runPrivilegeTests(ROUTES, supertestWithoutAuth);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -708,9 +708,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
'fleet-server-policy',
|
'fleet-server-policy',
|
||||||
fleetServerVersion
|
fleetServerVersion
|
||||||
);
|
);
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
await es.updateByQuery({
|
await es.updateByQuery({
|
||||||
index: '.fleet-agents',
|
index: '.fleet-agents',
|
||||||
body: {
|
body: {
|
||||||
|
|
|
@ -106,7 +106,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Failing ES Promotion: https://github.com/elastic/kibana/issues/151756
|
// Failing ES Promotion: https://github.com/elastic/kibana/issues/151756
|
||||||
describe('data_streams_list', async () => {
|
describe('data_streams_list', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
|
|
@ -20,16 +20,13 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
const fleetAndAgents = getService('fleetAndAgents');
|
const fleetAndAgents = getService('fleetAndAgents');
|
||||||
|
|
||||||
describe('fleet_download_sources_crud', function () {
|
describe('fleet_download_sources_crud', function () {
|
||||||
|
let defaultDownloadSourceId: string;
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
|
||||||
|
|
||||||
let defaultDownloadSourceId: string;
|
|
||||||
|
|
||||||
before(async function () {
|
|
||||||
const { body: response } = await supertest
|
const { body: response } = await supertest
|
||||||
.get(`/api/fleet/agent_download_sources`)
|
.get(`/api/fleet/agent_download_sources`)
|
||||||
.expect(200);
|
.expect(200);
|
||||||
|
@ -133,7 +130,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
expect(downloadSource.host).to.eql('https://test.co:403');
|
expect(downloadSource.host).to.eql('https://test.co:403');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should allow to update an existing download source', async function () {
|
it('should allow to update is_default for existing download source', async function () {
|
||||||
await supertest
|
await supertest
|
||||||
.put(`/api/fleet/agent_download_sources/${defaultDownloadSourceId}`)
|
.put(`/api/fleet/agent_download_sources/${defaultDownloadSourceId}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
|
|
@ -35,7 +35,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
|
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
describe('GET /fleet/enrollment_api_keys', async () => {
|
describe('GET /fleet/enrollment_api_keys', () => {
|
||||||
it('should list existing api keys', async () => {
|
it('should list existing api keys', async () => {
|
||||||
const { body: apiResponse } = await supertest
|
const { body: apiResponse } = await supertest
|
||||||
.get(`/api/fleet/enrollment_api_keys`)
|
.get(`/api/fleet/enrollment_api_keys`)
|
||||||
|
@ -84,7 +84,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('GET /fleet/enrollment_api_keys/{id}', async () => {
|
describe('GET /fleet/enrollment_api_keys/{id}', () => {
|
||||||
it('should allow to retrieve existing api keys', async () => {
|
it('should allow to retrieve existing api keys', async () => {
|
||||||
const { body: apiResponse } = await supertest
|
const { body: apiResponse } = await supertest
|
||||||
.get(`/api/fleet/enrollment_api_keys/${ENROLLMENT_KEY_ID}`)
|
.get(`/api/fleet/enrollment_api_keys/${ENROLLMENT_KEY_ID}`)
|
||||||
|
@ -101,7 +101,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('DELETE /fleet/enrollment_api_keys/{id}', async () => {
|
describe('DELETE /fleet/enrollment_api_keys/{id}', () => {
|
||||||
let keyId: string;
|
let keyId: string;
|
||||||
let esApiKeyId: string;
|
let esApiKeyId: string;
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -99,7 +99,6 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
before(async () => {});
|
|
||||||
runPrivilegeTests(ROUTES, supertestWithoutAuth);
|
runPrivilegeTests(ROUTES, supertestWithoutAuth);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,14 +27,14 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.send({ force: true });
|
.send({ force: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Bulk get assets', async () => {
|
describe('Bulk get assets', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('installs all assets when installing a package for the first time', async () => {
|
describe('installs all assets when installing a package for the first time', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await installPackage(pkgName, pkgVersion);
|
await installPackage(pkgName, pkgVersion);
|
||||||
|
|
|
@ -22,7 +22,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('bulk package install api', async () => {
|
describe('bulk package install api', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -25,14 +25,14 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('bulk package upgrade api', async () => {
|
describe('bulk package upgrade api', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('bulk package upgrade with a package already installed', async () => {
|
describe('bulk package upgrade with a package already installed', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/epm/packages/multiple_versions/0.1.0`)
|
.post(`/api/fleet/epm/packages/multiple_versions/0.1.0`)
|
||||||
|
@ -108,7 +108,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('bulk upgrade without package already installed', async () => {
|
describe('bulk upgrade without package already installed', () => {
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await deletePackage('multiple_versions', '0.3.0');
|
await deletePackage('multiple_versions', '0.3.0');
|
||||||
});
|
});
|
||||||
|
|
|
@ -27,28 +27,21 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
|
||||||
|
|
||||||
before(async () => {
|
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
.post(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await supertest
|
await supertest
|
||||||
.delete(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
.delete(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
const res = await es.search({
|
const res = await es.search({
|
||||||
index: TEST_INDEX,
|
index: TEST_INDEX,
|
||||||
});
|
});
|
||||||
|
|
|
@ -53,7 +53,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await Promise.all(testPkgs.map((pkg) => uninstallPackage(pkg.name, pkg.version)));
|
await Promise.all(testPkgs.map((pkg) => uninstallPackage(pkg.name, pkg.version)));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('with single integration installation', async () => {
|
describe('with single integration installation', () => {
|
||||||
it('creates global data views for logs-* and metrics-*', async () => {
|
it('creates global data views for logs-* and metrics-*', async () => {
|
||||||
await installPackage(testPkgs[0].name, testPkgs[0].version);
|
await installPackage(testPkgs[0].name, testPkgs[0].version);
|
||||||
const dataViews: any[] = await listDataViews();
|
const dataViews: any[] = await listDataViews();
|
||||||
|
@ -71,7 +71,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('with subsequent integration installation', async () => {
|
describe('with subsequent integration installation', () => {
|
||||||
it('does not recreate managed data views', async () => {
|
it('does not recreate managed data views', async () => {
|
||||||
await installPackage(testPkgs[0].name, testPkgs[0].version);
|
await installPackage(testPkgs[0].name, testPkgs[0].version);
|
||||||
const initialDataViews: any[] = await listDataViews();
|
const initialDataViews: any[] = await listDataViews();
|
||||||
|
|
|
@ -31,7 +31,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.send({ force: true });
|
.send({ force: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('delete and force delete scenarios', async () => {
|
describe('delete and force delete scenarios', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -39,29 +39,21 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
// Use the custom log package to test the fleet final pipeline
|
||||||
|
|
||||||
// Use the custom log package to test the fleet final pipeline
|
|
||||||
before(async () => {
|
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
.post(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await supertest
|
await supertest
|
||||||
.delete(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
.delete(`/api/fleet/epm/packages/log/${LOG_INTEGRATION_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
const res = await es.search({
|
const res = await es.search({
|
||||||
index: TEST_INDEX,
|
index: TEST_INDEX,
|
||||||
});
|
});
|
||||||
|
|
|
@ -122,8 +122,6 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await uninstallPackage(testPkgName, testPkgVersion);
|
await uninstallPackage(testPkgName, testPkgVersion);
|
||||||
await uninstallPackage('experimental', '0.1.0');
|
await uninstallPackage('experimental', '0.1.0');
|
||||||
await uninstallPackage('endpoint', '8.6.1');
|
await uninstallPackage('endpoint', '8.6.1');
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await removeBundledPackages(log);
|
await removeBundledPackages(log);
|
||||||
});
|
});
|
||||||
it('Allows the fetching of installed packages', async () => {
|
it('Allows the fetching of installed packages', async () => {
|
||||||
|
|
|
@ -69,7 +69,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Installs packages from direct upload', async () => {
|
describe('Installs packages from direct upload', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.send({ force: true });
|
.send({ force: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Installing custom integrations', async () => {
|
describe('Installing custom integrations', () => {
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await uninstallPackage();
|
await uninstallPackage();
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('metric_type with dynamic_templates', async () => {
|
describe('metric_type with dynamic_templates', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -39,7 +39,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.set('kbn-xsrf', 'xxxx');
|
.set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('package installation error handling and rollback', async () => {
|
describe('package installation error handling and rollback', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
|
|
||||||
describe('When installing system integration in multiple spaces', async () => {
|
describe('When installing system integration in multiple spaces', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -21,7 +21,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
const deletePackage = async (pkg: string, version: string) =>
|
const deletePackage = async (pkg: string, version: string) =>
|
||||||
supertest.delete(`/api/fleet/epm/packages/${pkg}/${version}`).set('kbn-xsrf', 'xxxx');
|
supertest.delete(`/api/fleet/epm/packages/${pkg}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
|
|
||||||
describe('installs packages that include settings and mappings overrides', async () => {
|
describe('installs packages that include settings and mappings overrides', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -43,7 +43,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
describe('installs and uninstalls all assets', () => {
|
describe('installs and uninstalls all assets', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
describe('installs all assets when installing a package for the first time', async () => {
|
describe('installs all assets when installing a package for the first time', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
|
@ -63,16 +63,17 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('uninstalls all assets when uninstalling a package', async () => {
|
describe('uninstalls all assets when uninstalling a package', () => {
|
||||||
// these tests ensure that uninstall works properly so make sure that the package gets installed and uninstalled
|
// these tests ensure that uninstall works properly so make sure that the package gets installed and uninstalled
|
||||||
// and then we'll test that not artifacts are left behind.
|
// and then we'll test that not artifacts are left behind.
|
||||||
before(() => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (isDockerRegistryEnabledOrSkipped(providerContext)) {
|
||||||
return installPackage(pkgName, pkgVersion);
|
await installPackage(pkgName, pkgVersion);
|
||||||
});
|
}
|
||||||
before(() => {
|
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (isDockerRegistryEnabledOrSkipped(providerContext)) {
|
||||||
return uninstallPackage(pkgName, pkgVersion);
|
await uninstallPackage(pkgName, pkgVersion);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should have uninstalled the index templates', async function () {
|
it('should have uninstalled the index templates', async function () {
|
||||||
|
@ -294,7 +295,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('reinstalls all assets', async () => {
|
describe('reinstalls all assets', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await installPackage(pkgName, pkgVersion);
|
await installPackage(pkgName, pkgVersion);
|
||||||
|
|
|
@ -76,7 +76,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await deleteSpace(testSpaceId);
|
await deleteSpace(testSpaceId);
|
||||||
});
|
});
|
||||||
describe('creates correct tags when installing a package in non default space after installing in default space', async () => {
|
describe('creates correct tags when installing a package in non default space after installing in default space', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await installPackageInSpace('all_assets', pkgVersion, 'default');
|
await installPackageInSpace('all_assets', pkgVersion, 'default');
|
||||||
|
@ -104,7 +104,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Handles presence of legacy tags', async () => {
|
describe('Handles presence of legacy tags', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Handles presence of tags inside integration package', async () => {
|
describe('Handles presence of tags inside integration package', () => {
|
||||||
const testPackage = 'assets_with_tags';
|
const testPackage = 'assets_with_tags';
|
||||||
const testPackageVersion = '0.1.1';
|
const testPackageVersion = '0.1.1';
|
||||||
// tag corresponding to `OnlySomeAssets`
|
// tag corresponding to `OnlySomeAssets`
|
||||||
|
|
|
@ -19,7 +19,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('installing with tsds disabled', async () => {
|
describe('installing with tsds disabled', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -23,7 +23,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${name}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('installing and updating scenarios', async () => {
|
describe('installing and updating scenarios', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -37,14 +37,14 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
return res?._source?.['epm-packages'] as Installation;
|
return res?._source?.['epm-packages'] as Installation;
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Installs verified and unverified packages', async () => {
|
describe('Installs verified and unverified packages', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('verified package', async () => {
|
describe('verified package', () => {
|
||||||
after(async () => {
|
after(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await uninstallPackage('verified', '1.0.0');
|
await uninstallPackage('verified', '1.0.0');
|
||||||
|
@ -56,8 +56,8 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
expect(installationSO?.verification_key_id).equal(TEST_KEY_ID);
|
expect(installationSO?.verification_key_id).equal(TEST_KEY_ID);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('unverified packages', async () => {
|
describe('unverified packages', () => {
|
||||||
describe('unverified package content', async () => {
|
describe('unverified package content', () => {
|
||||||
after(async () => {
|
after(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await uninstallPackage('unverified_content', '1.0.0');
|
await uninstallPackage('unverified_content', '1.0.0');
|
||||||
|
@ -77,7 +77,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
expect(installationSO?.verification_key_id).equal(TEST_KEY_ID);
|
expect(installationSO?.verification_key_id).equal(TEST_KEY_ID);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('package verified with wrong key', async () => {
|
describe('package verified with wrong key', () => {
|
||||||
after(async () => {
|
after(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await uninstallPackage('wrong_key', '1.0.0');
|
await uninstallPackage('wrong_key', '1.0.0');
|
||||||
|
|
|
@ -22,7 +22,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
// because `this` has to point to the Mocha context
|
// because `this` has to point to the Mocha context
|
||||||
// see https://mochajs.org/#arrow-functions
|
// see https://mochajs.org/#arrow-functions
|
||||||
|
|
||||||
describe('EPM - list', async function () {
|
describe('EPM - list', function () {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
const log = getService('log');
|
const log = getService('log');
|
||||||
|
|
||||||
|
@ -32,12 +32,10 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await removeBundledPackages(log);
|
await removeBundledPackages(log);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('list api tests', async () => {
|
describe('list api tests', () => {
|
||||||
it('lists all packages from the registry', async function () {
|
it('lists all packages from the registry', async function () {
|
||||||
const fetchPackageList = async () => {
|
const fetchPackageList = async () => {
|
||||||
const response = await supertest
|
const response = await supertest
|
||||||
|
|
|
@ -22,14 +22,14 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
const pkgName = 'multiple_versions';
|
const pkgName = 'multiple_versions';
|
||||||
const pkgVersion = '0.1.0';
|
const pkgVersion = '0.1.0';
|
||||||
const pkgUpdateVersion = '0.2.0';
|
const pkgUpdateVersion = '0.2.0';
|
||||||
describe('setup checks packages completed install', async () => {
|
describe('setup checks packages completed install', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('package install', async () => {
|
describe('package install', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await supertest
|
await supertest
|
||||||
|
@ -100,7 +100,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('package update', async () => {
|
describe('package update', () => {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
if (!isDockerRegistryEnabledOrSkipped(providerContext)) return;
|
||||||
await supertest
|
await supertest
|
||||||
|
|
|
@ -98,7 +98,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await supertest.delete(`/api/fleet/epm/packages/${pkg}/${version}`).set('kbn-xsrf', 'xxxx');
|
await supertest.delete(`/api/fleet/epm/packages/${pkg}/${version}`).set('kbn-xsrf', 'xxxx');
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Legacy component template removal', async () => {
|
describe('Legacy component template removal', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -27,28 +27,22 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
|
||||||
|
|
||||||
before(async () => {
|
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/epm/packages/${ROUTING_RULES_PKG_NAME}/${ROUTING_RULES_PKG_VERSION}`)
|
.post(`/api/fleet/epm/packages/${ROUTING_RULES_PKG_NAME}/${ROUTING_RULES_PKG_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await supertest
|
await supertest
|
||||||
.delete(`/api/fleet/epm/packages/${ROUTING_RULES_PKG_NAME}/${ROUTING_RULES_PKG_VERSION}`)
|
.delete(`/api/fleet/epm/packages/${ROUTING_RULES_PKG_NAME}/${ROUTING_RULES_PKG_VERSION}`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({ force: true })
|
.send({ force: true })
|
||||||
.expect(200);
|
.expect(200);
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.unload('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
});
|
|
||||||
|
|
||||||
after(async () => {
|
|
||||||
const res = await es.search({
|
const res = await es.search({
|
||||||
index: TEST_REROUTE_INDEX,
|
index: TEST_REROUTE_INDEX,
|
||||||
ignore_unavailable: true,
|
ignore_unavailable: true,
|
||||||
|
|
|
@ -25,7 +25,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.send({ force: 'true' });
|
.send({ force: 'true' });
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('setup api', async () => {
|
describe('setup api', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
@ -37,7 +37,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await uninstallPackage('multiple_versions', '0.3.0');
|
await uninstallPackage('multiple_versions', '0.3.0');
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('setup performs upgrades', async () => {
|
describe('setup performs upgrades', () => {
|
||||||
const oldEndpointVersion = '1.0.0';
|
const oldEndpointVersion = '1.0.0';
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
const url = '/api/fleet/epm/packages/endpoint';
|
const url = '/api/fleet/epm/packages/endpoint';
|
||||||
|
|
|
@ -16,7 +16,7 @@ export default function ({ getService }: FtrProviderContext) {
|
||||||
const es = getService('es');
|
const es = getService('es');
|
||||||
|
|
||||||
// This test was inspired by https://github.com/elastic/kibana/blob/main/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js
|
// This test was inspired by https://github.com/elastic/kibana/blob/main/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js
|
||||||
describe('EPM - template', async () => {
|
describe('EPM - template', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
appContextService.start({
|
appContextService.start({
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
|
|
|
@ -34,7 +34,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.send({ force: true });
|
.send({ force: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('updates all assets when updating a package to a different version', async () => {
|
describe('updates all assets when updating a package to a different version', () => {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { FtrProviderContext } from '../../../api_integration/ftr_provider_contex
|
||||||
export default function ({ getService }: FtrProviderContext) {
|
export default function ({ getService }: FtrProviderContext) {
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
|
|
||||||
describe('EPM - verification key id', async () => {
|
describe('EPM - verification key id', () => {
|
||||||
it('returns the verification key ID ', async () => {
|
it('returns the verification key ID ', async () => {
|
||||||
const res = await supertest
|
const res = await supertest
|
||||||
.get('/api/fleet/epm/verification_key_id')
|
.get('/api/fleet/epm/verification_key_id')
|
||||||
|
|
|
@ -31,21 +31,20 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
return policyDocRes.hits.hits[0]?._source;
|
return policyDocRes.hits.hits[0]?._source;
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('fleet_proxies_crud', async function () {
|
describe('fleet_proxies_crud', function () {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
|
||||||
before(async () => {
|
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
|
||||||
await fleetAndAgents.setup();
|
|
||||||
});
|
|
||||||
|
|
||||||
const existingId = 'test-default-123';
|
const existingId = 'test-default-123';
|
||||||
const fleetServerHostId = 'test-fleetserver-123';
|
const fleetServerHostId = 'test-fleetserver-123';
|
||||||
const policyId = 'test-policy-123';
|
const policyId = 'test-policy-123';
|
||||||
const outputId = 'test-output-123';
|
const outputId = 'test-output-123';
|
||||||
let downloadSourceId: string;
|
let downloadSourceId: string;
|
||||||
|
|
||||||
before(async function () {
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
|
before(async () => {
|
||||||
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
|
await fleetAndAgents.setup();
|
||||||
|
|
||||||
await kibanaServer.savedObjects.clean({
|
await kibanaServer.savedObjects.clean({
|
||||||
types: ['fleet-proxy'],
|
types: ['fleet-proxy'],
|
||||||
});
|
});
|
||||||
|
|
|
@ -16,17 +16,16 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
const kibanaServer = getService('kibanaServer');
|
const kibanaServer = getService('kibanaServer');
|
||||||
const fleetAndAgents = getService('fleetAndAgents');
|
const fleetAndAgents = getService('fleetAndAgents');
|
||||||
|
|
||||||
describe('fleet_fleet_server_hosts_crud', async function () {
|
describe('fleet_fleet_server_hosts_crud', function () {
|
||||||
|
let defaultFleetServerHostId: string;
|
||||||
|
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
|
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
await fleetAndAgents.setup();
|
await fleetAndAgents.setup();
|
||||||
});
|
|
||||||
|
|
||||||
let defaultFleetServerHostId: string;
|
|
||||||
|
|
||||||
before(async function () {
|
|
||||||
await kibanaServer.savedObjects.clean({
|
await kibanaServer.savedObjects.clean({
|
||||||
types: ['fleet-fleet-server-host'],
|
types: ['fleet-fleet-server-host'],
|
||||||
});
|
});
|
||||||
|
|
|
@ -256,10 +256,8 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
await esArchiver.load('x-pack/test/functional/es_archives/fleet/empty_fleet_server');
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
await setupTestUsers(getService('security'));
|
await setupTestUsers(getService('security'));
|
||||||
});
|
|
||||||
|
|
||||||
before('create output', () =>
|
await supertest
|
||||||
supertest
|
|
||||||
.post(`/api/fleet/outputs`)
|
.post(`/api/fleet/outputs`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({
|
.send({
|
||||||
|
@ -268,10 +266,9 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
type: 'elasticsearch',
|
type: 'elasticsearch',
|
||||||
hosts: ['https://test.fr'],
|
hosts: ['https://test.fr'],
|
||||||
})
|
})
|
||||||
.expect(200)
|
.expect(200);
|
||||||
);
|
|
||||||
before('create fleet server hosts', () =>
|
await supertest
|
||||||
supertest
|
|
||||||
.post(`/api/fleet/fleet_server_hosts`)
|
.post(`/api/fleet/fleet_server_hosts`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({
|
.send({
|
||||||
|
@ -280,10 +277,9 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
is_default: false,
|
is_default: false,
|
||||||
host_urls: ['https://test.fr:8080', 'https://test.fr:8081'],
|
host_urls: ['https://test.fr:8080', 'https://test.fr:8081'],
|
||||||
})
|
})
|
||||||
.expect(200)
|
.expect(200);
|
||||||
);
|
|
||||||
before('create proxy', () =>
|
await supertest
|
||||||
supertest
|
|
||||||
.post(`/api/fleet/proxies`)
|
.post(`/api/fleet/proxies`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({
|
.send({
|
||||||
|
@ -291,10 +287,9 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
name: 'Test privileges proxy 1 ' + new Date().toISOString(),
|
name: 'Test privileges proxy 1 ' + new Date().toISOString(),
|
||||||
url: 'https://test.fr:3232',
|
url: 'https://test.fr:3232',
|
||||||
})
|
})
|
||||||
.expect(200)
|
.expect(200);
|
||||||
);
|
|
||||||
before('create download source', () =>
|
await supertest
|
||||||
supertest
|
|
||||||
.post(`/api/fleet/agent_download_sources`)
|
.post(`/api/fleet/agent_download_sources`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
.send({
|
.send({
|
||||||
|
@ -303,8 +298,8 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
host: 'http://test.fr:443',
|
host: 'http://test.fr:443',
|
||||||
is_default: false,
|
is_default: false,
|
||||||
})
|
})
|
||||||
.expect(200)
|
.expect(200);
|
||||||
);
|
});
|
||||||
|
|
||||||
after(async () => {
|
after(async () => {
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
|
|
|
@ -41,6 +41,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async () => {
|
before(async () => {
|
||||||
// we must first force install the fleet_server package to override package verification error on policy create
|
// we must first force install the fleet_server package to override package verification error on policy create
|
||||||
// https://github.com/elastic/kibana/issues/137450
|
// https://github.com/elastic/kibana/issues/137450
|
||||||
|
|
|
@ -38,8 +38,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
name: 'test standalone agent',
|
name: 'test standalone agent',
|
||||||
});
|
});
|
||||||
apiKey = `${res.id}:${res.api_key}`;
|
apiKey = `${res.id}:${res.api_key}`;
|
||||||
});
|
|
||||||
before(async () => {
|
|
||||||
agentImage = `docker.elastic.co/beats/elastic-agent:${await getLatestVersion()}`;
|
agentImage = `docker.elastic.co/beats/elastic-agent:${await getLatestVersion()}`;
|
||||||
log.info(agentImage);
|
log.info(agentImage);
|
||||||
await execa('docker', ['pull', agentImage]);
|
await execa('docker', ['pull', agentImage]);
|
||||||
|
|
|
@ -196,7 +196,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
|
|
||||||
const TEST_SPACE_ID = 'testspaceoutputs';
|
const TEST_SPACE_ID = 'testspaceoutputs';
|
||||||
|
|
||||||
describe('fleet_outputs_crud', async function () {
|
describe('fleet_outputs_crud', function () {
|
||||||
skipIfNoDockerRegistry(providerContext);
|
skipIfNoDockerRegistry(providerContext);
|
||||||
before(async () => {
|
before(async () => {
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
|
@ -209,6 +209,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
let fleetServerPolicyId: string;
|
let fleetServerPolicyId: string;
|
||||||
let fleetServerPolicyWithCustomOutputId: string;
|
let fleetServerPolicyWithCustomOutputId: string;
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-sibling-hooks
|
||||||
before(async function () {
|
before(async function () {
|
||||||
await enableSecrets(providerContext);
|
await enableSecrets(providerContext);
|
||||||
await enableOutputSecrets();
|
await enableOutputSecrets();
|
||||||
|
@ -1352,6 +1353,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-identical-title
|
||||||
it('should discard the shipper values when shipper is disabled', async function () {
|
it('should discard the shipper values when shipper is disabled', async function () {
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/outputs`)
|
.post(`/api/fleet/outputs`)
|
||||||
|
@ -1701,6 +1703,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.expect(400);
|
.expect(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// eslint-disable-next-line mocha/no-identical-title
|
||||||
it('should return a 400 when deleting a default output ', async function () {
|
it('should return a 400 when deleting a default output ', async function () {
|
||||||
await supertest
|
await supertest
|
||||||
.delete(`/api/fleet/outputs/${defaultMonitoringOutputId}`)
|
.delete(`/api/fleet/outputs/${defaultMonitoringOutputId}`)
|
||||||
|
|
|
@ -15,7 +15,7 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
const supertest = getService('supertest');
|
const supertest = getService('supertest');
|
||||||
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
const supertestWithoutAuth = getService('supertestWithoutAuth');
|
||||||
|
|
||||||
describe('fleet_output_logstash_api_keys', async function () {
|
describe('fleet_output_logstash_api_keys', function () {
|
||||||
describe('POST /logstash_api_keys', () => {
|
describe('POST /logstash_api_keys', () => {
|
||||||
it('should allow to create an api key with the right permissions', async () => {
|
it('should allow to create an api key with the right permissions', async () => {
|
||||||
const { body: apiKeyRes } = await supertest
|
const { body: apiKeyRes } = await supertest
|
||||||
|
|
|
@ -33,15 +33,6 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
await getService('esArchiver').load(
|
await getService('esArchiver').load(
|
||||||
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
||||||
);
|
);
|
||||||
});
|
|
||||||
after(async () => {
|
|
||||||
await kibanaServer.savedObjects.cleanStandardList();
|
|
||||||
await getService('esArchiver').unload(
|
|
||||||
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
before(async function () {
|
|
||||||
const { body: agentPolicyResponse } = await supertest
|
const { body: agentPolicyResponse } = await supertest
|
||||||
.post(`/api/fleet/agent_policies`)
|
.post(`/api/fleet/agent_policies`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
@ -62,8 +53,11 @@ export default function (providerContext: FtrProviderContext) {
|
||||||
.expect(200);
|
.expect(200);
|
||||||
agentPolicyId2 = agentPolicyResponse2.item.id;
|
agentPolicyId2 = agentPolicyResponse2.item.id;
|
||||||
});
|
});
|
||||||
|
after(async () => {
|
||||||
after(async function () {
|
await kibanaServer.savedObjects.cleanStandardList();
|
||||||
|
await getService('esArchiver').unload(
|
||||||
|
'x-pack/test/functional/es_archives/fleet/empty_fleet_server'
|
||||||
|
);
|
||||||
await supertest
|
await supertest
|
||||||
.post(`/api/fleet/agent_policies/delete`)
|
.post(`/api/fleet/agent_policies/delete`)
|
||||||
.set('kbn-xsrf', 'xxxx')
|
.set('kbn-xsrf', 'xxxx')
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue