1
+ import * as aws from 'aws-sdk' ;
2
+ import * as eks from '../lib' ;
3
+ import { compareLoggingProps } from '../lib/cluster-resource-handler/compareLogging' ;
4
+
5
+ describe ( 'compareLoggingProps' , ( ) => {
6
+
7
+ type Props = Partial < aws . EKS . CreateClusterRequest > ;
8
+ const oldEnabledTypes : aws . EKS . LogTypes = [ eks . ClusterLoggingTypes . API , eks . ClusterLoggingTypes . AUDIT ] ;
9
+
10
+ test ( 'when newProps.logging.clusterLogging is undefined, should disable all types with enabled:true in oldProps' , ( ) => {
11
+ const oldProps : Props = {
12
+ logging : {
13
+ clusterLogging : [ { types : oldEnabledTypes , enabled : true } ] ,
14
+ } ,
15
+ } ;
16
+
17
+ const newProps : Props = {
18
+ logging : { } ,
19
+ } ;
20
+
21
+ const result = compareLoggingProps ( oldProps , newProps ) ;
22
+
23
+ expect ( result . logging ?. clusterLogging ) . toEqual ( [ { types : oldEnabledTypes , enabled : false } ] ) ;
24
+ } ) ;
25
+
26
+ test ( 'when newProps.logging is undefined, should disable all types with enabled:true in oldProps' , ( ) => {
27
+ const oldProps : Props = {
28
+ logging : {
29
+ clusterLogging : [ { types : oldEnabledTypes , enabled : true } ] ,
30
+ } ,
31
+ } ;
32
+
33
+ const newProps : Props = { } ;
34
+
35
+ const result = compareLoggingProps ( oldProps , newProps ) ;
36
+
37
+ expect ( result . logging ?. clusterLogging ) . toEqual ( [ { types : oldEnabledTypes , enabled : false } ] ) ;
38
+ } ) ;
39
+
40
+ test ( 'should disable types with enabled:true but not defined as enabled:true in newProps' , ( ) => {
41
+ const oldProps : Props = {
42
+ logging : {
43
+ clusterLogging : [ { types : oldEnabledTypes , enabled : true } ] ,
44
+ } ,
45
+ } ;
46
+
47
+ const newProps : Props = {
48
+ logging : {
49
+ clusterLogging : [ { types : [ eks . ClusterLoggingTypes . AUDIT ] , enabled : true } ] ,
50
+ } ,
51
+ } ;
52
+
53
+ const result = compareLoggingProps ( oldProps , newProps ) ;
54
+
55
+ expect ( result . logging ?. clusterLogging ) . toEqual ( [ { types : [ eks . ClusterLoggingTypes . AUDIT ] , enabled : true } ,
56
+ { types : [ eks . ClusterLoggingTypes . API ] , enabled : false } ] ) ;
57
+ } ) ;
58
+
59
+ test ( 'when oldProps.logging.clusterLogging is undefined and newProps.logging.clusterLogging is undefined, result should be newProps' , ( ) => {
60
+ const oldProps : Props = {
61
+ logging : { } ,
62
+ } ;
63
+
64
+ const newProps : Props = {
65
+ logging : { } ,
66
+ } ;
67
+
68
+ const result = compareLoggingProps ( oldProps , newProps ) ;
69
+
70
+ expect ( result ) . toEqual ( newProps ) ;
71
+ } ) ;
72
+
73
+ test ( 'multiple enabled:true types in oldProps with clusterLogging undefined in newProps should all be disabled' , ( ) => {
74
+ const oldProps : Props = {
75
+ logging : {
76
+ clusterLogging : [ { types : oldEnabledTypes , enabled : true } ] ,
77
+ } ,
78
+ } ;
79
+
80
+ const newProps : Props = {
81
+ logging : { } ,
82
+ } ;
83
+
84
+ const result = compareLoggingProps ( oldProps , newProps ) ;
85
+
86
+ expect ( result . logging ?. clusterLogging ) . toEqual ( [ { types : oldEnabledTypes , enabled : false } ] ) ;
87
+ } ) ;
88
+
89
+ } ) ;
0 commit comments