11import { beforeEach , describe , test , expect , vi , Mock } from 'vitest'
22import { X509Certificate } from 'node:crypto'
33import { createCertificate } from '../src/certificate'
4- import { isCertificateExpired } from '../src/certificate-expiration'
4+ import {
5+ isCertificateExpired ,
6+ parseNonStandardDateString ,
7+ } from '../src/certificate-expiration'
58
69test ( 'create certificate' , ( ) => {
710 const content = createCertificate ( )
@@ -31,7 +34,7 @@ describe('isCertificateExpired', () => {
3134 expect ( isExpired ) . toBe ( false )
3235 } )
3336
34- test ( 'returns true' , ( ) => {
37+ test ( 'returns true' , ( ) => {
3538 validToDateMock . mockReturnValue ( new Date ( Date . now ( ) - 10000 ) )
3639
3740 const content = createCertificate ( )
@@ -49,7 +52,7 @@ describe('isCertificateExpired', () => {
4952 const isExpired = isCertificateExpired ( content )
5053 expect ( isExpired ) . toBe ( false )
5154 } )
52-
55+
5356 test ( 'returns true' , ( ) => {
5457 validToDateMock . mockReturnValue ( undefined )
5558 validToMock . mockReturnValue ( 'Jan 22 08:20:44 2022 GMT' )
@@ -60,3 +63,14 @@ describe('isCertificateExpired', () => {
6063 } )
6164 } )
6265} )
66+
67+ test ( 'parseNonStandardDateString' , ( ) => {
68+ const content = createCertificate ( )
69+ const cert = new X509Certificate ( content )
70+ const date = parseNonStandardDateString ( cert . validTo )
71+ expect ( date ) . toBeInstanceOf ( Date )
72+ expect ( date . getTime ( ) ) . toBeGreaterThan ( 0 )
73+ if ( cert . validToDate ) {
74+ expect ( date . getTime ( ) ) . toBe ( cert . validToDate . getTime ( ) )
75+ }
76+ } )
0 commit comments