11import * as tap from 'tap' ;
22
3- import { SupportedWorkloadTypes } from '../../src/kube-scanner/workload-reader' ;
3+ import { SupportedWorkloadTypes , getSupportedWorkload } from '../../src/kube-scanner/workload-reader' ;
4+ import { V1OwnerReference } from '@kubernetes/client-node' ;
45
56tap . test ( 'SupportedWorkloadTypes' , async ( t ) => {
67 t . ok ( SupportedWorkloadTypes . indexOf ( 'Deployment' ) > - 1 , 'Deployment is a supported workload' ) ;
@@ -11,3 +12,45 @@ tap.test('SupportedWorkloadTypes', async (t) => {
1112 t . ok ( SupportedWorkloadTypes . indexOf ( 'CronJob' ) > - 1 , 'CronJob is a supported workload' ) ;
1213 t . ok ( SupportedWorkloadTypes . indexOf ( 'ReplicationController' ) > - 1 , 'ReplicationController is a supported workload' ) ;
1314} ) ;
15+
16+ tap . test ( 'getSupportedWorkload()' , async ( t ) => {
17+ t . same ( getSupportedWorkload ( undefined ) , undefined , 'returns undefined on receiving undefined' ) ;
18+ t . same ( getSupportedWorkload ( [ ] ) , undefined , 'returns undefined on empty list' ) ;
19+
20+ const unsupportedOwnerRefs = [
21+ { kind : 'B7' , controller : true } ,
22+ { kind : ':egg:' , controller : true } ,
23+ ] ;
24+ t . same (
25+ getSupportedWorkload ( unsupportedOwnerRefs as V1OwnerReference [ ] ) ,
26+ undefined ,
27+ 'returns undefined when there is no match in a list' ,
28+ ) ;
29+
30+ const noController = [ { kind : 'ReplicaSet' } , { kind : 'Deployment' } ] ;
31+ t . same (
32+ getSupportedWorkload ( noController as V1OwnerReference [ ] ) ,
33+ undefined ,
34+ 'returns undefined when no OwnerReference is a controller' ,
35+ ) ;
36+
37+ const oneController = [
38+ { kind : 'ReplicaSet' } ,
39+ { kind : 'Deployment' , controller : true } ,
40+ ] ;
41+ t . same (
42+ getSupportedWorkload ( oneController as V1OwnerReference [ ] ) ,
43+ { kind : 'Deployment' , controller : true } ,
44+ 'returns the only controller in a list' ,
45+ ) ;
46+
47+ const twoControllers = [
48+ { kind : 'ReplicaSet' , controller : true } ,
49+ { kind : 'Deployment' , controller : true } ,
50+ ] ;
51+ t . same (
52+ getSupportedWorkload ( twoControllers as V1OwnerReference [ ] ) ,
53+ { kind : 'ReplicaSet' , controller : true } ,
54+ 'returns the first controller in a list' ,
55+ ) ;
56+ } ) ;
0 commit comments