@tonder.io/ionic-lite-sdk 0.0.36-beta.1 → 0.0.38-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +427 -116
- package/dist/classes/BaseInlineCheckout.d.ts +47 -0
- package/dist/classes/liteCheckout.d.ts +25 -29
- package/dist/data/businessApi.d.ts +2 -0
- package/dist/data/cardApi.d.ts +4 -0
- package/dist/data/checkoutApi.d.ts +5 -0
- package/dist/data/customerApi.d.ts +2 -0
- package/dist/data/openPayApi.d.ts +1 -0
- package/dist/data/paymentMethodApi.d.ts +5 -0
- package/dist/data/skyflowApi.d.ts +1 -0
- package/dist/helpers/skyflow.d.ts +3 -0
- package/dist/helpers/utils.d.ts +8 -4
- package/dist/helpers/validations.d.ts +6 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -1
- package/dist/shared/catalog/paymentMethodsCatalog.d.ts +1 -0
- package/dist/shared/constants/messages.d.ts +11 -0
- package/dist/shared/constants/paymentMethodAPM.d.ts +62 -0
- package/dist/shared/constants/tonderUrl.d.ts +7 -0
- package/dist/types/card.d.ts +30 -0
- package/dist/types/checkout.d.ts +109 -0
- package/dist/types/commons.d.ts +42 -0
- package/dist/types/customer.d.ts +22 -0
- package/dist/types/liteInlineCheckout.d.ts +151 -0
- package/dist/types/paymentMethod.d.ts +22 -0
- package/dist/types/requests.d.ts +12 -3
- package/dist/types/transaction.d.ts +101 -0
- package/package.json +4 -1
- package/src/classes/BaseInlineCheckout.ts +387 -0
- package/src/classes/errorResponse.ts +1 -1
- package/src/classes/liteCheckout.ts +372 -356
- package/src/data/businessApi.ts +18 -0
- package/src/data/cardApi.ts +87 -0
- package/src/data/checkoutApi.ts +84 -0
- package/src/data/customerApi.ts +31 -0
- package/src/data/openPayApi.ts +12 -0
- package/src/data/paymentMethodApi.ts +37 -0
- package/src/data/skyflowApi.ts +20 -0
- package/src/helpers/mercadopago.ts +14 -14
- package/src/helpers/skyflow.ts +91 -0
- package/src/helpers/utils.ts +66 -266
- package/src/helpers/validations.ts +55 -0
- package/src/index.ts +9 -1
- package/src/shared/catalog/paymentMethodsCatalog.ts +248 -0
- package/src/shared/constants/messages.ts +11 -0
- package/src/shared/constants/paymentMethodAPM.ts +63 -0
- package/src/shared/constants/tonderUrl.ts +8 -0
- package/src/types/card.ts +35 -0
- package/src/types/checkout.ts +124 -0
- package/src/types/commons.ts +114 -67
- package/src/types/customer.ts +22 -0
- package/src/types/liteInlineCheckout.ts +216 -0
- package/src/types/paymentMethod.ts +24 -0
- package/src/types/requests.ts +12 -3
- package/src/types/transaction.ts +101 -0
- package/src/types/validations.d.ts +11 -0
- package/tests/classes/liteCheckout.test.ts +5 -5
- package/tests/methods/createOrder.test.ts +3 -4
- package/tests/methods/createPayment.test.ts +2 -3
- package/tests/methods/customerRegister.test.ts +3 -4
- package/tests/methods/getBusiness.test.ts +4 -5
- package/tests/methods/getCustomerCards.test.ts +6 -13
- package/tests/methods/registerCustomerCard.test.ts +2 -2
- package/tests/methods/startCheckoutRouter.test.ts +2 -2
- package/tests/methods/startCheckoutRouterFull.test.ts +2 -2
- package/tests/utils/defaultMock.ts +3 -2
- package/tests/utils/mockClasses.ts +7 -4
- package/types/classes/liteCheckout.d.ts +29 -0
- package/types/classes/liteCheckout.js +225 -0
- package/types/classes/liteCheckout.js.map +1 -0
- package/types/helpers/utils.d.ts +3 -0
- package/types/helpers/utils.js +27 -0
- package/types/helpers/utils.js.map +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.js +6 -0
- package/types/index.js.map +1 -0
- package/tests/methods/getOpenpayDeviceSessionID.test.ts +0 -95
- package/tests/methods/getSkyflowToken.test.ts +0 -155
- package/tests/methods/getVaultToken.test.ts +0 -107
|
@@ -4,9 +4,8 @@ import {
|
|
|
4
4
|
CreatePaymentRequest,
|
|
5
5
|
RegisterCustomerCardRequest,
|
|
6
6
|
StartCheckoutRequest,
|
|
7
|
-
TokensRequest,
|
|
8
7
|
StartCheckoutFullRequest,
|
|
9
|
-
StartCheckoutRequestWithCard
|
|
8
|
+
StartCheckoutRequestWithCard, TokensSkyflowRequest
|
|
10
9
|
} from "../../src/types/requests";
|
|
11
10
|
import {
|
|
12
11
|
CreateOrderResponse,
|
|
@@ -556,13 +555,17 @@ export class StartCheckoutFullRequestClass implements StartCheckoutFullRequest {
|
|
|
556
555
|
}
|
|
557
556
|
}
|
|
558
557
|
|
|
559
|
-
export class TokensRequestClass implements
|
|
558
|
+
export class TokensRequestClass implements TokensSkyflowRequest {
|
|
559
|
+
baseUrl!: string;
|
|
560
|
+
apiKey!: string;
|
|
560
561
|
vault_id!: string;
|
|
561
562
|
vault_url!: string;
|
|
562
563
|
data: { [key: string]: any } = {};
|
|
563
564
|
|
|
564
|
-
get mockObject():
|
|
565
|
+
get mockObject(): TokensSkyflowRequest {
|
|
565
566
|
return {
|
|
567
|
+
baseUrl: "",
|
|
568
|
+
apiKey: "",
|
|
566
569
|
vault_id: "string",
|
|
567
570
|
vault_url: "string",
|
|
568
571
|
data: {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TokensRequest } from "../types/skyflow";
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
OpenPay: any;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
type LiteCheckoutConstructor = {
|
|
8
|
+
signal: AbortSignal;
|
|
9
|
+
baseUrlTonder: string;
|
|
10
|
+
publicApiKeyTonder: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class LiteCheckout {
|
|
13
|
+
baseUrlTonder: string;
|
|
14
|
+
signal: AbortSignal;
|
|
15
|
+
publicApiKeyTonder: string;
|
|
16
|
+
constructor({ signal, baseUrlTonder, publicApiKeyTonder }: LiteCheckoutConstructor);
|
|
17
|
+
getOpenpayDeviceSessionID(merchant_id: string, public_key: string): Promise<any>;
|
|
18
|
+
getBusiness(): Promise<any>;
|
|
19
|
+
customerRegister(email: string): Promise<any>;
|
|
20
|
+
createOrder(orderItems: any): Promise<any>;
|
|
21
|
+
createPayment(paymentItems: {
|
|
22
|
+
business_pk: string;
|
|
23
|
+
}): Promise<any>;
|
|
24
|
+
startCheckoutRouter(routerItems: any): Promise<any>;
|
|
25
|
+
getSkyflowTokens({ vault_id, vault_url, data }: TokensRequest): Promise<any>;
|
|
26
|
+
getVaultToken(): Promise<any>;
|
|
27
|
+
getCustomerCards(customerToken: string, query: string): Promise<any>;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.LiteCheckout = void 0;
|
|
16
|
+
const skyflow_js_1 = __importDefault(require("skyflow-js"));
|
|
17
|
+
class LiteCheckout {
|
|
18
|
+
constructor({ signal, baseUrlTonder, publicApiKeyTonder }) {
|
|
19
|
+
this.baseUrlTonder = baseUrlTonder;
|
|
20
|
+
this.signal = signal;
|
|
21
|
+
this.publicApiKeyTonder = publicApiKeyTonder;
|
|
22
|
+
}
|
|
23
|
+
getOpenpayDeviceSessionID(merchant_id, public_key) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
let openpay = yield window.OpenPay;
|
|
26
|
+
openpay.setId(merchant_id);
|
|
27
|
+
openpay.setApiKey(public_key);
|
|
28
|
+
openpay.setSandboxMode(true);
|
|
29
|
+
var response = yield openpay.deviceData.setup({ signal: this.signal });
|
|
30
|
+
return response;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
getBusiness() {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const getBusiness = yield fetch(`${this.baseUrlTonder}/api/v1/payments/business/${this.publicApiKeyTonder}`, {
|
|
36
|
+
headers: {
|
|
37
|
+
Authorization: `Token ${this.publicApiKeyTonder}`,
|
|
38
|
+
},
|
|
39
|
+
signal: this.signal,
|
|
40
|
+
});
|
|
41
|
+
const response = yield getBusiness.json();
|
|
42
|
+
return response;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
customerRegister(email) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const url = `${this.baseUrlTonder}/api/v1/customer/`;
|
|
48
|
+
const data = { email: email };
|
|
49
|
+
const response = yield fetch(url, {
|
|
50
|
+
method: "POST",
|
|
51
|
+
headers: {
|
|
52
|
+
"Content-Type": "application/json",
|
|
53
|
+
Authorization: `Token ${this.publicApiKeyTonder}`,
|
|
54
|
+
},
|
|
55
|
+
signal: this.signal,
|
|
56
|
+
body: JSON.stringify(data),
|
|
57
|
+
});
|
|
58
|
+
if (response.status === 201) {
|
|
59
|
+
const jsonResponse = yield response.json();
|
|
60
|
+
return jsonResponse;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
throw new Error(`Error: ${response.statusText}`);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
createOrder(orderItems) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const url = `${this.baseUrlTonder}/api/v1/orders/`;
|
|
70
|
+
const data = orderItems;
|
|
71
|
+
const response = yield fetch(url, {
|
|
72
|
+
method: "POST",
|
|
73
|
+
headers: {
|
|
74
|
+
"Content-Type": "application/json",
|
|
75
|
+
Authorization: `Token ${this.publicApiKeyTonder}`,
|
|
76
|
+
},
|
|
77
|
+
body: JSON.stringify(data),
|
|
78
|
+
});
|
|
79
|
+
if (response.status === 201) {
|
|
80
|
+
const jsonResponse = yield response.json();
|
|
81
|
+
return jsonResponse;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw new Error(`Error: ${response.statusText}`);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
createPayment(paymentItems) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
const url = `${this.baseUrlTonder}/api/v1/business/${paymentItems.business_pk}/payments/`;
|
|
91
|
+
const data = paymentItems;
|
|
92
|
+
const response = yield fetch(url, {
|
|
93
|
+
method: "POST",
|
|
94
|
+
headers: {
|
|
95
|
+
"Content-Type": "application/json",
|
|
96
|
+
Authorization: `Token ${this.publicApiKeyTonder}`,
|
|
97
|
+
},
|
|
98
|
+
body: JSON.stringify(data),
|
|
99
|
+
});
|
|
100
|
+
if (response.status >= 200 && response.status <= 299) {
|
|
101
|
+
const jsonResponse = yield response.json();
|
|
102
|
+
return jsonResponse;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
throw new Error(`Error: ${response.statusText}`);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
startCheckoutRouter(routerItems) {
|
|
110
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
111
|
+
try {
|
|
112
|
+
const url = `${this.baseUrlTonder}/api/v1/checkout-router/`;
|
|
113
|
+
const data = routerItems;
|
|
114
|
+
const response = yield fetch(url, {
|
|
115
|
+
method: "POST",
|
|
116
|
+
headers: {
|
|
117
|
+
"Content-Type": "application/json",
|
|
118
|
+
Authorization: `Token ${this.publicApiKeyTonder}`,
|
|
119
|
+
},
|
|
120
|
+
body: JSON.stringify(data),
|
|
121
|
+
});
|
|
122
|
+
if (response.status >= 200 && response.status <= 299) {
|
|
123
|
+
const jsonResponse = yield response.json();
|
|
124
|
+
return jsonResponse;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
throw new Error("Failed to start checkout router");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
getSkyflowTokens({ vault_id, vault_url, data }) {
|
|
136
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
+
const skyflow = skyflow_js_1.default.init({
|
|
138
|
+
vaultID: vault_id,
|
|
139
|
+
vaultURL: vault_url,
|
|
140
|
+
getBearerToken: () => __awaiter(this, void 0, void 0, function* () { return yield this.getVaultToken(); }),
|
|
141
|
+
options: {
|
|
142
|
+
logLevel: skyflow_js_1.default.LogLevel.ERROR,
|
|
143
|
+
env: skyflow_js_1.default.Env.DEV,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
const collectContainer = skyflow.container(skyflow_js_1.default.ContainerType.COLLECT);
|
|
147
|
+
const fields = yield Promise.all(Object.keys(data).map((key) => __awaiter(this, void 0, void 0, function* () {
|
|
148
|
+
const cardHolderNameElement = yield collectContainer.create({
|
|
149
|
+
table: "cards",
|
|
150
|
+
column: key,
|
|
151
|
+
type: skyflow_js_1.default.ElementType.INPUT_FIELD
|
|
152
|
+
});
|
|
153
|
+
return { element: cardHolderNameElement, key: key };
|
|
154
|
+
})));
|
|
155
|
+
const fieldPromises = fields.map((field) => {
|
|
156
|
+
return new Promise((resolve, reject) => {
|
|
157
|
+
var _a;
|
|
158
|
+
const div = document.createElement("div");
|
|
159
|
+
div.hidden = true;
|
|
160
|
+
div.id = `id-${field.key}`;
|
|
161
|
+
(_a = document.querySelector(`body`)) === null || _a === void 0 ? void 0 : _a.appendChild(div);
|
|
162
|
+
setTimeout(() => {
|
|
163
|
+
field.element.mount(`#id-${field.key}`);
|
|
164
|
+
setInterval(() => {
|
|
165
|
+
if (field.element.isMounted()) {
|
|
166
|
+
const value = data[field.key];
|
|
167
|
+
field.element.update({ value: value });
|
|
168
|
+
return resolve(field.element.isMounted());
|
|
169
|
+
}
|
|
170
|
+
}, 120);
|
|
171
|
+
}, 120);
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
const result = yield Promise.all(fieldPromises);
|
|
175
|
+
const mountFail = result.find((item) => !item);
|
|
176
|
+
if (mountFail) {
|
|
177
|
+
return { error: "Ocurrió un error al montar los campos de la tarjeta" };
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
try {
|
|
181
|
+
const collectResponseSkyflowTonder = yield collectContainer.collect();
|
|
182
|
+
return collectResponseSkyflowTonder["records"][0]["fields"];
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
console.error("Por favor, verifica todos los campos de tu tarjeta");
|
|
186
|
+
return { error: "Por favor, verifica todos los campos de tu tarjeta" };
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
getVaultToken() {
|
|
192
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
193
|
+
const response = yield fetch(`${this.baseUrlTonder}/api/v1/vault-token/`, {
|
|
194
|
+
method: 'GET',
|
|
195
|
+
headers: {
|
|
196
|
+
'Authorization': `Token ${this.publicApiKeyTonder}`
|
|
197
|
+
},
|
|
198
|
+
signal: this.signal,
|
|
199
|
+
});
|
|
200
|
+
if (response.ok) {
|
|
201
|
+
const responseBody = yield response.json();
|
|
202
|
+
return responseBody.token;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
throw new Error('Failed to retrieve bearer token');
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
getCustomerCards(customerToken, query) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
const response = yield fetch(`${this.baseUrlTonder}/api/v1/cards/${query}`, {
|
|
212
|
+
method: 'GET',
|
|
213
|
+
headers: {
|
|
214
|
+
'Authorization': `Token ${customerToken}`
|
|
215
|
+
},
|
|
216
|
+
signal: this.signal,
|
|
217
|
+
});
|
|
218
|
+
const jsonResponse = yield response.json();
|
|
219
|
+
console.log("jsonResponse: ", jsonResponse);
|
|
220
|
+
return jsonResponse;
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
exports.LiteCheckout = LiteCheckout;
|
|
225
|
+
//# sourceMappingURL=liteCheckout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liteCheckout.js","sourceRoot":"","sources":["../../src/classes/liteCheckout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createObserver = void 0;
|
|
4
|
+
const createObserver = ({ target }) => {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
let hasChanged = false;
|
|
7
|
+
const targetNode = document.querySelector(target);
|
|
8
|
+
const config = { attributes: true, childList: true, subtree: true };
|
|
9
|
+
const callback = (mutationList, observer) => {
|
|
10
|
+
for (const mutation of mutationList) {
|
|
11
|
+
if (mutation.type === "childList") {
|
|
12
|
+
hasChanged = true;
|
|
13
|
+
resolve(mutation);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const observer = new MutationObserver(callback);
|
|
18
|
+
observer.observe(targetNode, config);
|
|
19
|
+
window.setTimeout(() => {
|
|
20
|
+
if (!hasChanged) {
|
|
21
|
+
reject("Mounting error");
|
|
22
|
+
}
|
|
23
|
+
}, 5000);
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
exports.createObserver = createObserver;
|
|
27
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,EAAE,MAAM,EAAsB,EAAgB,EAAE;IAE7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAErC,IAAI,UAAU,GAAG,KAAK,CAAC;QAGvB,MAAM,UAAU,GAAQ,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAGvD,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAGpE,MAAM,QAAQ,GAAG,CAAC,YAAiB,EAAE,QAA0B,EAAE,EAAE;YACjE,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,UAAU,GAAG,IAAI,CAAC;oBAClB,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACnB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAGF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAGhD,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,UAAU,CAAC,GAAE,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAEX,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AApCY,QAAA,cAAc,kBAoC1B"}
|
package/types/index.d.ts
ADDED
package/types/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LiteCheckout = void 0;
|
|
4
|
+
const liteCheckout_1 = require("./classes/liteCheckout");
|
|
5
|
+
Object.defineProperty(exports, "LiteCheckout", { enumerable: true, get: function () { return liteCheckout_1.LiteCheckout; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAGjD,6FAHK,2BAAY,OAGL"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import "../utils/defaultMock";
|
|
2
|
-
import { LiteCheckout } from "../../src";
|
|
3
|
-
import { ErrorResponse } from "../../src/classes/errorResponse";
|
|
4
|
-
import { LiteCheckoutConstructor } from "../../src/classes/liteCheckout";
|
|
5
|
-
import { IErrorResponse } from "../../src/types/responses";
|
|
6
|
-
import { constructorFields } from "../utils/defaultMock";
|
|
7
|
-
|
|
8
|
-
declare global {
|
|
9
|
-
interface Window {
|
|
10
|
-
OpenPay: any;
|
|
11
|
-
Skyflow: any;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
describe("getOpenpayDeviceSessionID", () => {
|
|
16
|
-
let checkoutConstructor: LiteCheckoutConstructor,
|
|
17
|
-
liteCheckout: LiteCheckout,
|
|
18
|
-
fetchSpy: jest.SpyInstance,
|
|
19
|
-
liteCheckoutSpy: jest.SpyInstance;
|
|
20
|
-
|
|
21
|
-
beforeEach(async () => {
|
|
22
|
-
window.fetch = jest.fn();
|
|
23
|
-
|
|
24
|
-
checkoutConstructor = {
|
|
25
|
-
...constructorFields,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
liteCheckout = new LiteCheckout(constructorFields);
|
|
29
|
-
|
|
30
|
-
fetchSpy = jest.spyOn(global, "fetch");
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
afterEach(() => {
|
|
34
|
-
jest.restoreAllMocks();
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it("getOpenpayDeviceSessionID success", async () => {
|
|
38
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getOpenpayDeviceSessionID");
|
|
39
|
-
|
|
40
|
-
window.OpenPay = {
|
|
41
|
-
setId: jest.fn(),
|
|
42
|
-
setApiKey: jest.fn(),
|
|
43
|
-
setSandboxMode: jest.fn(),
|
|
44
|
-
deviceData: {
|
|
45
|
-
setup: jest.fn().mockImplementation(() => Promise.resolve("test")),
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
expect(
|
|
50
|
-
liteCheckout.getOpenpayDeviceSessionID("4321", "1234", true)
|
|
51
|
-
).resolves.toBe("test");
|
|
52
|
-
expect(liteCheckoutSpy).toHaveBeenCalledWith("4321", "1234", true);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it("getOpenpayDeviceSessionID empty", async () => {
|
|
56
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getOpenpayDeviceSessionID");
|
|
57
|
-
|
|
58
|
-
window.OpenPay = {
|
|
59
|
-
setId: jest.fn(),
|
|
60
|
-
setApiKey: jest.fn(),
|
|
61
|
-
setSandboxMode: jest.fn(),
|
|
62
|
-
deviceData: {
|
|
63
|
-
setup: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
expect(
|
|
68
|
-
liteCheckout.getOpenpayDeviceSessionID("", "", true)
|
|
69
|
-
).resolves.toBeUndefined();
|
|
70
|
-
expect(liteCheckoutSpy).toHaveBeenCalledWith("", "", true);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
it("getOpenpayDeviceSessionID error", async () => {
|
|
74
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getOpenpayDeviceSessionID");
|
|
75
|
-
|
|
76
|
-
window.OpenPay = {
|
|
77
|
-
setId: jest.fn(),
|
|
78
|
-
setApiKey: jest.fn(),
|
|
79
|
-
setSandboxMode: jest.fn(),
|
|
80
|
-
deviceData: {
|
|
81
|
-
setup: jest.fn().mockRejectedValue("error"),
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
await liteCheckout.getOpenpayDeviceSessionID("", "", true);
|
|
87
|
-
} catch (e) {
|
|
88
|
-
const error: IErrorResponse = e as IErrorResponse;
|
|
89
|
-
expect(liteCheckoutSpy).toHaveBeenCalledWith("", "", true);
|
|
90
|
-
expect(liteCheckoutSpy).toHaveReturned();
|
|
91
|
-
expect(error.message).toStrictEqual("error");
|
|
92
|
-
expect(error).toBeInstanceOf(ErrorResponse);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
});
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import "../utils/defaultMock";
|
|
2
|
-
import Skyflow from "skyflow-js";
|
|
3
|
-
import { LiteCheckout } from "../../src";
|
|
4
|
-
import { ErrorResponse } from "../../src/classes/errorResponse";
|
|
5
|
-
import { LiteCheckoutConstructor } from "../../src/classes/liteCheckout";
|
|
6
|
-
import { IErrorResponse } from "../../src/types/responses";
|
|
7
|
-
import { constructorFields } from "../utils/defaultMock";
|
|
8
|
-
import { TokensRequestClass } from "../utils/mockClasses";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
declare global {
|
|
12
|
-
interface Window {
|
|
13
|
-
OpenPay: any;
|
|
14
|
-
Skyflow: any;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
describe("getSkyflowToken", () => {
|
|
19
|
-
let checkoutConstructor: LiteCheckoutConstructor,
|
|
20
|
-
liteCheckout: LiteCheckout,
|
|
21
|
-
fetchSpy: jest.SpyInstance,
|
|
22
|
-
liteCheckoutSpy: jest.SpyInstance;
|
|
23
|
-
|
|
24
|
-
beforeEach(async () => {
|
|
25
|
-
window.fetch = jest.fn();
|
|
26
|
-
|
|
27
|
-
checkoutConstructor = {
|
|
28
|
-
...constructorFields,
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
liteCheckout = new LiteCheckout(constructorFields);
|
|
32
|
-
|
|
33
|
-
fetchSpy = jest.spyOn(global, "fetch");
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
afterEach(() => {
|
|
37
|
-
jest.restoreAllMocks();
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it("getSkyflowTokens success", async () => {
|
|
41
|
-
liteCheckout.getVaultToken = jest
|
|
42
|
-
.fn()
|
|
43
|
-
.mockImplementation(() => Promise.resolve("1234"));
|
|
44
|
-
|
|
45
|
-
liteCheckout.getFieldsPromise = jest
|
|
46
|
-
.fn()
|
|
47
|
-
.mockImplementation(() =>
|
|
48
|
-
Promise.resolve(new Array(5).fill(Promise.resolve(true)))
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getSkyflowTokens");
|
|
52
|
-
|
|
53
|
-
const response = await liteCheckout.getSkyflowTokens({
|
|
54
|
-
...new TokensRequestClass(),
|
|
55
|
-
});
|
|
56
|
-
expect(response).toStrictEqual("1234");
|
|
57
|
-
expect(liteCheckoutSpy).toHaveBeenCalled();
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
it("getSkyflowTokens empty", async () => {
|
|
61
|
-
liteCheckout.getVaultToken = jest
|
|
62
|
-
.fn()
|
|
63
|
-
.mockImplementation(() => Promise.resolve(""));
|
|
64
|
-
|
|
65
|
-
jest.spyOn(Skyflow, "init").mockImplementation(jest.fn().mockImplementation(() => ({
|
|
66
|
-
container: () => ({
|
|
67
|
-
collect: jest.fn().mockResolvedValue(""),
|
|
68
|
-
}),
|
|
69
|
-
})));
|
|
70
|
-
|
|
71
|
-
liteCheckout.getFieldsPromise = jest
|
|
72
|
-
.fn()
|
|
73
|
-
.mockImplementation(() =>
|
|
74
|
-
Promise.resolve(new Array(5).fill(Promise.resolve(true)))
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getSkyflowTokens");
|
|
78
|
-
|
|
79
|
-
let error: ErrorResponse;
|
|
80
|
-
|
|
81
|
-
try {
|
|
82
|
-
const response = await liteCheckout.getSkyflowTokens({
|
|
83
|
-
...new TokensRequestClass(),
|
|
84
|
-
}) as IErrorResponse;
|
|
85
|
-
} catch (e: any) {
|
|
86
|
-
error = e;
|
|
87
|
-
expect(error).toBeInstanceOf(ErrorResponse);
|
|
88
|
-
expect(error.message).toStrictEqual("Por favor, verifica todos los campos de tu tarjeta");
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it("getSkyflowTokens error mount fields", async () => {
|
|
93
|
-
liteCheckout.getVaultToken = jest
|
|
94
|
-
.fn()
|
|
95
|
-
.mockImplementation(() => Promise.resolve(""));
|
|
96
|
-
|
|
97
|
-
jest.spyOn(Skyflow, "init").mockImplementation(jest.fn().mockImplementation(() => ({
|
|
98
|
-
container: () => ({
|
|
99
|
-
collect: jest.fn().mockResolvedValue(""),
|
|
100
|
-
}),
|
|
101
|
-
})));
|
|
102
|
-
|
|
103
|
-
liteCheckout.getFieldsPromise = jest
|
|
104
|
-
.fn()
|
|
105
|
-
.mockImplementation(() =>
|
|
106
|
-
new Array(5).fill(false)
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getSkyflowTokens");
|
|
110
|
-
|
|
111
|
-
let error: ErrorResponse;
|
|
112
|
-
|
|
113
|
-
try {
|
|
114
|
-
const response = (await liteCheckout.getSkyflowTokens({
|
|
115
|
-
...new TokensRequestClass(),
|
|
116
|
-
})) as IErrorResponse;
|
|
117
|
-
} catch (e: any) {
|
|
118
|
-
error = e;
|
|
119
|
-
expect(error).toBeInstanceOf(ErrorResponse);
|
|
120
|
-
expect(error.message).toStrictEqual("Ocurrió un error al montar los campos de la tarjeta");
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
it("getSkyflowTokens error collect catch", async () => {
|
|
125
|
-
liteCheckout.getVaultToken = jest
|
|
126
|
-
.fn()
|
|
127
|
-
.mockImplementation(() => Promise.resolve("1234"));
|
|
128
|
-
|
|
129
|
-
jest.spyOn(Skyflow, "init").mockImplementation(jest.fn().mockImplementation(() => ({
|
|
130
|
-
container: () => ({
|
|
131
|
-
collect: jest.fn().mockRejectedValue("error"),
|
|
132
|
-
}),
|
|
133
|
-
})));
|
|
134
|
-
|
|
135
|
-
liteCheckout.getFieldsPromise = jest
|
|
136
|
-
.fn()
|
|
137
|
-
.mockImplementation(() =>
|
|
138
|
-
Promise.resolve(new Array(5).fill(Promise.resolve(true)))
|
|
139
|
-
);
|
|
140
|
-
|
|
141
|
-
liteCheckoutSpy = jest.spyOn(liteCheckout, "getSkyflowTokens");
|
|
142
|
-
|
|
143
|
-
let error: ErrorResponse;
|
|
144
|
-
|
|
145
|
-
try {
|
|
146
|
-
const response = (await liteCheckout.getSkyflowTokens({
|
|
147
|
-
...new TokensRequestClass(),
|
|
148
|
-
})) as IErrorResponse;
|
|
149
|
-
} catch (e: any) {
|
|
150
|
-
error = e;
|
|
151
|
-
expect(error.message).toStrictEqual("error");
|
|
152
|
-
expect(error).toBeInstanceOf(ErrorResponse);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
});
|