@twofistedjustice/square-pie
Version:
an easy to use class based chainable interface for the Square API.
102 lines (87 loc) • 3.22 kB
JavaScript
const util = require("../src/lib/utilities");
const spy_shazam_integer = jest.spyOn(util, "shazam_is_integer");
const Customer_Delete = require("../src/lib/customer_request_delete");
/* --------------------------------------------------------*
* *
* Customer_Delete
* *
* ------------------------------------------------------- */
// todo test query param version as second argument
// todo test query param version as make()
describe("Customer_Delete", () => {
let del;
let class_name = "Customer_Delete";
let endpoint = "/123?version=5"; //copy and paste from Square docs
let method = "DELETE"; //http method from Square docs
beforeEach(function () {
del = new Customer_Delete("123", 5);
});
test("should have _display name", () => {
expect(del._display_name).toBeDefined();
});
test("should have display name", () => {
expect(del.display_name).toBeDefined();
});
test("_display_name should be same as class name", () => {
expect(del._display_name).toEqual(class_name);
});
test("display name should be same as class name", () => {
expect(del.display_name).toEqual(class_name);
});
test("should have the method defined by Square set", () => {
expect(del.method).toEqual(method);
});
test("should have defined _last_verified_square_api_version", () => {
expect(del._last_verified_square_api_version).toBeDefined();
});
test("should have defined square version", () => {
expect(del.square_version).toBeDefined();
});
test("should have defined help", () => {
expect(del.help).toBeDefined();
});
test("should have defined _help", () => {
expect(del._help).toBeDefined();
});
test("should have _delivery", () => {
del.delivery = {};
expect(del.delivery).toBeDefined();
});
test("should have an endpoint", () => {
expect(del.endpoint).toEqual(endpoint);
});
// MAKE
test("make().version() should create query param when none is provided to constructor", () => {
let del_icious = new Customer_Delete("ABC");
let expected = "/ABC?version=6";
del_icious.make().version(6);
expect(del_icious.endpoint).toEqual(expected);
});
test("make().version() should replace query param when one is provided to constructor", () => {
let expected = "/123?version=19";
del.make().version(19);
expect(del.endpoint).toEqual(expected);
});
test("make().id() should replace endpoint when query params are present", () => {
let expected = "/abc?version=5";
del.make().id("abc");
expect(del.endpoint).toEqual(expected);
});
test("make().id() should set endpoint when no starting id was provided", () => {
let deletio = new Customer_Delete();
let expected = "/abc";
deletio.make().id("abc");
expect(deletio.endpoint).toEqual(expected);
});
test("setter should call shazam_is_integer", () => {
let klass = del;
let test_val = 95;
let caller = "version";
klass[caller] = test_val;
expect(spy_shazam_integer).toHaveBeenCalledWith(
test_val,
class_name,
caller
);
});
});