@@ -10,13 +10,15 @@ import type {
1010 RegistryPolicyIntegrationTemplate ,
1111 PackageInfo ,
1212 RegistryVarType ,
13+ PackageListItem ,
1314} from '../types' ;
1415
1516import {
1617 isInputOnlyPolicyTemplate ,
1718 isIntegrationPolicyTemplate ,
1819 getNormalizedInputs ,
1920 getNormalizedDataStreams ,
21+ filterPolicyTemplatesTiles ,
2022} from './policy_template' ;
2123
2224describe ( '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