Edit File: APNCertificate.js
"use strict"; 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; }); }); }); });
Back to File Manager