Skip to content

Commit

Permalink
Move test to dockerized integation tests directory; move existing epm…
Browse files Browse the repository at this point in the history
… tests to their own directory
  • Loading branch information
jen-huang committed Jul 2, 2020
1 parent e88f80b commit 7da46ac
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 47 deletions.
1 change: 0 additions & 1 deletion x-pack/test/api_integration/apis/ingest_manager/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@
export default function loadTests({ loadTestFile }) {
describe('Ingest Manager Endpoints', () => {
loadTestFile(require.resolve('./agent_config'));
loadTestFile(require.resolve('./package_config'));
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
* you may not use this file except in compliance with the Elastic License.
*/

import { FtrProviderContext } from '../../api_integration/ftr_provider_context';
import { warnAndSkipTest } from '../helpers';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';
import { warnAndSkipTest } from '../../helpers';

export default function ({ getService }: FtrProviderContext) {
const log = getService('log');
const supertest = getService('supertest');
const dockerServers = getService('dockerServers');

const server = dockerServers.get('registry');
describe('package file', () => {
describe('EPM - package file', () => {
it('fetches a .png screenshot image', async function () {
if (server.enabled) {
await supertest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
*/

import expect from '@kbn/expect';
import { FtrProviderContext } from '../../api_integration/ftr_provider_context';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';

export default function ({ getService }: FtrProviderContext) {
describe('ilm', () => {
describe('EPM - ilm', () => {
it('setup policy', async () => {
const policyName = 'foo';
const es = getService('es');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
*/

import expect from '@kbn/expect';
import { FtrProviderContext } from '../../api_integration/ftr_provider_context';
import { warnAndSkipTest } from '../helpers';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';
import { warnAndSkipTest } from '../../helpers';

export default function ({ getService }: FtrProviderContext) {
const log = getService('log');
Expand All @@ -18,7 +18,7 @@ export default function ({ getService }: FtrProviderContext) {
// because `this` has to point to the Mocha context
// see https://mochajs.org/#arrow-functions

describe('list', async function () {
describe('EPM - list', async function () {
it('lists all packages from the registry', async function () {
if (server.enabled) {
const fetchPackageList = async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
*/

import expect from '@kbn/expect';
import { FtrProviderContext } from '../../api_integration/ftr_provider_context';
import { getTemplate } from '../../../plugins/ingest_manager/server/services/epm/elasticsearch/template/template';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';
import { getTemplate } from '../../../../plugins/ingest_manager/server/services/epm/elasticsearch/template/template';

export default function ({ getService }: FtrProviderContext) {
const indexPattern = 'foo';
Expand All @@ -20,7 +20,7 @@ export default function ({ getService }: FtrProviderContext) {
},
};
// This test was inspired by https://github.com/elastic/kibana/blob/master/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js
describe('template', async () => {
describe('EPM - template', async () => {
it('can be loaded', async () => {
const template = getTemplate({
type: 'logs',
Expand Down
15 changes: 10 additions & 5 deletions x-pack/test/ingest_manager_api_integration/apis/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,16 @@
*/

export default function ({ loadTestFile }) {
describe('EPM Endpoints', function () {
describe('Ingest Manager Endpoints', function () {
this.tags('ciGroup7');
loadTestFile(require.resolve('./list'));
loadTestFile(require.resolve('./file'));
//loadTestFile(require.resolve('./template'));
loadTestFile(require.resolve('./ilm'));

// EPM
loadTestFile(require.resolve('./epm/list'));
loadTestFile(require.resolve('./epm/list'));
//loadTestFile(require.resolve('./epm/template'));
loadTestFile(require.resolve('./epm/ilm'));

// Package configs
loadTestFile(require.resolve('./package_config/create'));
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,81 +5,104 @@
*/

import expect from '@kbn/expect';
import { FtrProviderContext } from '../../ftr_provider_context';
import { FtrProviderContext } from '../../../api_integration/ftr_provider_context';
import { warnAndSkipTest } from '../../helpers';

export default function ({ getService }: FtrProviderContext) {
const log = getService('log');
const supertest = getService('supertest');
const esArchiver = getService('esArchiver');
const dockerServers = getService('dockerServers');

describe('ingest_manager_package_configs', () => {
describe('POST /api/ingest_manager/package_configs', () => {
before(async () => {
await esArchiver.loadIfNeeded('fleet/agents');
});
after(async () => {
await esArchiver.unload('fleet/agents');
});
const server = dockerServers.get('registry');
// use function () {} and not () => {} here
// because `this` has to point to the Mocha context
// see https://mochajs.org/#arrow-functions

it('should work with valid values', async () => {
describe('Package Config - create', async function () {
let agentConfigId: string;

before(async function () {
const { body: agentConfigResponse } = await supertest
.post(`/api/ingest_manager/agent_configs`)
.set('kbn-xsrf', 'xxxx')
.send({
name: 'Test config',
namespace: 'default',
});
agentConfigId = agentConfigResponse.item.id;
});

it('should work with valid values', async function () {
if (server.enabled) {
const { body: apiResponse } = await supertest
.post(`/api/ingest_manager/package_configs`)
.set('kbn-xsrf', 'xxxx')
.send({
name: 'log-1',
name: 'filetest-1',
description: '',
namespace: 'default',
config_id: 'config1',
config_id: agentConfigId,
enabled: true,
output_id: '',
inputs: [],
package: {
name: 'log',
title: 'Customs logs',
name: 'filetest',
title: 'For File Tests',
version: '0.1.0',
},
})
.expect(200);

expect(apiResponse.success).to.be(true);
});
} else {
warnAndSkipTest(this, log);
}
});

it('should return a 400 with an invalid namespace', async () => {
it('should return a 400 with an invalid namespace', async function () {
if (server.enabled) {
await supertest
.post(`/api/ingest_manager/package_configs`)
.set('kbn-xsrf', 'xxxx')
.send({
name: 'log-1',
name: 'filetest-1',
description: '',
namespace: '',
config_id: 'config1',
config_id: agentConfigId,
enabled: true,
output_id: '',
inputs: [],
package: {
name: 'log',
title: 'Customs logs',
name: 'filetest',
title: 'For File Tests',
version: '0.1.0',
},
})
.expect(400);
});
} else {
warnAndSkipTest(this, log);
}
});

it('should not allow multiple limited packages on the same agent config', async () => {
// This test is disabled as the docker image used does not contain necessary package registry changes
// to support this functionality
it.skip('should not allow multiple limited packages on the same agent config', async function () {
if (server.enabled) {
await supertest
.post(`/api/ingest_manager/package_configs`)
.set('kbn-xsrf', 'xxxx')
.send({
name: 'endpoint-1',
description: '',
namespace: 'default',
config_id: 'config1',
config_id: agentConfigId,
enabled: true,
output_id: '',
inputs: [],
package: {
name: 'endpoint',
title: 'Elastic Endpoint',
version: '0.8.0',
title: 'Endpoint',
version: '0.5.0',
},
})
.expect(200);
Expand All @@ -90,18 +113,20 @@ export default function ({ getService }: FtrProviderContext) {
name: 'endpoint-2',
description: '',
namespace: 'default',
config_id: 'config1',
config_id: agentConfigId,
enabled: true,
output_id: '',
inputs: [],
package: {
name: 'endpoint',
title: 'Elastic Endpoint',
version: '0.8.0',
title: 'Endpoint',
version: '0.5.0',
},
})
.expect(500);
});
} else {
warnAndSkipTest(this, log);
}
});
});
}

0 comments on commit 7da46ac

Please sign in to comment.