@@ -677,6 +677,11 @@ describe('Poller', () => {
677
677
} )
678
678
679
679
it ( 'creates new secret' , async ( ) => {
680
+ const notFoundError = new Error ( 'Not Found' )
681
+ notFoundError . statusCode = 404
682
+ const kubeSecret = sinon . mock ( )
683
+ kubeSecret . get = sinon . stub ( ) . throws ( notFoundError )
684
+ kubeNamespaceMock . secrets = sinon . stub ( ) . returns ( kubeSecret )
680
685
kubeNamespaceMock . secrets . post = sinon . stub ( ) . resolves ( )
681
686
682
687
await poller . _upsertKubernetesSecret ( )
@@ -696,18 +701,88 @@ describe('Poller', () => {
696
701
} ) ) . to . equal ( true )
697
702
} )
698
703
704
+ it ( "doesn't update a secret if it hasn't changed" , async ( ) => {
705
+ const kubeSecret = sinon . mock ( )
706
+ kubeSecret . put = sinon . stub ( )
707
+ kubeSecret . get = sinon . stub ( ) . returns ( {
708
+ body : {
709
+ metadata : {
710
+ name : 'fakeSecretName'
711
+ } ,
712
+ data : {
713
+ fakePropertyName : 'ZmFrZVByb3BlcnR5VmFsdWU='
714
+ }
715
+ }
716
+ } )
717
+ kubeNamespaceMock . secrets = sinon . stub ( ) . returns ( kubeSecret )
718
+ kubeNamespaceMock . secrets . post = sinon . stub ( )
719
+
720
+ const result = await poller . _upsertKubernetesSecret ( )
721
+ expect ( result ) . to . equal ( true )
722
+ expect ( kubeSecret . put . called ) . to . equal ( false )
723
+ expect ( kubeNamespaceMock . secrets . post . called ) . to . equal ( false )
724
+ } )
725
+
699
726
it ( 'updates secret' , async ( ) => {
700
- const conflictError = new Error ( 'Conflict' )
701
- conflictError . statusCode = 409
702
- kubeNamespaceMock . secrets . post = sinon . stub ( ) . throws ( conflictError )
703
- kubeNamespaceMock . put = sinon . stub ( ) . resolves ( )
727
+ const kubeSecret = sinon . mock ( )
728
+ kubeSecret . get = sinon . stub ( ) . returns ( {
729
+ body : {
730
+ metadata : {
731
+ name : 'fakeSecretName'
732
+ } ,
733
+ data : {
734
+ fakePropertyName : 'differentValue'
735
+ }
736
+ }
737
+ } )
738
+ kubeNamespaceMock . secrets = sinon . stub ( ) . returns ( kubeSecret )
739
+ kubeSecret . put = sinon . stub ( ) . resolves ( )
704
740
kubeNamespaceMock . get = sinon . stub ( ) . resolves ( fakeNamespace )
705
741
706
742
await poller . _upsertKubernetesSecret ( )
707
743
708
744
expect ( kubeNamespaceMock . secrets . calledWith ( 'fakeSecretName' ) ) . to . equal ( true )
709
745
710
- expect ( kubeNamespaceMock . put . calledWith ( {
746
+ expect ( kubeSecret . put . calledWith ( {
747
+ body : {
748
+ apiVersion : 'v1' ,
749
+ kind : 'Secret' ,
750
+ metadata : {
751
+ name : 'fakeSecretName'
752
+ } ,
753
+ type : 'some-type' ,
754
+ data : {
755
+ fakePropertyName : 'ZmFrZVByb3BlcnR5VmFsdWU='
756
+ }
757
+ }
758
+ } ) ) . to . equal ( true )
759
+ } )
760
+
761
+ it ( 'updates secret if the custom metadata has changed' , async ( ) => {
762
+ const kubeSecret = sinon . mock ( )
763
+ kubeSecret . get = sinon . stub ( ) . returns ( {
764
+ body : {
765
+ metadata : {
766
+ creationTimestamp : new Date ( ) . toDateString ( ) ,
767
+ name : 'fakeSecretName' ,
768
+ labels : {
769
+ myFakeLabel : 'test'
770
+ }
771
+ } ,
772
+ data : {
773
+ fakePropertyName : 'ZmFrZVByb3BlcnR5VmFsdWU='
774
+ }
775
+ }
776
+ } )
777
+ kubeNamespaceMock . secrets = sinon . stub ( ) . returns ( kubeSecret )
778
+ kubeSecret . put = sinon . stub ( ) . resolves ( )
779
+ kubeNamespaceMock . get = sinon . stub ( ) . resolves ( fakeNamespace )
780
+
781
+ await poller . _upsertKubernetesSecret ( )
782
+
783
+ expect ( kubeNamespaceMock . secrets . calledWith ( 'fakeSecretName' ) ) . to . equal ( true )
784
+
785
+ expect ( kubeSecret . put . calledWith ( {
711
786
body : {
712
787
apiVersion : 'v1' ,
713
788
kind : 'Secret' ,
@@ -746,7 +821,9 @@ describe('Poller', () => {
746
821
it ( 'fails storing secret' , async ( ) => {
747
822
const internalErrorServer = new Error ( 'Internal Error Server' )
748
823
internalErrorServer . statusCode = 500
749
-
824
+ const kubeSecret = sinon . mock ( )
825
+ kubeNamespaceMock . secrets = sinon . stub ( ) . returns ( kubeSecret )
826
+ kubeSecret . get = sinon . stub ( ) . throws ( { statusCode : 404 } )
750
827
kubeNamespaceMock . secrets . post = sinon . stub ( ) . throws ( internalErrorServer )
751
828
752
829
let error
@@ -856,7 +933,7 @@ describe('Poller', () => {
856
933
}
857
934
} )
858
935
} )
859
- describe ( 'nameing conventions' , ( ) => {
936
+ describe ( 'naming conventions' , ( ) => {
860
937
let poller
861
938
beforeEach ( ( ) => {
862
939
poller = pollerFactory ( )
0 commit comments