[Security solution] [Endpoint] Split endpoint FTR config (#159014)

## Summary

Split our current FTR config in two so each one runs in a separated
config.
Moved all endpoint config related FTR tests to a new FTR config.


### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
David Sánchez 2023-06-08 14:54:08 +02:00 committed by GitHub
parent 3bb4edf4ce
commit 414e96bef3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 114 additions and 20 deletions

View file

@ -373,7 +373,8 @@ enabled:
- x-pack/test/security_functional/user_profiles.config.ts
- x-pack/test/security_functional/expired_session.config.ts
- x-pack/test/security_solution_endpoint_api_int/config.ts
- x-pack/test/security_solution_endpoint/config.ts
- x-pack/test/security_solution_endpoint/endpoint.config.ts
- x-pack/test/security_solution_endpoint/integrations.config.ts
- x-pack/test/session_view/basic/config.ts
- x-pack/test/spaces_api_integration/security_and_spaces/config_basic.ts
- x-pack/test/spaces_api_integration/security_and_spaces/copy_to_space_config_basic.ts

View file

@ -35,13 +35,8 @@ export default function (providerContext: FtrProviderContext) {
await endpointTestResources.installOrUpgradeEndpointFleetPackage();
});
loadTestFile(require.resolve('./endpoint_list'));
loadTestFile(require.resolve('./policy_list'));
loadTestFile(require.resolve('./policy_details'));
loadTestFile(require.resolve('./endpoint_telemetry'));
loadTestFile(require.resolve('./trusted_apps_list'));
loadTestFile(require.resolve('./fleet_integrations'));
loadTestFile(require.resolve('./endpoint_permissions'));
loadTestFile(require.resolve('./artifact_entries_list'));
loadTestFile(require.resolve('./responder'));
loadTestFile(require.resolve('./endpoint_solution_integrations'));
});

View file

@ -0,0 +1,43 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { getRegistryUrl as getRegistryUrlFromIngest } from '@kbn/fleet-plugin/server';
import { FtrProviderContext } from '../../ftr_provider_context';
import {
isRegistryEnabled,
getRegistryUrlFromTestEnv,
} from '../../../security_solution_endpoint_api_int/registry';
export default function (providerContext: FtrProviderContext) {
const { loadTestFile, getService } = providerContext;
describe('endpoint', function () {
const ingestManager = getService('ingestManager');
const log = getService('log');
const endpointTestResources = getService('endpointTestResources');
if (!isRegistryEnabled()) {
log.warning('These tests are being run with an external package registry');
}
const registryUrl = getRegistryUrlFromTestEnv() ?? getRegistryUrlFromIngest();
log.info(`Package registry URL for tests: ${registryUrl}`);
before(async () => {
log.info('calling Fleet setup');
await ingestManager.setup();
log.info('installing/upgrading Endpoint fleet package');
await endpointTestResources.installOrUpgradeEndpointFleetPackage();
});
loadTestFile(require.resolve('./policy_list'));
loadTestFile(require.resolve('./policy_details'));
loadTestFile(require.resolve('./trusted_apps_list'));
loadTestFile(require.resolve('./fleet_integrations'));
loadTestFile(require.resolve('./artifact_entries_list'));
});
}

View file

@ -49,8 +49,6 @@ export default async function ({ readConfigFile }: FtrConfigProviderContext) {
// always install Endpoint package by default when Fleet sets up
`--xpack.fleet.packages.0.name=endpoint`,
`--xpack.fleet.packages.0.version=latest`,
// set the packagerTaskInterval to 5s in order to speed up test executions when checking fleet artifacts
'--xpack.securitySolution.packagerTaskInterval=5s',
// this will be removed in 8.7 when the file upload feature is released
`--xpack.fleet.enableExperimental.0=diagnosticFileUploadEnabled`,
],

View file

