Skip to content

Commit

Permalink
Add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bhapas committed Jun 28, 2024
1 parent 17d07e7 commit a1c2c9d
Show file tree
Hide file tree
Showing 5 changed files with 146 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ export const createMockClients = () => {
core,
clusterClient: core.elasticsearch.client,
savedObjectsClient: core.savedObjects.client,
config: createMockConfig(),
appClient: createAppClientMock(),
};
};

Expand All @@ -31,10 +29,6 @@ const convertRequestContextMock = <T extends Record<string, unknown>>(context: T
return coreMock.createCustomRequestHandlerContext(context);
};

const createMockConfig = () => ({});

const createAppClientMock = () => ({});

const mockLlm = new FakeLLM({
response: JSON.stringify({}, null, 2),
}) as unknown as ActionsClientChatOpenAI | ActionsClientSimpleChatModel;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* 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 { serverMock } from '../__mocks__/mock_server';
import { requestMock } from '../__mocks__/request';
import { requestContextMock } from '../__mocks__/request_context';
import { INTEGRATION_BUILDER_PATH } from '../../common';
import { registerIntegrationBuilderRoutes } from './build_integration_routes';

jest.mock('../integration_builder', () => {
return {
buildPackage: jest.fn().mockReturnValue(Buffer.from('{"test" : "test"}')),
};
});

describe('registerIntegrationBuilderRoutes', () => {
let server: ReturnType<typeof serverMock.create>;
let { context } = requestContextMock.createTools();

const req = requestMock.create({
method: 'post',
path: INTEGRATION_BUILDER_PATH,
body: {
integration: {
name: 'Test',
title: 'Title',
description: 'Description',
dataStreams: [
{
name: 'dsName',
title: 'dsTitle',
description: 'dsDesc',
inputTypes: ['filestream'],
rawSamples: ['{"ei":0}'],
pipeline: {
processors: [{ script: { source: {} } }],
},
docs: [],
},
],
},
},
});

beforeEach(() => {
jest.clearAllMocks();
server = serverMock.create();
({ context } = requestContextMock.createTools());
registerIntegrationBuilderRoutes(server.router);
});

it('Runs route and gets CheckPipelineResponse', async () => {
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.body).toEqual({ test: 'test' });
expect(response.status).toEqual(200);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ import { registerCategorizationRoutes } from './categorization_routes';
const mockResult = jest.fn().mockResolvedValue({
results: {
pipeline: {
processors: [],
processors: [{ script: { source: {} } }],
},
docs: {},
docs: [],
},
});

jest.mock('../graphs/ecs', () => {
jest.mock('../graphs/categorization', () => {
return {
getEcsGraph: jest.fn().mockResolvedValue({
getCategorizationGraph: jest.fn().mockResolvedValue({
invoke: () => mockResult(),
}),
};
Expand Down Expand Up @@ -54,7 +54,7 @@ describe('registerCategorizationRoute', () => {
it('Runs route and gets CategorizationResponse', async () => {
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.body).toEqual({
results: { docs: {}, pipeline: { processors: [{ script: { source: {} } }] } },
results: { docs: [], pipeline: { processors: [{ script: { source: {} } }] } },
});
expect(response.status).toEqual(200);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,32 @@ import { requestContextMock } from '../__mocks__/request_context';
import { CHECK_PIPELINE_PATH } from '../../common';
import { registerPipelineRoutes } from './pipeline_routes';

const mockResult = jest.fn().mockResolvedValue({
results: {
pipeline: {
processors: [
{
script: {
source: {},
},
},
],
const errors: object[] = [];

const pipelineResults = [
{
script: {
source: {},
},
mapping: {},
},
});
];

jest.mock('../graphs/ecs', () => {
jest.mock('../util/pipeline', () => {
return {
getEcsGraph: jest.fn().mockResolvedValue({
invoke: () => mockResult(),
}),
testPipeline: jest.fn().mockReturnValue({ errors, pipelineResults }),
};
});

describe('registerEcsRoute', () => {
describe('registerPipelineRoutes', () => {
let server: ReturnType<typeof serverMock.create>;
let { context } = requestContextMock.createTools();

const req = requestMock.create({
method: 'post',
path: CHECK_PIPELINE_PATH,
body: {
packageName: 'pack',
dataStreamName: 'testStream',
rawSamples: ['{"ei":0}'],
connectorId: 'testConnector',
pipeline: { processors: [{ script: { source: {} } }] },
},
});

Expand All @@ -56,17 +47,11 @@ describe('registerEcsRoute', () => {
registerPipelineRoutes(server.router);
});

it('Runs route and gets EcsMappingResponse', async () => {
it('Runs route and gets CheckPipelineResponse', async () => {
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.body).toEqual({
results: { mapping: {}, pipeline: { processors: [{ script: { source: {} } }] } },
results: { docs: [{ script: { source: {} } }] },
});
expect(response.status).toEqual(200);
});

it('Runs route with badRequest', async () => {
mockResult.mockResolvedValueOnce({});
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.status).toEqual(400);
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/*
* 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 { serverMock } from '../__mocks__/mock_server';
import { requestMock } from '../__mocks__/request';
import { requestContextMock } from '../__mocks__/request_context';
import { RELATED_GRAPH_PATH } from '../../common';
import { registerRelatedRoutes } from './related_routes';

const mockResult = jest.fn().mockResolvedValue({
results: {
pipeline: {
processors: [{ script: { source: {} } }],
},
docs: [],
},
});

jest.mock('../graphs/related', () => {
return {
getRelatedGraph: jest.fn().mockResolvedValue({
invoke: () => mockResult(),
}),
};
});

describe('registerRelatedRoutes', () => {
let server: ReturnType<typeof serverMock.create>;
let { context } = requestContextMock.createTools();

const req = requestMock.create({
method: 'post',
path: RELATED_GRAPH_PATH,
body: {
packageName: 'pack',
dataStreamName: 'testStream',
rawSamples: ['{"ei":0}'],
currentPipeline: { processors: [{ script: { source: {} } }] },
connectorId: 'testConnector',
},
});

beforeEach(() => {
jest.clearAllMocks();
server = serverMock.create();
({ context } = requestContextMock.createTools());
registerRelatedRoutes(server.router);
});

it('Runs route and gets RelatedResponse', async () => {
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.body).toEqual({
results: { docs: [], pipeline: { processors: [{ script: { source: {} } }] } },
});
expect(response.status).toEqual(200);
});

it('Runs route with badRequest', async () => {
mockResult.mockResolvedValueOnce({});
const response = await server.inject(req, requestContextMock.convertContext(context));
expect(response.status).toEqual(400);
});
});

0 comments on commit a1c2c9d

Please sign in to comment.