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) {} });