Skip to content

Commit

Permalink
bumped version for release
Browse files Browse the repository at this point in the history
  • Loading branch information
devinpearson committed Nov 16, 2023
1 parent c9d761b commit e22f460
Show file tree
Hide file tree
Showing 2 changed files with 154 additions and 1 deletion.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "programmable-card-code-emulator",
"version": "1.0.0",
"version": "1.0.1",
"main": "src/index.js",
"scripts": {
"test": "jest",
Expand Down
153 changes: 153 additions & 0 deletions tests/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,3 +96,156 @@ test("run vm", async () => {
expect(results[0].type).toBe("before_transaction");
expect(results[0].updatedAt).toBe(dateTime);
});

test("run vm with comment at end", async () => {
let dateTime = new Date();
dateTime = dateTime.toISOString();
const transaction = emu.createTransaction(
"ZAR",
1000,
"0000",
"Test Merchant",
"Test City",
"ZAF",
);
const code = `const beforeTransaction = async (authorization) => {
console.log(authorization);
return true;
};
// This function runs after an approved transaction.
const afterTransaction = async (transaction) => {
// console.log(transaction)
console.log("afterTransaction");
};
// This function runs after a declined transaction
const afterDecline = async (transaction) => {
// console.log(transaction)
console.log("afterDecline");
};
// testing as this use to crash
`;
const results = await emu.run(
transaction,
code,
JSON.stringify({ test: "value" }),
);
expect(results[0].authorizationApproved).toBeNull();
expect(results[0].completedAt).toBe(dateTime);
expect(results[0].createdAt).toBe(dateTime);
expect(results[0].emailCount).toBe(0);
expect(validator.isUUID(results[0].executionId, 4)).toBe(true);
expect(results[0].logs[0].content).toBe(transaction);
expect(results[0].logs[0].createdAt).toBe(dateTime);
expect(results[0].logs[0].level).toBe("info");
expect(results[0].pushNotificationCount).toBe(0);
expect(validator.isUUID(results[0].rootCodeFunctionId, 4)).toBe(true);
expect(results[0].sandbox).toBe(true);
expect(results[0].smsCount).toBe(0);
expect(results[0].startedAt).toBe(dateTime);
expect(results[0].type).toBe("before_transaction");
expect(results[0].updatedAt).toBe(dateTime);
});

test("run vm with no return in begin", async () => {
let dateTime = new Date();
dateTime = dateTime.toISOString();
const transaction = emu.createTransaction(
"ZAR",
1000,
"0000",
"Test Merchant",
"Test City",
"ZAF",
);
const code = `const beforeTransaction = async (authorization) => {
console.log(authorization);
};
// This function runs after an approved transaction.
const afterTransaction = async (transaction) => {
// console.log(transaction)
console.log("afterTransaction");
};
// This function runs after a declined transaction
const afterDecline = async (transaction) => {
// console.log(transaction)
console.log("afterDecline");
};
// testing as this use to crash
`;
const results = await emu.run(
transaction,
code,
JSON.stringify({ test: "value" }),
);
expect(results[0].authorizationApproved).toBeNull();
expect(results[0].completedAt).toBe(dateTime);
expect(results[0].createdAt).toBe(dateTime);
expect(results[0].emailCount).toBe(0);
expect(validator.isUUID(results[0].executionId, 4)).toBe(true);
expect(results[0].logs[0].content).toBe(transaction);
expect(results[0].logs[0].createdAt).toBe(dateTime);
expect(results[0].logs[0].level).toBe("info");
expect(results[0].pushNotificationCount).toBe(0);
expect(validator.isUUID(results[0].rootCodeFunctionId, 4)).toBe(true);
expect(results[0].sandbox).toBe(true);
expect(results[0].smsCount).toBe(0);
expect(results[0].startedAt).toBe(dateTime);
expect(results[0].type).toBe("before_transaction");
expect(results[0].updatedAt).toBe(dateTime);
});

test("run vm with false return on begin", async () => {
let dateTime = new Date();
dateTime = dateTime.toISOString();
const transaction = emu.createTransaction(
"ZAR",
1000,
"0000",
"Test Merchant",
"Test City",
"ZAF",
);
const code = `const beforeTransaction = async (authorization) => {
console.log(authorization);
return false;
};
// This function runs after an approved transaction.
const afterTransaction = async (transaction) => {
// console.log(transaction)
console.log("afterTransaction");
};
// This function runs after a declined transaction
const afterDecline = async (transaction) => {
// console.log(transaction)
console.log("afterDecline");
};
// testing as this use to crash
`;
const results = await emu.run(
transaction,
code,
JSON.stringify({ test: "value" }),
);
expect(results[0].authorizationApproved).toBeNull();
expect(results[0].completedAt).toBe(dateTime);
expect(results[0].createdAt).toBe(dateTime);
expect(results[0].emailCount).toBe(0);
expect(validator.isUUID(results[0].executionId, 4)).toBe(true);
expect(results[0].logs[0].content).toBe(transaction);
expect(results[0].logs[0].createdAt).toBe(dateTime);
expect(results[0].logs[0].level).toBe("info");
expect(results[0].pushNotificationCount).toBe(0);
expect(validator.isUUID(results[0].rootCodeFunctionId, 4)).toBe(true);
expect(results[0].sandbox).toBe(true);
expect(results[0].smsCount).toBe(0);
expect(results[0].startedAt).toBe(dateTime);
expect(results[0].type).toBe("before_transaction");
expect(results[0].updatedAt).toBe(dateTime);
});

0 comments on commit e22f460

Please sign in to comment.