@ -0,0 +1,57 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { resolve } from 'path';
import { FtrConfigProviderContext } from '@kbn/test';
import { pageObjects } from './page_objects';
import { services } from './services';
import {
getRegistryUrlAsArray,
createEndpointDockerConfig,
} from '../security_solution_endpoint_api_int/registry';
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
const xpackFunctionalConfig = await readConfigFile(
require.resolve('../functional/config.base.js')
);
return {
...xpackFunctionalConfig.getAll(),
pageObjects,
testFiles: [resolve(__dirname, './apps/integrations')],
dockerServers: createEndpointDockerConfig(),
junit: {
reportName: 'X-Pack Endpoint Integrations Functional Tests',
},
services,
apps: {
...xpackFunctionalConfig.get('apps'),
['securitySolutionManagement']: {
pathname: '/app/security/administration',
},
['security']: {
pathname: '/app/security',
},
},
kbnTestServer: {
...xpackFunctionalConfig.get('kbnTestServer'),
serverArgs: [
...xpackFunctionalConfig.get('kbnTestServer.serverArgs'),
// if you return an empty string here the kibana server will not start properly but an empty array works
...getRegistryUrlAsArray(),
// always install Endpoint package by default when Fleet sets up
`--xpack.fleet.packages.0.name=endpoint`,
`--xpack.fleet.packages.0.version=latest`,
// set the packagerTaskInterval to 5s in order to speed up test executions when checking fleet artifacts
'--xpack.securitySolution.packagerTaskInterval=5s',
],
},
layout: {
fixedHeaderHeight: 200,
},
};
}

View file

@ -7,28 +7,28 @@
import { pageObjects as xpackFunctionalPageObjects } from '../../functional/page_objects';
import { EndpointPageProvider } from './endpoint_page';
import { EndpointPolicyPageProvider } from './policy_page';
import { TrustedAppsPageProvider } from './trusted_apps_page';
import { EndpointPageUtils } from './page_utils';
import { IngestManagerCreatePackagePolicy } from './ingest_manager_create_package_policy_page';
import { FleetIntegrations } from './fleet_integrations_page';
import { DetectionsPageObject } from '../../security_solution_ftr/page_objects/detections';
import { HostsPageObject } from '../../security_solution_ftr/page_objects/hosts';
import { ArtifactEntriesListPageProvider } from './artifact_entries_list_page';
import { EndpointResponderPageObjects } from './endpoint_responder';
import { TimelinePageObject } from '../../security_solution_ftr/page_objects/timeline';
import { EndpointPolicyPageProvider } from './policy_page';
import { TrustedAppsPageProvider } from './trusted_apps_page';
import { FleetIntegrations } from './fleet_integrations_page';
import { ArtifactEntriesListPageProvider } from './artifact_entries_list_page';
export const pageObjects = {
...xpackFunctionalPageObjects,
endpoint: EndpointPageProvider,
policy: EndpointPolicyPageProvider,
trustedApps: TrustedAppsPageProvider,
artifactEntriesList: ArtifactEntriesListPageProvider,
endpointPageUtils: EndpointPageUtils,
ingestManagerCreatePackagePolicy: IngestManagerCreatePackagePolicy,
fleetIntegrations: FleetIntegrations,
detections: DetectionsPageObject,
timeline: TimelinePageObject,
hosts: HostsPageObject,
responder: EndpointResponderPageObjects,
policy: EndpointPolicyPageProvider,
trustedApps: TrustedAppsPageProvider,
artifactEntriesList: ArtifactEntriesListPageProvider,
fleetIntegrations: FleetIntegrations,
};

View file

@ -6,21 +6,21 @@
*/
import { services as xPackFunctionalServices } from '../../functional/services';
import { EndpointPolicyTestResourcesProvider } from './endpoint_policy';
import { IngestManagerProvider } from '../../common/services/ingest_manager';
import { EndpointTelemetryTestResourcesProvider } from './endpoint_telemetry';
import { EndpointTestResources } from './endpoint';
import { EndpointArtifactsTestResources } from './endpoint_artifacts';
import { TimelineTestService } from '../../security_solution_ftr/services/timeline';
import { DetectionsTestService } from '../../security_solution_ftr/services/detections';
import { EndpointPolicyTestResourcesProvider } from './endpoint_policy';
import { EndpointArtifactsTestResources } from './endpoint_artifacts';
export const services = {
...xPackFunctionalServices,
endpointTestResources: EndpointTestResources,
endpointArtifactTestResources: EndpointArtifactsTestResources,
policyTestResources: EndpointPolicyTestResourcesProvider,
telemetryTestResources: EndpointTelemetryTestResourcesProvider,
ingestManager: IngestManagerProvider,
timeline: TimelineTestService,
detections: DetectionsTestService,
endpointArtifactTestResources: EndpointArtifactsTestResources,
policyTestResources: EndpointPolicyTestResourcesProvider,
};