@nimee/api-clients 1.1.4 → 1.1.6
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/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/payment.d.ts +8 -0
- package/dist/src/payment.js +32 -0
- package/dist/src/payment.js.map +1 -0
- package/dist/src/ticket.d.ts +2 -0
- package/dist/src/ticket.js +15 -0
- package/dist/src/ticket.js.map +1 -1
- package/dist/tests/ticket.test.d.ts +1 -0
- package/dist/tests/ticket.test.js +58 -0
- package/dist/tests/ticket.test.js.map +1 -0
- package/jest.config.js +21 -0
- package/package.json +8 -2
- package/src/index.ts +1 -0
- package/src/payment.ts +13 -0
- package/src/ticket.ts +14 -0
- package/tests/ticket.test.ts +50 -0
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventOrderClient = exports.AccountClient = exports.UserEventClient = exports.TicketClient = exports.EventClient = exports.UserClient = void 0;
|
|
3
|
+
exports.PaymentClient = exports.EventOrderClient = exports.AccountClient = exports.UserEventClient = exports.TicketClient = exports.EventClient = exports.UserClient = void 0;
|
|
4
4
|
var user_1 = require("./user");
|
|
5
5
|
Object.defineProperty(exports, "UserClient", { enumerable: true, get: function () { return user_1.UserClient; } });
|
|
6
6
|
var event_1 = require("./event");
|
|
@@ -13,4 +13,6 @@ var account_1 = require("./account");
|
|
|
13
13
|
Object.defineProperty(exports, "AccountClient", { enumerable: true, get: function () { return account_1.AccountClient; } });
|
|
14
14
|
var eventOrder_1 = require("./eventOrder");
|
|
15
15
|
Object.defineProperty(exports, "EventOrderClient", { enumerable: true, get: function () { return eventOrder_1.EventOrderClient; } });
|
|
16
|
+
var payment_1 = require("./payment");
|
|
17
|
+
Object.defineProperty(exports, "PaymentClient", { enumerable: true, get: function () { return payment_1.PaymentClient; } });
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AACpB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AACpB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA;AACzB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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.PaymentClient = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const port = process.env.PAYMENT_PORT;
|
|
18
|
+
const basePath = process.env.IS_LOCAL === "true" ? `http://localhost:${port}` : "http://payment";
|
|
19
|
+
const paymentUrl = `${basePath}/payment`;
|
|
20
|
+
class PaymentClient {
|
|
21
|
+
getCouponById(params) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const { accountId, eventId, couponId, jwt } = params;
|
|
24
|
+
const response = yield axios_1.default.get(`${paymentUrl}/coupon/getById/${accountId}/${eventId}/${couponId}`, {
|
|
25
|
+
headers: { jwt },
|
|
26
|
+
});
|
|
27
|
+
return response === null || response === void 0 ? void 0 : response.data;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.PaymentClient = PaymentClient;
|
|
32
|
+
//# sourceMappingURL=payment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/payment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACjG,MAAM,UAAU,GAAG,GAAG,QAAQ,UAAU,CAAC;AACzC,MAAa,aAAa;IAClB,aAAa,CAAC,MAA6E;;YAC/F,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YACrD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,UAAU,mBAAmB,SAAS,IAAI,OAAO,IAAI,QAAQ,EAAE,EAAE;gBACnG,OAAO,EAAE,EAAE,GAAG,EAAE;aACjB,CAAC,CAAC;YACH,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;QACxB,CAAC;KAAA;CACF;AARD,sCAQC"}
|
package/dist/src/ticket.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IUserEventModel } from "@nimee/shared-types";
|
|
1
2
|
export declare class TicketClient {
|
|
2
3
|
getTicketById(params: {
|
|
3
4
|
token: string;
|
|
@@ -9,4 +10,5 @@ export declare class TicketClient {
|
|
|
9
10
|
token: string;
|
|
10
11
|
ticketIds: string[];
|
|
11
12
|
}): Promise<any>;
|
|
13
|
+
static extractTickets(arr: IUserEventModel[]): string[];
|
|
12
14
|
}
|
package/dist/src/ticket.js
CHANGED
|
@@ -36,6 +36,21 @@ class TicketClient {
|
|
|
36
36
|
return response === null || response === void 0 ? void 0 : response.data;
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
+
static extractTickets(arr) {
|
|
40
|
+
const tickets = [];
|
|
41
|
+
arr.forEach((item) => {
|
|
42
|
+
var _a;
|
|
43
|
+
if ((_a = item.ticketsInfo) === null || _a === void 0 ? void 0 : _a.length) {
|
|
44
|
+
item.ticketsInfo.forEach((ticketInfo) => {
|
|
45
|
+
tickets.push(ticketInfo.ticket);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
else if (item.ticket) {
|
|
49
|
+
tickets.push(item.ticket);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return tickets;
|
|
53
|
+
}
|
|
39
54
|
}
|
|
40
55
|
exports.TicketClient = TicketClient;
|
|
41
56
|
//# sourceMappingURL=ticket.js.map
|
package/dist/src/ticket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket.js","sourceRoot":"","sources":["../../src/ticket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ticket.js","sourceRoot":"","sources":["../../src/ticket.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;AAC/F,MAAM,SAAS,GAAG,GAAG,QAAQ,eAAe,CAAC;AAE7C,MAAa,YAAY;IACjB,aAAa,CAAC,MAA+E;;YACjG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YACvD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,SAAS,YAAY,SAAS,IAAI,OAAO,IAAI,QAAQ,EAAE,EAAE;gBAC3F,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE;aAC7B,CAAC,CAAC;YACH,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;QACxB,CAAC;KAAA;IACK,0BAA0B,CAAC,MAA8C;;YAC7E,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,SAAS,6BAA6B,EACzC,EAAE,SAAS,EAAE,EACb;gBACE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE;aAC7B,CACF,CAAC;YACF,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC;QACxB,CAAC;KAAA;IACD,MAAM,CAAC,cAAc,CAAC,GAAsB;QAC1C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAqB,EAAE,EAAE;;YACpC,IAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAA4B,EAAE,EAAE;oBACxD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;aACJ;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE;gBACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAhCD,oCAgCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
const tests_1 = require("@nimee/tests");
|
|
16
|
+
const mongoose_1 = __importDefault(require("mongoose"));
|
|
17
|
+
const ticket_1 = require("../src/ticket");
|
|
18
|
+
describe("ticket client", () => {
|
|
19
|
+
test("when calling extract tickets from user events array with ticketsInfo array, all tickets extract correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
// Arrange
|
|
21
|
+
const eventId = new mongoose_1.default.Types.ObjectId();
|
|
22
|
+
const accountId = new mongoose_1.default.Types.ObjectId();
|
|
23
|
+
const ticketId1 = new mongoose_1.default.Types.ObjectId();
|
|
24
|
+
const ticketId2 = new mongoose_1.default.Types.ObjectId();
|
|
25
|
+
const helper = new tests_1.Helper();
|
|
26
|
+
const userEvent1 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId1.toString()], false);
|
|
27
|
+
const userEvent2 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], false);
|
|
28
|
+
const userEvent3 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString(), ticketId2.toString(), ticketId1.toString()], false);
|
|
29
|
+
// ACT
|
|
30
|
+
const tickets = ticket_1.TicketClient.extractTickets([userEvent1, userEvent2, userEvent3]);
|
|
31
|
+
// Assert
|
|
32
|
+
expect(tickets.length).toBe(5);
|
|
33
|
+
expect(tickets).toEqual([
|
|
34
|
+
ticketId1.toString(),
|
|
35
|
+
ticketId2.toString(),
|
|
36
|
+
ticketId2.toString(),
|
|
37
|
+
ticketId2.toString(),
|
|
38
|
+
ticketId1.toString(),
|
|
39
|
+
]);
|
|
40
|
+
}));
|
|
41
|
+
test("when calling extract tickets from user events array with ticket (legacy), all tickets extract correctly", () => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
|
+
// Arrange
|
|
43
|
+
const eventId = new mongoose_1.default.Types.ObjectId();
|
|
44
|
+
const accountId = new mongoose_1.default.Types.ObjectId();
|
|
45
|
+
const ticketId1 = new mongoose_1.default.Types.ObjectId();
|
|
46
|
+
const ticketId2 = new mongoose_1.default.Types.ObjectId();
|
|
47
|
+
const helper = new tests_1.Helper();
|
|
48
|
+
const userEvent1 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId1.toString()], true);
|
|
49
|
+
const userEvent2 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], true);
|
|
50
|
+
const userEvent3 = yield helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], true);
|
|
51
|
+
// ACT
|
|
52
|
+
const tickets = ticket_1.TicketClient.extractTickets([userEvent1, userEvent2, userEvent3]);
|
|
53
|
+
// Assert
|
|
54
|
+
expect(tickets.length).toBe(3);
|
|
55
|
+
expect(tickets).toEqual([ticketId1.toString(), ticketId2.toString(), ticketId2.toString()]);
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=ticket.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticket.test.js","sourceRoot":"","sources":["../../tests/ticket.test.ts"],"names":[],"mappings":"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"}
|
package/jest.config.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const config = require("@nimee/tests");
|
|
2
|
+
|
|
3
|
+
const { clearMocks, coverageDirectory, collectCoverage, coverageReporters, forceExit, transform, testTimeout } =
|
|
4
|
+
config.jestConfig;
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
setupFiles: ["dotenv/config"],
|
|
8
|
+
globalSetup: "../../node_modules/@nimee/tests/setup/global-setup.js",
|
|
9
|
+
globalTeardown: "../../node_modules/@nimee/tests/setup/global-teardown.js",
|
|
10
|
+
setupFilesAfterEnv: ["../../node_modules/@nimee/tests/setup/after-env-setup.js"],
|
|
11
|
+
clearMocks: clearMocks,
|
|
12
|
+
coverageDirectory: coverageDirectory,
|
|
13
|
+
testEnvironment: "node",
|
|
14
|
+
collectCoverage: collectCoverage,
|
|
15
|
+
coverageReporters: coverageReporters,
|
|
16
|
+
forceExit: forceExit,
|
|
17
|
+
transform: { "^.+\\.tsx?$": "ts-jest" },
|
|
18
|
+
testTimeout: testTimeout,
|
|
19
|
+
modulePathIgnorePatterns: ["<rootDir>/test-client/", "<rootDir>/dist/"],
|
|
20
|
+
transformIgnorePatterns: ["node_modules/(?!axios)"],
|
|
21
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nimee/api-clients",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "communication http for each ms",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"author": "dan goldberg",
|
|
@@ -17,18 +17,24 @@
|
|
|
17
17
|
"i-all-workspaces": "version=${npm_package_version} npm i @nimee/api-clients@$version --workspace=@nimee/event --workspace=@nimee/user-event --workspace=@nimee/send-notification --workspace=@nimee/user --workspace=@nimee/payment --workspace=@nimee/analytics"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
+
"@nimee/tests": "0.0.3",
|
|
20
21
|
"@typescript-eslint/eslint-plugin": "^5.18.0",
|
|
21
22
|
"@typescript-eslint/eslint-plugin-tslint": "^5.18.0",
|
|
22
23
|
"@typescript-eslint/parser": "^5.18.0",
|
|
23
24
|
"eslint": "8.22.0",
|
|
24
25
|
"eslint-plugin-jsdoc": "^38.1.6",
|
|
25
26
|
"eslint-plugin-no-null": "^1.0.2",
|
|
27
|
+
"jest": "^29.0.0",
|
|
28
|
+
"jest-junit": "^12.0.0",
|
|
29
|
+
"nock": "^13.0.5",
|
|
26
30
|
"nodemon": "^1.19.1",
|
|
31
|
+
"sinon": "^9.2.1",
|
|
32
|
+
"ts-jest": "^29.0.0",
|
|
27
33
|
"typescript": "^4.8.3"
|
|
28
34
|
},
|
|
29
35
|
"types": "dist/src/index.d.ts",
|
|
30
36
|
"dependencies": {
|
|
31
|
-
"@nimee/logger": "1.0.
|
|
37
|
+
"@nimee/logger": "1.0.22",
|
|
32
38
|
"@nimee/shared-types": "^1.0.35",
|
|
33
39
|
"axios": "1.2.1"
|
|
34
40
|
}
|
package/src/index.ts
CHANGED
package/src/payment.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
const port = process.env.PAYMENT_PORT;
|
|
3
|
+
const basePath = process.env.IS_LOCAL === "true" ? `http://localhost:${port}` : "http://payment";
|
|
4
|
+
const paymentUrl = `${basePath}/payment`;
|
|
5
|
+
export class PaymentClient {
|
|
6
|
+
async getCouponById(params: { accountId: string; eventId: string; couponId: string; jwt: string }) {
|
|
7
|
+
const { accountId, eventId, couponId, jwt } = params;
|
|
8
|
+
const response = await axios.get(`${paymentUrl}/coupon/getById/${accountId}/${eventId}/${couponId}`, {
|
|
9
|
+
headers: { jwt },
|
|
10
|
+
});
|
|
11
|
+
return response?.data;
|
|
12
|
+
}
|
|
13
|
+
}
|
package/src/ticket.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ITicketInfoModel, IUserEventModel } from "@nimee/shared-types";
|
|
1
2
|
import axios from "axios";
|
|
2
3
|
const port = process.env.EVENT_PORT;
|
|
3
4
|
const basePath = process.env.IS_LOCAL === "true" ? `http://localhost:${port}` : "http://event";
|
|
@@ -22,4 +23,17 @@ export class TicketClient {
|
|
|
22
23
|
);
|
|
23
24
|
return response?.data;
|
|
24
25
|
}
|
|
26
|
+
static extractTickets(arr: IUserEventModel[]): string[] {
|
|
27
|
+
const tickets: Array<string> = [];
|
|
28
|
+
arr.forEach((item: IUserEventModel) => {
|
|
29
|
+
if (item.ticketsInfo?.length) {
|
|
30
|
+
item.ticketsInfo.forEach((ticketInfo: ITicketInfoModel) => {
|
|
31
|
+
tickets.push(ticketInfo.ticket);
|
|
32
|
+
});
|
|
33
|
+
} else if (item.ticket) {
|
|
34
|
+
tickets.push(item.ticket);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return tickets;
|
|
38
|
+
}
|
|
25
39
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Helper } from "@nimee/tests";
|
|
2
|
+
import mongoose from "mongoose";
|
|
3
|
+
import { TicketClient } from "../src/ticket";
|
|
4
|
+
describe("ticket client", () => {
|
|
5
|
+
test("when calling extract tickets from user events array with ticketsInfo array, all tickets extract correctly", async () => {
|
|
6
|
+
// Arrange
|
|
7
|
+
const eventId = new mongoose.Types.ObjectId();
|
|
8
|
+
const accountId = new mongoose.Types.ObjectId();
|
|
9
|
+
const ticketId1 = new mongoose.Types.ObjectId();
|
|
10
|
+
const ticketId2 = new mongoose.Types.ObjectId();
|
|
11
|
+
|
|
12
|
+
const helper = new Helper();
|
|
13
|
+
const userEvent1 = await helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId1.toString()], false);
|
|
14
|
+
const userEvent2 = await helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], false);
|
|
15
|
+
const userEvent3 = await helper.createUserEvent(
|
|
16
|
+
eventId.toString(),
|
|
17
|
+
accountId.toString(),
|
|
18
|
+
[ticketId2.toString(), ticketId2.toString(), ticketId1.toString()],
|
|
19
|
+
false
|
|
20
|
+
);
|
|
21
|
+
// ACT
|
|
22
|
+
const tickets = TicketClient.extractTickets([userEvent1, userEvent2, userEvent3]);
|
|
23
|
+
// Assert
|
|
24
|
+
expect(tickets.length).toBe(5);
|
|
25
|
+
expect(tickets).toEqual([
|
|
26
|
+
ticketId1.toString(),
|
|
27
|
+
ticketId2.toString(),
|
|
28
|
+
ticketId2.toString(),
|
|
29
|
+
ticketId2.toString(),
|
|
30
|
+
ticketId1.toString(),
|
|
31
|
+
]);
|
|
32
|
+
});
|
|
33
|
+
test("when calling extract tickets from user events array with ticket (legacy), all tickets extract correctly", async () => {
|
|
34
|
+
// Arrange
|
|
35
|
+
const eventId = new mongoose.Types.ObjectId();
|
|
36
|
+
const accountId = new mongoose.Types.ObjectId();
|
|
37
|
+
const ticketId1 = new mongoose.Types.ObjectId();
|
|
38
|
+
const ticketId2 = new mongoose.Types.ObjectId();
|
|
39
|
+
|
|
40
|
+
const helper = new Helper();
|
|
41
|
+
const userEvent1 = await helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId1.toString()], true);
|
|
42
|
+
const userEvent2 = await helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], true);
|
|
43
|
+
const userEvent3 = await helper.createUserEvent(eventId.toString(), accountId.toString(), [ticketId2.toString()], true);
|
|
44
|
+
// ACT
|
|
45
|
+
const tickets = TicketClient.extractTickets([userEvent1, userEvent2, userEvent3]);
|
|
46
|
+
// Assert
|
|
47
|
+
expect(tickets.length).toBe(3);
|
|
48
|
+
expect(tickets).toEqual([ticketId1.toString(), ticketId2.toString(), ticketId2.toString()]);
|
|
49
|
+
});
|
|
50
|
+
});
|