Skip to content

Commit f0fb201

Browse files
committed
Add tests for filterPolicyTemplatesTiles
1 parent fb40c1b commit f0fb201

1 file changed

Lines changed: 124 additions & 0 deletions

File tree

x-pack/plugins/fleet/common/services/policy_template.test.ts

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ import type {
1010
RegistryPolicyIntegrationTemplate,
1111
PackageInfo,
1212
RegistryVarType,
13+
PackageListItem,
1314
} from '../types';
1415

1516
import {
1617
isInputOnlyPolicyTemplate,
1718
isIntegrationPolicyTemplate,
1819
getNormalizedInputs,
1920
getNormalizedDataStreams,
21+
filterPolicyTemplatesTiles,
2022
} from './policy_template';
2123

2224
describe('isInputOnlyPolicyTemplate', () => {
@@ -280,3 +282,125 @@ describe('getNormalizedDataStreams', () => {
280282
expect(result?.[0].streams?.[0]?.vars).toEqual([datasetVar]);
281283
});
282284
});
285+
286+
describe('filterPolicyTemplatesTiles', () => {
287+
const topPackagePolicy: PackageListItem = {
288+
id: 'nginx',
289+
integration: 'nginx',
290+
title: 'Nginx',
291+
name: 'nginx',
292+
version: '0.0.1',
293+
status: 'not_installed',
294+
};
295+
296+
const childPolicyTemplates: PackageListItem[] = [
297+
{
298+
id: 'nginx-template1',
299+
integration: 'nginx-template-1',
300+
title: 'Nginx Template 1',
301+
name: 'nginx',
302+
version: '0.0.1',
303+
status: 'not_installed',
304+
},
305+
{
306+
id: 'nginx-template2',
307+
integration: 'nginx-template-2',
308+
title: 'Nginx Template 2',
309+
name: 'nginx',
310+
version: '0.0.1',
311+
status: 'not_installed',
312+
},
313+
];
314+
it('should return all tiles as undefined value', () => {
315+
expect(filterPolicyTemplatesTiles(undefined, topPackagePolicy, childPolicyTemplates)).toEqual([
316+
{
317+
id: 'nginx',
318+
integration: 'nginx',
319+
title: 'Nginx',
320+
name: 'nginx',
321+
version: '0.0.1',
322+
status: 'not_installed',
323+
},
324+
{
325+
id: 'nginx-template1',
326+
integration: 'nginx-template-1',
327+
title: 'Nginx Template 1',
328+
name: 'nginx',
329+
version: '0.0.1',
330+
status: 'not_installed',
331+
},
332+
{
333+
id: 'nginx-template2',
334+
integration: 'nginx-template-2',
335+
title: 'Nginx Template 2',
336+
name: 'nginx',
337+
version: '0.0.1',
338+
status: 'not_installed',
339+
},
340+
]);
341+
});
342+
it('should return all tiles', () => {
343+
expect(filterPolicyTemplatesTiles('all', topPackagePolicy, childPolicyTemplates)).toEqual([
344+
{
345+
id: 'nginx',
346+
integration: 'nginx',
347+
title: 'Nginx',
348+
name: 'nginx',
349+
version: '0.0.1',
350+
status: 'not_installed',
351+
},
352+
{
353+
id: 'nginx-template1',
354+
integration: 'nginx-template-1',
355+
title: 'Nginx Template 1',
356+
name: 'nginx',
357+
version: '0.0.1',
358+
status: 'not_installed',
359+
},
360+
{
361+
id: 'nginx-template2',
362+
integration: 'nginx-template-2',
363+
title: 'Nginx Template 2',
364+
name: 'nginx',
365+
version: '0.0.1',
366+
status: 'not_installed',
367+
},
368+
]);
369+
});
370+
it('should return just the combined policy tile', () => {
371+
expect(
372+
filterPolicyTemplatesTiles('combined_policy', topPackagePolicy, childPolicyTemplates)
373+
).toEqual([
374+
{
375+
id: 'nginx',
376+
integration: 'nginx',
377+
title: 'Nginx',
378+
name: 'nginx',
379+
version: '0.0.1',
380+
status: 'not_installed',
381+
},
382+
]);
383+
});
384+
it('should return just the individual policies (tiles)', () => {
385+
expect(
386+
filterPolicyTemplatesTiles('individual_policies', topPackagePolicy, childPolicyTemplates)
387+
).toEqual([
388+
{
389+
id: 'nginx-template1',
390+
integration: 'nginx-template-1',
391+
title: 'Nginx Template 1',
392+
name: 'nginx',
393+
version: '0.0.1',
394+
status: 'not_installed',
395+
},
396+
{
397+
id: 'nginx-template2',
398+
integration: 'nginx-template-2',
399+
title: 'Nginx Template 2',
400+
name: 'nginx',
401+
version: '0.0.1',
402+
status: 'not_installed',
403+
},
404+
]);
405+
});
406+
});

0 commit comments

Comments
 (0)