Fixed tests

This commit is contained in:
Alexander Cerutti
2024-10-11 23:51:35 +02:00
parent 576ba15a39
commit d85fa28339

View File

@@ -8,19 +8,72 @@ const {
} = require("@jest/globals");
const fs = require("node:fs");
const path = require("node:path");
const forge = require("node-forge");
const { default: PKPass } = require("../lib/PKPass");
/**
* @returns {[cert: Buffer, key: Buffer]}
*/
function generateCertificateAndPrivateKey() {
const keys = forge.pki.rsa.generateKeyPair(2048);
const cert = forge.pki.createCertificate();
cert.publicKey = keys.publicKey;
cert.serialNumber = "01";
cert.validity.notBefore = new Date();
cert.validity.notAfter = new Date();
cert.validity.notAfter.setFullYear(
cert.validity.notBefore.getFullYear() + 1,
);
const attrs = [
{
name: "commonName",
value: "example.org",
},
{
name: "countryName",
value: "TS",
},
{
shortName: "ST",
value: "Test",
},
{
name: "localityName",
value: "Test",
},
{
name: "organizationName",
value: "Test",
},
{
shortName: "OU",
value: "Test",
},
];
cert.setIssuer(attrs);
cert.setSubject(attrs);
cert.sign(keys.privateKey);
return [
Buffer.from(forge.pki.certificateToPem(cert)),
Buffer.from(forge.pki.privateKeyToPem(keys.privateKey)),
];
}
const [signerCertBuffer, privateKeyBuffer] = generateCertificateAndPrivateKey();
/**
* SIGNER_CERT, SIGNER_KEY, WWDR and SIGNER_KEY_PASSPHRASE are also set
* as secrets in Github for run tests on Github Actions
*/
const SIGNER_CERT =
process.env.SIGNER_CERT ||
fs.readFileSync(path.resolve(__dirname, "../certificates/signerCert.pem"));
const SIGNER_KEY =
process.env.SIGNER_KEY ||
fs.readFileSync(path.resolve(__dirname, "../certificates/signerKey.pem"));
const SIGNER_CERT = process.env.SIGNER_CERT || signerCertBuffer;
const SIGNER_KEY = process.env.SIGNER_KEY || privateKeyBuffer;
const WWDR =
process.env.WWDR ||
fs.readFileSync(path.resolve(__dirname, "../certificates/WWDR.pem"));
@@ -1155,12 +1208,11 @@ describe("PKPass", () => {
const changedPassJson = Buffer.from(
JSON.stringify(
Object.assign({}, JSON.parse(passjson.toString("utf-8")), {
eventTicket: {
preferredStyleSchemes: [
"posterEventTicket",
"eventTicket",
],
},
preferredStyleSchemes: [
"posterEventTicket",
"eventTicket",
],
eventTicket: {},
}),
),
"utf-8",
@@ -1183,12 +1235,11 @@ describe("PKPass", () => {
const passjsonGenerated = getGeneratedPassJson(pkpass);
expect(
passjsonGenerated.eventTicket.preferredStyleSchemes,
).not.toBeUndefined();
expect(passjsonGenerated.eventTicket.preferredStyleSchemes).toEqual(
["posterEventTicket", "eventTicket"],
);
expect(passjsonGenerated.preferredStyleSchemes).not.toBeUndefined();
expect(passjsonGenerated.preferredStyleSchemes).toEqual([
"posterEventTicket",
"eventTicket",
]);
});
it("should contain preferredStyleSchemes if coming from the setter (legacy order)", () => {
@@ -1203,12 +1254,11 @@ describe("PKPass", () => {
const passjsonGenerated = getGeneratedPassJson(pkpass);
expect(
passjsonGenerated.eventTicket.preferredStyleSchemes,
).not.toBeUndefined();
expect(passjsonGenerated.eventTicket.preferredStyleSchemes).toEqual(
["eventTicket", "posterEventTicket"],
);
expect(passjsonGenerated.preferredStyleSchemes).not.toBeUndefined();
expect(passjsonGenerated.preferredStyleSchemes).toEqual([
"eventTicket",
"posterEventTicket",
]);
});
it("should contain preferredStyleSchemes if coming from the setter (new order)", () => {
@@ -1223,12 +1273,11 @@ describe("PKPass", () => {
const passjsonGenerated = getGeneratedPassJson(pkpass);
expect(
passjsonGenerated.eventTicket.preferredStyleSchemes,
).not.toBeUndefined();
expect(passjsonGenerated.eventTicket.preferredStyleSchemes).toEqual(
["posterEventTicket", "eventTicket"],
);
expect(passjsonGenerated.preferredStyleSchemes).not.toBeUndefined();
expect(passjsonGenerated.preferredStyleSchemes).toEqual([
"posterEventTicket",
"eventTicket",
]);
});
});