1- import { test , expect } from 'vitest'
1+ import { beforeEach , describe , test , expect , vi , Mock } from 'vitest'
2+ import { X509Certificate } from 'node:crypto'
23import { createCertificate } from '../src/certificate'
4+ import { isCertificateExpired } from '../src/certificate-expiration'
35
46test ( 'create certificate' , ( ) => {
57 const content = createCertificate ( )
@@ -10,3 +12,51 @@ test('create certificate', () => {
1012 / - - - - - B E G I N C E R T I F I C A T E - - - - - ( \n | \r | .) * - - - - - E N D C E R T I F I C A T E - - - - - / ,
1113 )
1214} )
15+
16+ describe ( 'isCertificateExpired' , ( ) => {
17+ let validToDateMock : Mock
18+ let validToMock : Mock
19+
20+ beforeEach ( ( ) => {
21+ validToDateMock = vi . spyOn ( X509Certificate . prototype , 'validToDate' , 'get' )
22+ validToMock = vi . spyOn ( X509Certificate . prototype , 'validTo' , 'get' )
23+ } )
24+
25+ describe ( 'with validToDate' , ( ) => {
26+ test ( 'returns false' , ( ) => {
27+ validToDateMock . mockReturnValue ( new Date ( Date . now ( ) + 10000 ) )
28+
29+ const content = createCertificate ( )
30+ const isExpired = isCertificateExpired ( content )
31+ expect ( isExpired ) . toBe ( false )
32+ } )
33+
34+ test ( 'returns true' , ( ) => {
35+ validToDateMock . mockReturnValue ( new Date ( Date . now ( ) - 10000 ) )
36+
37+ const content = createCertificate ( )
38+ const isExpired = isCertificateExpired ( content )
39+ expect ( isExpired ) . toBe ( true )
40+ } )
41+ } )
42+
43+ describe ( 'with validTo' , ( ) => {
44+ test ( 'returns false' , ( ) => {
45+ validToDateMock . mockReturnValue ( undefined )
46+ validToMock . mockReturnValue ( 'Sep 3 21:40:37 2296 GMT' )
47+
48+ const content = createCertificate ( )
49+ const isExpired = isCertificateExpired ( content )
50+ expect ( isExpired ) . toBe ( false )
51+ } )
52+
53+ test ( 'returns true' , ( ) => {
54+ validToDateMock . mockReturnValue ( undefined )
55+ validToMock . mockReturnValue ( 'Jan 22 08:20:44 2022 GMT' )
56+
57+ const content = createCertificate ( )
58+ const isExpired = isCertificateExpired ( content )
59+ expect ( isExpired ) . toBe ( true )
60+ } )
61+ } )
62+ } )
0 commit comments