Files
passkit-generator/spec/factory.ts
2021-02-08 00:03:28 +01:00

171 lines
3.6 KiB
TypeScript

import { createPass } from "../lib/factory";
import formatMessage from "../lib/messages";
import * as fs from "fs";
import * as path from "path";
describe("createPass", () => {
it("should throw if first argument is not provided", async () => {
await expectAsync(createPass(undefined)).toBeRejectedWithError(
formatMessage("CP_NO_OPTS"),
);
});
try {
let certificatesPath = "../certificates";
try {
fs.accessSync(path.resolve(__dirname, certificatesPath));
} catch (err) {
certificatesPath = "../certs";
try {
fs.accessSync(path.resolve(__dirname, certificatesPath));
} catch (err) {
certificatesPath = "";
}
}
if (certificatesPath) {
it("should return a pass instance", async () => {
await expectAsync(
createPass({
model: path.resolve(
__dirname,
"../examples/models/exampleBooking.pass",
),
certificates: {
signerCert: path.resolve(
__dirname,
certificatesPath,
"./signerCert.pem",
),
signerKey: {
keyFile: path.resolve(
__dirname,
certificatesPath,
"./signerKey.pem",
),
passphrase: "password1234",
},
wwdr: path.resolve(
__dirname,
certificatesPath,
"./WWDR.pem",
),
},
}),
).toBeResolved();
});
describe("Model validation", () => {
it("Should reject with non valid model", async () => {
await expectAsync(
createPass({
// @ts-expect-error
model: 0,
certificates: {
signerCert: path.resolve(
__dirname,
certificatesPath,
"./signerCert.pem",
),
signerKey: {
keyFile: path.resolve(
__dirname,
certificatesPath,
"./signerKey.pem",
),
passphrase: "password1234",
},
wwdr: path.resolve(
__dirname,
certificatesPath,
"./WWDR.pem",
),
},
}),
).toBeRejected();
await expectAsync(
createPass({
model: undefined,
certificates: {
signerCert: path.resolve(
__dirname,
certificatesPath,
"./signerCert.pem",
),
signerKey: {
keyFile: path.resolve(
__dirname,
certificatesPath,
"./signerKey.pem",
),
passphrase: "password1234",
},
wwdr: path.resolve(
__dirname,
certificatesPath,
"./WWDR.pem",
),
},
}),
).toBeRejected();
await expectAsync(
createPass({
model: null,
certificates: {
signerCert: path.resolve(
__dirname,
certificatesPath,
"./signerCert.pem",
),
signerKey: {
keyFile: path.resolve(
__dirname,
certificatesPath,
"./signerKey.pem",
),
passphrase: "password1234",
},
wwdr: path.resolve(
__dirname,
certificatesPath,
"./WWDR.pem",
),
},
}),
).toBeRejected();
await expectAsync(
createPass({
model: {},
certificates: {
signerCert: path.resolve(
__dirname,
certificatesPath,
"./signerCert.pem",
),
signerKey: {
keyFile: path.resolve(
__dirname,
certificatesPath,
"./signerKey.pem",
),
passphrase: "password1234",
},
wwdr: path.resolve(
__dirname,
certificatesPath,
"./WWDR.pem",
),
},
}),
).toBeRejected();
});
});
}
} catch (err) {}
});