123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- const APNCertificate = require('../../../lib/credentials/certificate/APNCertificate');
- const APNKey = require('../../../lib/credentials/certificate/APNKey');
- const forge = require('node-forge');
- const fs = require('fs');
- describe('APNCertificate', function () {
- let certPem;
- before(function () {
- certPem = fs.readFileSync('test/credentials/support/cert.pem');
- });
- let cert;
- beforeEach(function () {
- cert = forge.pki.certificateFromPem(certPem.toString());
- });
- describe('accepts a Certificate object', function () {
- it('does not throw', function () {
- expect(function () {
- new APNCertificate(cert);
- }).to.not.throw(Error);
- });
- });
- describe('throws', function () {
- it('missing public key', function () {
- delete cert.publicKey;
- expect(function () {
- new APNCertificate(cert);
- }).to.throw('certificate object is invalid');
- });
- it('missing validity', function () {
- delete cert.validity;
- expect(function () {
- new APNCertificate(cert);
- }).to.throw('certificate object is invalid');
- });
- it('missing subject', function () {
- delete cert.subject;
- expect(function () {
- new APNCertificate(cert);
- }).to.throw('certificate object is invalid');
- });
- });
- describe('key', function () {
- it('returns an APNKey', function () {
- expect(new APNCertificate(cert).key()).to.be.an.instanceof(APNKey);
- });
- it('returns the the certificates public key', function () {
- expect(new APNCertificate(cert).key().fingerprint()).to.equal(
- '2d594c9861227dd22ba5ae37cc9354e9117a804d'
- );
- });
- });
- describe('validity', function () {
- it('returns an object containing notBefore', function () {
- expect(new APNCertificate(cert).validity())
- .to.have.property('notBefore')
- .and.to.eql(new Date('2015-01-01T00:00:00Z'));
- });
- it('returns an object containing notAfter', function () {
- expect(new APNCertificate(cert).validity())
- .to.have.property('notAfter')
- .and.to.eql(new Date('2025-01-01T00:00:00Z'));
- });
- });
- describe('environment', function () {
- describe('development certificate', function () {
- it('sandbox flag', function () {
- expect(new APNCertificate(cert).environment().sandbox).to.be.true;
- });
- it('production flag', function () {
- expect(new APNCertificate(cert).environment().production).to.be.false;
- });
- });
- describe('production certificate', function () {
- let productionCertPem, productionCert;
- before(function () {
- productionCertPem = fs.readFileSync('test/credentials/support/certProduction.pem');
- });
- beforeEach(function () {
- productionCert = forge.pki.certificateFromPem(productionCertPem.toString());
- });
- it('sandbox flag', function () {
- expect(new APNCertificate(productionCert).environment().sandbox).to.be.false;
- });
- it('production flag', function () {
- expect(new APNCertificate(productionCert).environment().production).to.be.true;
- });
- });
- });
- });
|