@@ -154,11 +154,16 @@ var _ = Describe("handleCommon", func() {
154
154
var invalidCert * generator.Artifacts
155
155
156
156
BeforeEach (func (done Done ) {
157
- webhook = & admissionregistration.Webhook {}
157
+ url := "https://example.com/admission"
158
+ webhook = & admissionregistration.Webhook {
159
+ ClientConfig : admissionregistration.WebhookClientConfig {
160
+ URL : & url ,
161
+ },
162
+ }
158
163
cert = & generator.Artifacts {
159
- CACert : []byte (`CACertBytes` ),
160
- Cert : []byte (certPEM ),
161
- Key : []byte (keyPEM ),
164
+ CACert : []byte (pair1CA ),
165
+ Cert : []byte (pair1Cert ),
166
+ Key : []byte (pair1Key ),
162
167
}
163
168
invalidCert = & generator.Artifacts {
164
169
CACert : []byte (`CACertBytes` ),
@@ -188,7 +193,11 @@ var _ = Describe("handleCommon", func() {
188
193
certrw := & fakeCertReadWriter {
189
194
readCertAndErr : []certAndErr {
190
195
{
191
- err : notFoundError {errors .NewNotFound (schema.GroupResource {}, "foo" )},
196
+ err : notFoundError {errors .NewNotFound (schema.GroupResource {}, "foo" )},
197
+ },
198
+ },
199
+ writeCertAndErr : []certAndErr {
200
+ {
192
201
cert : cert ,
193
202
},
194
203
},
@@ -198,6 +207,7 @@ var _ = Describe("handleCommon", func() {
198
207
Expect (err ).NotTo (HaveOccurred ())
199
208
Expect (certrw .numReadCalled ).To (Equal (1 ))
200
209
Expect (certrw .numWriteCalled ).To (Equal (1 ))
210
+ Expect (certrw .numOverwriteCalled ).To (Equal (0 ))
201
211
})
202
212
203
213
It ("should return the error on failed write" , func () {
@@ -218,6 +228,7 @@ var _ = Describe("handleCommon", func() {
218
228
Expect (err ).To (MatchError (goerrors .New ("failed to write" )))
219
229
Expect (certrw .numReadCalled ).To (Equal (1 ))
220
230
Expect (certrw .numWriteCalled ).To (Equal (1 ))
231
+ Expect (certrw .numOverwriteCalled ).To (Equal (0 ))
221
232
})
222
233
})
223
234
@@ -234,6 +245,8 @@ var _ = Describe("handleCommon", func() {
234
245
err := handleCommon (webhook , certrw )
235
246
Expect (err ).NotTo (HaveOccurred ())
236
247
Expect (certrw .numReadCalled ).To (Equal (1 ))
248
+ Expect (certrw .numWriteCalled ).To (Equal (0 ))
249
+ Expect (certrw .numOverwriteCalled ).To (Equal (0 ))
237
250
})
238
251
239
252
It ("should return the error on failed read" , func () {
@@ -248,6 +261,8 @@ var _ = Describe("handleCommon", func() {
248
261
err := handleCommon (webhook , certrw )
249
262
Expect (err ).To (MatchError (goerrors .New ("failed to read" )))
250
263
Expect (certrw .numReadCalled ).To (Equal (1 ))
264
+ Expect (certrw .numWriteCalled ).To (Equal (0 ))
265
+ Expect (certrw .numOverwriteCalled ).To (Equal (0 ))
251
266
})
252
267
})
253
268
@@ -269,6 +284,7 @@ var _ = Describe("handleCommon", func() {
269
284
err := handleCommon (webhook , certrw )
270
285
Expect (err ).NotTo (HaveOccurred ())
271
286
Expect (certrw .numReadCalled ).To (Equal (1 ))
287
+ Expect (certrw .numWriteCalled ).To (Equal (0 ))
272
288
Expect (certrw .numOverwriteCalled ).To (Equal (1 ))
273
289
})
274
290
@@ -289,6 +305,7 @@ var _ = Describe("handleCommon", func() {
289
305
err := handleCommon (webhook , certrw )
290
306
Expect (err ).NotTo (HaveOccurred ())
291
307
Expect (certrw .numReadCalled ).To (Equal (1 ))
308
+ Expect (certrw .numWriteCalled ).To (Equal (0 ))
292
309
Expect (certrw .numOverwriteCalled ).To (Equal (1 ))
293
310
})
294
311
@@ -413,3 +430,210 @@ var _ = Describe("dnsNameForWebhook", func() {
413
430
})
414
431
})
415
432
})
433
+
434
+ // pair1 is for DNS name: example.com
435
+ var pair1Cert = []byte (`
436
+ -----BEGIN CERTIFICATE-----
437
+ MIIC2TCCAcGgAwIBAgIIfnO/uBlD+jMwDQYJKoZIhvcNAQELBQAwGjEYMBYGA1UE
438
+ AxMPd2ViaG9vay1jZXJ0LWNhMB4XDTE4MDcxMDIyMTgxN1oXDTE5MDcxMDIyMTgx
439
+ OFowFjEUMBIGA1UEAxMLZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
440
+ DwAwggEKAoIBAQDRWApXn6WIAw2ZU/q2WPU2X0I4brwZvvx3UBIKGYE6rxirWpNC
441
+ zBBsK4lnn+5BTiS2cE59jZ1AAp1hwzlmmrok7PXQJuUX7rojIJ1JG3OqZAvVKv0y
442
+ Hu7naPLR0mF51goEolsq79/6RMFEHnEG/PW/EHOSrmL+alENWhTANUBlwMQ/1J8P
443
+ EnayvrX3RynNA98WOiKDpsFcj53pXd2zUlPZ5tht7HafWrkK/g8kZAe/b1XAlFaY
444
+ usPOyhJFPiBYRatIRt7Txb582qHd85VeKkrjat3yfEQqsA52r0CmOot52RG+8uXr
445
+ smuBGjtMYmsUiwn5f4UMCT3gqrWaHfOdais7AgMBAAGjJzAlMA4GA1UdDwEB/wQE
446
+ AwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQsFAAOCAQEAGAEm
447
+ X6IL/A4DhmlcmedS9oCmp4qtyE3at4xU+7GIQ6fVMUAKpbXnXl5FEH+cuEbdzfTW
448
+ DDCXxnpQmK6TJR+IEjmyNv1AOOLXiHiTCQVzz1rTyJN8mhUSRuoLC3KjfdI3Ccl2
449
+ VwLm3IYQlEY/BQr7XiRLFws1ilVl04iSwwQEKiCmAe/9yZEPvH9l9USVoLvtJJc8
450
+ t95PX4eUGYPGyO6nQWGX/4HvUo26XBXFEv+q2Lu5aOKhro4VF12p3nqkxG+kOmp1
451
+ IF+79qBdgMtQfaKazRkAG2iWPPz6W6WvVGaczvodX7B0JCe+b9+Vd3zY2w5vaZq6
452
+ JHVoxUBuexCYndPf8w==
453
+ -----END CERTIFICATE-----
454
+ ` )
455
+
456
+ var pair1Key = []byte (`
457
+ -----BEGIN RSA PRIVATE KEY-----
458
+ MIIEowIBAAKCAQEA0VgKV5+liAMNmVP6tlj1Nl9COG68Gb78d1ASChmBOq8Yq1qT
459
+ QswQbCuJZ5/uQU4ktnBOfY2dQAKdYcM5Zpq6JOz10CblF+66IyCdSRtzqmQL1Sr9
460
+ Mh7u52jy0dJhedYKBKJbKu/f+kTBRB5xBvz1vxBzkq5i/mpRDVoUwDVAZcDEP9Sf
461
+ DxJ2sr6190cpzQPfFjoig6bBXI+d6V3ds1JT2ebYbex2n1q5Cv4PJGQHv29VwJRW
462
+ mLrDzsoSRT4gWEWrSEbe08W+fNqh3fOVXipK42rd8nxEKrAOdq9ApjqLedkRvvLl
463
+ 67JrgRo7TGJrFIsJ+X+FDAk94Kq1mh3znWorOwIDAQABAoIBAQDM3MFSOnL9BS/b
464
+ qmkg5TEiQlpFa2g8McBS6lKc+5SRXyRfG8YciiJQGNLgS4wW8GfQ+Vp2V41ZRLXL
465
+ JAcaN7SNyi5LwqRSpVYWZiZFks3AIyPJOcaJs+fLIdLuLlkhp6oqGs/o1tFy0rHm
466
+ /XtSgV3j2i+fjXRm0Jf83viLmBErAJCgo+TD9dS7VCzdCDtiZpKHUq8EvQD9FRzF
467
+ P3B59LHCTcCFBB+j8l9aE96eWsEXcuFUdghB+w0C85MTR3FEIDPd29mbXgZ3AlS3
468
+ FwIatBargbhuyudNie/AusngCZZ1BxAUvIg3Nk/fI3Wgy8lPy4fF/tgJLUmAhDew
469
+ vJ7j804xAoGBANOfVofdyPnAJJSTKG9ELkaG6pwseLrokcHQhVDXm+RAfk18OGUh
470
+ W2mc/DpRtVPPGKoiylirE29qB9E5fywJVaEkEjd2Tb2TQPjDOKwMhJTGnrbvlhpr
471
+ 0/Zo70G5BqHn9EHMixdsNrSNwau1RYhLOfTpb9w4hzVntzJAAGK/l/MtAoGBAP0+
472
+ YkVuqwyN6ct8ct7tgwFRH75SV4HoARwKrsZZKlCAGGc7WsfYmXx8Tu5eXEkhMDpN
473
+ 4wpj44squdj6+JFJEGdk2POwPa2onwCirbffImF/0AZHHm/WRxrQMlqcfnE+TYAr
474
+ tQJZtlTi1tRXYGqDC2PR2lrejTDmjgtyfsWYA7kHAoGAQZuemhS6YCOfs6hD2usK
475
+ ZbciOTTYYSoFNk9NZZjSrdsIzUD7wu6qhn2y/OmkC82i2exbS04OgnYe4lCvCpoC
476
+ QCkMtMEqrOFgPT9Y7I4c9Hr3bcOth5dyaWxy8K9KTRu6cEPXw3U7KJLiPje+zNh1
477
+ qWZN1bp4wKfc9ek9tV+s3ikCgYAulAjTKHXBi2CTEsK2Cg1scpVaFh8OP7Pkinp2
478
+ 9PN5dvYGFr6tv0MLyHlkEmr68GXEc4rs4E57zFH+fLq3Ti78NWpJ+AKALGGCZml5
479
+ Rks2j6GdZftNKqZNYjnAvMPs5D6w8lkKo6GLn2VQDPoo3Q19QJ3e1Mw3UFCT/m0e
480
+ vsUAhQKBgGNiN6EyMAcRn8Wh5kyY5jStDQKtID0reFUYf0VZcfNf8KSKqhJzHy8X
481
+ S7R8Pq3QKiWo86tqFrA1PgcwD/69m5SzFo1JPWzDSiiLvwcigsurEoK1m3zUpSC0
482
+ gD2teD4DuJSvS19WvRebC3035/qYOrmv2PAIaKSiYNzcGmDSOX9A
483
+ -----END RSA PRIVATE KEY-----
484
+ ` )
485
+
486
+ var pair1CA = []byte (`
487
+ -----BEGIN CERTIFICATE-----
488
+ MIIC0jCCAbqgAwIBAgIBADANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw93ZWJo
489
+ b29rLWNlcnQtY2EwHhcNMTgwNzEwMjIxODE3WhcNMjgwNzA3MjIxODE3WjAaMRgw
490
+ FgYDVQQDEw93ZWJob29rLWNlcnQtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
491
+ ggEKAoIBAQDkXTPy5gJAjigEgyDU/+kEdAoTZKkaLXv45rJqLIozSyV/DveF1F6m
492
+ /0C9K8IIAIM5T6TsYsS0BhD2CM/wWi1flXcG25vtA7n8RHuklkZqGx/LfKzdkElW
493
+ +lETAAtcIIiJrTS1JLxfzRaeFMdmiRF+hByfRtWiMOG+yYzQp6VmI72FU6u/5PcA
494
+ NInDuYx9iIjov6FEmK2nSJpZY7Z4UNCpQAui3IsajAtM0T+mnX2O3PA85ELtzZis
495
+ hLSfnG3dQum7JtjA47co48W20BV43fiIZTyA16oMJirOW8Y/XNVaXvUduFSkhskf
496
+ w5mNRL+NQcjaXuZxslpg4KDPWNWM1EIVAgMBAAGjIzAhMA4GA1UdDwEB/wQEAwIC
497
+ pDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDMxCy8Uvf1JHFP
498
+ xtetGeeXs5lA9lFaxHlhsHfpGkuFd0exrNZTbNx4BJ2fwkmAreiJ9G5ykNcxFAx5
499
+ 8T1ri02elRDUQUkUSk1CYOvRjL7Tb2tXVOfPKUuNp8KX4YyQ+8H6QRi9Sz02AJ2U
500
+ mNsQ+hnzKYNm4ew8gdmoUNzdPpovSo/GWmETScVV30i+odlA7yyww2MTWoZYXApI
501
+ TW0pve7WWIK9L7sqmUwLS4ib0IoqcRCNuoMrz/ddDTkIxLmzWhVh3E72xWmXOnlm
502
+ asdwRTGdlUKCvEN4BJMc99NswRPr3HwHHFOyf49LeDY+oZ1JcukGyVJNIjOat9Nk
503
+ NU/8tP41
504
+ -----END CERTIFICATE-----
505
+ ` )
506
+
507
+ // pair 2 is for DNS name: test-service.test-svc-namespace.svc
508
+ var pair2Cert = []byte (`
509
+ -----BEGIN CERTIFICATE-----
510
+ MIIC8TCCAdmgAwIBAgIIM5wsxq4y7pkwDQYJKoZIhvcNAQELBQAwGjEYMBYGA1UE
511
+ AxMPd2ViaG9vay1jZXJ0LWNhMB4XDTE4MDcxMDIzMDAzM1oXDTE5MDcxMDIzMDAz
512
+ M1owLjEsMCoGA1UEAxMjdGVzdC1zZXJ2aWNlLnRlc3Qtc3ZjLW5hbWVzcGFjZS5z
513
+ dmMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7SNlyOM4k/HpYka+i
514
+ Mt+INws+a+qQMVWsazjNfeeP83ckMjVQzfIhmUGhBKxruqqJ9GqxWQtKWieBVTC8
515
+ mIoj00k3oF/r8V+DArOUcmTs0hHBhL+KMwtKMk1hYvHoiz7xwNtHNIhPy1n2z4zR
516
+ kLkqhe/rQz55jLv6p6nJ9weHEsjgrTmzHNhvE1c/bII80Q4LH9dx+VUmLCoUfY5s
517
+ byYOJJD5u0s9OxwKoPFFKPFRCsOj9lUhkmt6AArcAGBi5WXsc3faaF3vATRQ3v8E
518
+ Gy6L0TqA1PRiP1taeperB0NBMNhiwtaKrXfQ5l9fMjWXGnn7WuuiAwVFIXhNR7ZN
519
+ CwjrAgMBAAGjJzAlMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcD
520
+ ATANBgkqhkiG9w0BAQsFAAOCAQEAQlO4peuNKtUHeXQ231LFNrTVg08dIEnHcuOk
521
+ laUfeUoKE5ifNjdQBArtcECFlgGqSXEBS+fQnM9BEV2f6/ANyabPXmKugXWPpQEN
522
+ uzCduxVSnBYqq28KtJ3Yj0SgPiQ/Wawn/6t5r/RSdkIymDzR4Wb1kL7oaMCGjeRc
523
+ GAooblrPq3dKxJPi163BpxH0iL9Id4ZU4agFV12gUjv7IaHlzhWN+OkyaRRDKR59
524
+ USlbVnnjNqFoNwzxfEcVZlCSGwSmx8LxpcYbaclnka2BmSKZSaxlQlNWKhZHXi8M
525
+ CrJdMmDbdPjR/GC87Ub1XRATpZtvyR3enDrrArHHfblCNNTALQ==
526
+ -----END CERTIFICATE-----
527
+ ` )
528
+
529
+ var pair2Key = []byte (`
530
+ -----BEGIN RSA PRIVATE KEY-----
531
+ MIIEpQIBAAKCAQEAu0jZcjjOJPx6WJGvojLfiDcLPmvqkDFVrGs4zX3nj/N3JDI1
532
+ UM3yIZlBoQSsa7qqifRqsVkLSlongVUwvJiKI9NJN6Bf6/FfgwKzlHJk7NIRwYS/
533
+ ijMLSjJNYWLx6Is+8cDbRzSIT8tZ9s+M0ZC5KoXv60M+eYy7+qepyfcHhxLI4K05
534
+ sxzYbxNXP2yCPNEOCx/XcflVJiwqFH2ObG8mDiSQ+btLPTscCqDxRSjxUQrDo/ZV
535
+ IZJregAK3ABgYuVl7HN32mhd7wE0UN7/BBsui9E6gNT0Yj9bWnqXqwdDQTDYYsLW
536
+ iq130OZfXzI1lxp5+1rrogMFRSF4TUe2TQsI6wIDAQABAoIBAQCXPwfMRK/GEtfD
537
+ OzQ5qxf2a217Ja+ybwUfTx/6Y9lj2Vy4MIv6C7elBp2HqbyM65zZ+DdJrf1+ODx7
538
+ KA9J325/7BvO/oc4hh96L+5SzedPkX6hZ9E/jGVrsB/pq/xsrjdRCUyMvpHuzuyC
539
+ c67ndxbyjmPo/M8xXkRY8pod7o93toQ1Pao1w2sgHx6fOMVj9l2OquFAOwM7/PMa
540
+ ro+a2FwZHfX4Z+2AHGaCfbi6C8JgkIF4p5UkEziHbH5nxIQLKSb8nui/Zap3h9F/
541
+ a/40TuE6oRQbZl8SJuUEZMIF08PV9QLQLo859GArdq6tEyEov/+P54JPOt8ARzwJ
542
+ tqh4qOohAoGBANpnca1OROh3fzov03fhJLiGc0NeCjCbhEr887C0b91v/WyLGCjK
543
+ lb+wmqxxTkWqrnAihyYZ5LGnxUbypX17weIpOWdOo1UO+AFxn4qD3K6mhWuNyn9+
544
+ dlCoYcsBIKrLygCjmkvWcAq03g1bxykYNHPg+SSE+JCzyDPMDRRpWwh5AoGBANuG
545
+ CpxjOtHL5lj9LoI5QTK3X3LuBVtIAu+lT5lRTKacnU21eEyO3XnX0BlQx8Z+SYKk
546
+ DVLdHJ1bhqra2+1cprsFW6VPOn7hjaiCmoHqy/aJ4F3eeMtuCPOUG+In/b8swaXV
547
+ V/dPbimiizKaeg/BohAz+8j1I9khxNvn+05lvIuDAoGBAMevbLAXr8kb+Kcqsx4Y
548
+ K4rK4vflM0vd5MbrH6OgVecQTZTAWAZzsxbgUYr4zafEtliwOQENC5ui2SxVDhn8
549
+ 3Pf62RErRQqv9PDdAhGTHmJQvgvoSAzpgyOb0E3bahK+4KJU8u4D0cz4MU3la+KW
550
+ zt5kA2bwbJNgzNsO5aaT7TeBAoGBALxyJbu4Ry8ADV6JARrTEY/68FoVz81bVQHp
551
+ 9BnWO6mvOi4SQRHfdmp5A/Anc0eG843NTI68tyqx/jm/JRpu9cYIRHL1P27aKyPj
552
+ 8cTjDXI3S77pEuL3M4H9u635zI8HWbkFGr13l0bwfPPUvkG2ZGvqZBNPtRVZMsfg
553
+ LdBP73oHAoGAdiwCHndHuylxNeL3rB6GYdfBh/gHMidb5v+tDrvzQuryb/CH3Sby
554
+ rWDh2D/KVWeil1fn00/fIIt11dR1vQ9r7/X+hlzZq0xZbbKogPeXgvgmO34wSyha
555
+ 8ar7jKsQwVsE/FAqryItE93Mw0ogheEUTrDxD1vEe4xYRi8Jk+pJKDY=
556
+ -----END RSA PRIVATE KEY-----
557
+ ` )
558
+
559
+ var pair2CA = []byte (`
560
+ -----BEGIN CERTIFICATE-----
561
+ MIIC0jCCAbqgAwIBAgIBADANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw93ZWJo
562
+ b29rLWNlcnQtY2EwHhcNMTgwNzEwMjMwMDMzWhcNMjgwNzA3MjMwMDMzWjAaMRgw
563
+ FgYDVQQDEw93ZWJob29rLWNlcnQtY2EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
564
+ ggEKAoIBAQCqHWHCyD33VaZ1WpPFFymAmypXQL1S/ZCmNygDgni7IRpseA70H0bb
565
+ Wp2KRO7rp/ggtIGVNqj1R99GLf4w22oN5I2ENHL2BSEIccFG0KCovHuec/2I6gAk
566
+ ZpMZROwp9TUL207ArB13oNyY6XBWIDOriPdC2oXj5JHkge9895FgjuBxN80xzjs+
567
+ KpACRBa6iJy8xuCqrxc57zFcfKLxi5rdRAznhAuuCsPfOndZANZhknDv9lSyXll+
568
+ uJVBo4+p62i8lz3+6TxO0NgAw7Ddw3N8lxq2WiGX5eUu6Goha7skG6OZrIAkQeHs
569
+ O9aIPGouLNYIAQjl4xtsB1JLGKi40KgNAgMBAAGjIzAhMA4GA1UdDwEB/wQEAwIC
570
+ pDAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAlP5qFvH3G9JXF
571
+ GxHm3nhcwBtez/NjbohhtoiwxY8vqEas3JtD5TKujew5m774ddNZUL29yr9Bumz3
572
+ HxTMT9WF7WV3pORRqQ23phjEgkl2kAoQMaCca5bLOUq7g/aEna66Ep3AcSbbaONG
573
+ VntKif6kU79jx40NS8fvqcKOYEFYDCk5xmGH//xf8l0Mt3CKI0DrWUTiVfImsYEy
574
+ VrQIySVlmWA0awlOB4/fB7/3slf1nBWXY1tiIOQpc6K4mbJjHcSekp5T8GrR38Se
575
+ Vvnwc7+eaaZECqlPF108hrIShJoDW0BvnY23Y1vJlMHb7BPjTu7rlu4+aHvn2HX4
576
+ KkYt/5rj
577
+ -----END CERTIFICATE-----
578
+ ` )
579
+
580
+ var _ = Describe ("validate cert" , func () {
581
+ Context ("invalid pair" , func () {
582
+ It ("should detect it" , func () {
583
+ certs := generator.Artifacts {
584
+ CACert : pair1CA ,
585
+ Cert : pair1Cert ,
586
+ Key : pair2Key ,
587
+ }
588
+ valid , err := validCert (& certs , "example.com" , 6 * month )
589
+ Expect (err ).NotTo (HaveOccurred ())
590
+ Expect (valid ).To (BeFalse ())
591
+ })
592
+ })
593
+
594
+ Context ("CA not matching" , func () {
595
+ It ("should detect it" , func () {
596
+ certs := generator.Artifacts {
597
+ CACert : pair2CA ,
598
+ Cert : pair1Cert ,
599
+ Key : pair1Key ,
600
+ }
601
+ valid , err := validCert (& certs , "example.com" , 6 * month )
602
+ Expect (err ).NotTo (HaveOccurred ())
603
+ Expect (valid ).To (BeFalse ())
604
+ })
605
+ })
606
+
607
+ Context ("DNS name not matching" , func () {
608
+ It ("should detect it" , func () {
609
+ certs := generator.Artifacts {
610
+ CACert : pair1CA ,
611
+ Cert : pair1Cert ,
612
+ Key : pair1Key ,
613
+ }
614
+ valid , err := validCert (& certs , "foo.com" , 6 * month )
615
+ Expect (err ).NotTo (HaveOccurred ())
616
+ Expect (valid ).To (BeFalse ())
617
+ })
618
+ })
619
+
620
+ Context ("gen a cert valid for 1 year" , func () {
621
+ var certs * generator.Artifacts
622
+ var err error
623
+ BeforeEach (func (done Done ) {
624
+ gen := & generator.SelfSignedCertGenerator {}
625
+ certs , err = gen .Generate ("example.com" )
626
+ Expect (err ).NotTo (HaveOccurred ())
627
+ close (done )
628
+ }, 10 )
629
+ It ("expiration detection should work" , func () {
630
+ valid , err := validCert (certs , "example.com" , 11 * month )
631
+ Expect (err ).NotTo (HaveOccurred ())
632
+ Expect (valid ).To (BeTrue ())
633
+
634
+ valid , err = validCert (certs , "example.com" , 13 * month )
635
+ Expect (err ).NotTo (HaveOccurred ())
636
+ Expect (valid ).To (BeFalse ())
637
+ })
638
+ })
639
+ })
0 commit comments