Skip to content

Commit

Permalink
Unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
paul-tavares committed Oct 28, 2024
1 parent 17cb490 commit 7f710ae
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* 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 { createMockEndpointAppContextService } from '../mocks';
import { ensureIndicesExistsForPolicies } from './ensure_indices_exists_for_policies';
import { createPolicyDataStreamsIfNeeded as _createPolicyDataStreamsIfNeeded } from '../../fleet_integration/handlers/create_policy_datastreams';

jest.mock('../../fleet_integration/handlers/create_policy_datastreams');
const createPolicyDataStreamsIfNeededMock = _createPolicyDataStreamsIfNeeded as jest.Mock;

describe('Ensure indices exists for policies migration', () => {
let endpointAppContextServicesMock: ReturnType<typeof createMockEndpointAppContextService>;

beforeEach(() => {
endpointAppContextServicesMock = createMockEndpointAppContextService();

endpointAppContextServicesMock
.getInternalFleetServices()
.packagePolicy.listIds.mockResolvedValue({
items: ['foo-1', 'foo-2', 'foo-3'],
});
});

it('should query fleet looking for all endpoint integration policies', async () => {
const fleetServicesMock = endpointAppContextServicesMock.getInternalFleetServices();
await ensureIndicesExistsForPolicies(endpointAppContextServicesMock);

expect(fleetServicesMock.packagePolicy.listIds).toHaveBeenCalledWith(expect.anything(), {
kuery: fleetServicesMock.endpointPolicyKuery,
perPage: 10000,
});
});

it('should call createPolicyDataStreamsIfNeeded() with list of existing policies', async () => {
await ensureIndicesExistsForPolicies(endpointAppContextServicesMock);

expect(createPolicyDataStreamsIfNeededMock).toHaveBeenCalledWith({
endpointServices: endpointAppContextServicesMock,
endpointPolicyIds: ['foo-1', 'foo-2', 'foo-3'],
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@ import type { EndpointAppContextService } from '../endpoint_app_context_services
export const ensureIndicesExistsForPolicies = async (
endpointServices: EndpointAppContextService
): Promise<void> => {
const logger = endpointServices.createLogger('startupPolicyIndicesChecker');

const fleetServices = endpointServices.getInternalFleetServices();
const soClient = fleetServices.savedObjects.createInternalUnscopedSoClient();
const endpointPoliciesIds = await fleetServices.packagePolicy.listIds(soClient, {
kuery: fleetServices.endpointPolicyKuery,
perPage: 10000,
});

logger.info(
`Checking to ensure [${endpointPoliciesIds.items.length}] endpoint policies have backing indices`
);

await createPolicyDataStreamsIfNeeded({
endpointServices,
endpointPolicyIds: endpointPoliciesIds.items,
Expand Down

0 comments on commit 7f710ae

Please sign in to comment.