diff --git a/x-pack/plugins/ingest_manager/public/plugin.ts b/x-pack/plugins/ingest_manager/public/plugin.ts index 144c157d0198b7..e63904e07d8c77 100644 --- a/x-pack/plugins/ingest_manager/public/plugin.ts +++ b/x-pack/plugins/ingest_manager/public/plugin.ts @@ -75,19 +75,27 @@ export class IngestManagerPlugin } public async start(core: CoreStart): Promise { - const permissionsResponse = await core.http.get( - appRoutesService.getCheckPermissionsPath() - ); - if (permissionsResponse.success) { - const successPromise = core.http - .post(setupRouteService.getSetupPath()) - .then(({ isInitialized }: { isInitialized: boolean }) => Promise.resolve(isInitialized)) - .catch(Promise.reject); + let successPromise = Promise.resolve(false); + try { + const permissionsResponse = await core.http.get( + appRoutesService.getCheckPermissionsPath() + ); - return { success: successPromise, registerDatasource }; - } else { + if (permissionsResponse.success) { + successPromise = core.http + .post(setupRouteService.getSetupPath()) + .then(({ isInitialized }: { isInitialized: boolean }) => Promise.resolve(isInitialized)); + } else { + successPromise = Promise.reject(new Error(permissionsResponse.error)); + } + + return { + success: successPromise, + registerDatasource, + }; + } catch (error) { return { - success: Promise.reject(new Error(permissionsResponse.error)), + success: Promise.reject(error), registerDatasource, }; } diff --git a/x-pack/test/api_integration/apis/endpoint/policy.ts b/x-pack/test/api_integration/apis/endpoint/policy.ts index 711762cc20abbd..eac05852a7b8f9 100644 --- a/x-pack/test/api_integration/apis/endpoint/policy.ts +++ b/x-pack/test/api_integration/apis/endpoint/policy.ts @@ -13,7 +13,11 @@ export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); describe('Endpoint policy api', () => { describe('GET /api/endpoint/policy_response', () => { - before(async () => await esArchiver.load('endpoint/policy', { useCreate: true })); + before(async () => { + const ingestManager = getService('ingestManager'); + await ingestManager.setup(); + await esArchiver.load('endpoint/policy', { useCreate: true }); + }); // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need // to do it manually diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts index 199d138d1c450a..d94ee260b27820 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/index.ts @@ -5,10 +5,13 @@ */ import { FtrProviderContext } from '../../ftr_provider_context'; -export default function ({ loadTestFile }: FtrProviderContext) { +export default function ({ loadTestFile, getService }: FtrProviderContext) { describe('endpoint', function () { this.tags('ciGroup7'); - + const ingestManager = getService('ingestManager'); + before(async () => { + await ingestManager.setup(); + }); loadTestFile(require.resolve('./endpoint_list')); loadTestFile(require.resolve('./policy_list')); loadTestFile(require.resolve('./policy_details')); diff --git a/x-pack/test/security_solution_endpoint/services/index.ts b/x-pack/test/security_solution_endpoint/services/index.ts index 0247d9b00968a1..90b4bc0b4d0457 100644 --- a/x-pack/test/security_solution_endpoint/services/index.ts +++ b/x-pack/test/security_solution_endpoint/services/index.ts @@ -4,10 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ +import { services as apiIntegrationServices } from '../../api_integration/services'; import { services as xPackFunctionalServices } from '../../functional/services'; import { EndpointPolicyTestResourcesProvider } from './endpoint_policy'; export const services = { ...xPackFunctionalServices, + ingestManager: apiIntegrationServices.ingestManager, policyTestResources: EndpointPolicyTestResourcesProvider, };