@studyportals/domain-client 3.8.0-0 → 3.9.0-0

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.
Files changed (35) hide show
  1. package/index.d.ts +3 -4
  2. package/index.js +3 -5
  3. package/index.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/models/programme-card/i-programme-card.d.ts +0 -1
  6. package/src/models/search-programme-card/i-search-programme-card.d.ts +10 -0
  7. package/src/models/search-programme-card/i-search-programme-card.js +3 -0
  8. package/src/models/search-programme-card/i-search-programme-card.js.map +1 -0
  9. package/src/models/search-programme-card/public-search-programme-card-client.d.ts +7 -0
  10. package/src/models/search-programme-card/public-search-programme-card-client.js +17 -0
  11. package/src/models/search-programme-card/public-search-programme-card-client.js.map +1 -0
  12. package/tests/integration/programme-card-client.test.d.ts +7 -0
  13. package/tests/integration/programme-card-client.test.js +71 -0
  14. package/tests/integration/programme-card-client.test.js.map +1 -0
  15. package/tests/unit/domain-client.test.d.ts +20 -0
  16. package/tests/unit/domain-client.test.js +155 -0
  17. package/tests/unit/domain-client.test.js.map +1 -0
  18. package/tests/unit/dummy-model-client.d.ts +7 -0
  19. package/tests/unit/dummy-model-client.js +17 -0
  20. package/tests/unit/dummy-model-client.js.map +1 -0
  21. package/tests/unit/factories/date-factory.test.d.ts +1 -0
  22. package/tests/unit/factories/date-factory.test.js +46 -0
  23. package/tests/unit/factories/date-factory.test.js.map +1 -0
  24. package/tests/unit/factories/internal-link-factory.test.d.ts +1 -0
  25. package/tests/unit/factories/internal-link-factory.test.js +77 -0
  26. package/tests/unit/factories/internal-link-factory.test.js.map +1 -0
  27. package/tests/unit/i-dummy-model.d.ts +7 -0
  28. package/tests/unit/i-dummy-model.js +3 -0
  29. package/tests/unit/i-dummy-model.js.map +1 -0
  30. package/tests/unit/model-client.test.d.ts +13 -0
  31. package/tests/unit/model-client.test.js +121 -0
  32. package/tests/unit/model-client.test.js.map +1 -0
  33. package/tests/unit/model-factory.test.d.ts +10 -0
  34. package/tests/unit/model-factory.test.js +152 -0
  35. package/tests/unit/model-factory.test.js.map +1 -0
package/index.d.ts CHANGED
@@ -35,6 +35,8 @@ import { BestfitProgrammeClient } from "./src/models/bestfit-programme/bestfit-p
35
35
  import { ICountry } from "./src/models/dotdigital-programme/i-country";
36
36
  import { IDotDigitalProgramme } from "./src/models/dotdigital-programme/i-dot-digital-programme";
37
37
  import { DotdigitalProgrammeClient } from "./src/models/dotdigital-programme/dotdigital-programme-client";
38
+ import { ISearchProgrammeCard } from "./src/models/search-programme-card/i-search-programme-card";
39
+ import { PublicSearchProgrammeCardClient } from "./src/models/search-programme-card/public-search-programme-card-client";
38
40
  import { ISearchCountryFaq } from "./src/models/search-country-faq/i-search-country-faq";
39
41
  import { PublicSearchCountryFaqClient } from "./src/models/search-country-faq/public-search-country-faq-client";
40
42
  import { ISitemapCountryInfo } from "./src/models/sitemap-countries-info/i-sitemap-country-info";
@@ -50,7 +52,4 @@ import { ISitemapRankingsInfo } from "./src/models/sitemap-rankings-info/i-sitem
50
52
  import { SitemapRankingsInfoClient } from "./src/models/sitemap-rankings-info/sitemap-rankings-info-client";
51
53
  import { ISitemapArticleInfo } from "./src/models/sitemap-articles-info/i-sitemap-article-info";
52
54
  import { SitemapArticlesInfoClient } from "./src/models/sitemap-articles-info/sitemap-articles-info-client";
53
- import { PortalType } from "./src/types/portal-type";
54
- import { PortalMap } from "./src/types/portal-map";
55
- import { ModelClient } from "./src/model-client";
56
- export { BadRequestException, ClientException, InternalServerException, NotFoundException, PropertyNotAvailableException, ICover, ILink, IOptionalLink, ILocation, IClickTrackingData, ITracking, IDuration, IDeadline, IStartDate, ITiming, ITrackedLink, IProgrammeCard, ProgrammeCardClient, ITuitionValues, IPremiumValues, IOrganisationValues, IGeoTargetingConfiguration, IGeoTargetingValues, ISearchProjection, SearchProjectionClient, ILivingCost, IGPARequirement, IBestFitProgramme, BestfitProgrammeClient, ILogo, ITuitionFee, IEnglishRequirements, IInternalLink, IDotDigitalProgramme, DotdigitalProgrammeClient, ISearchCountryFaq, PublicSearchCountryFaqClient, ISitemapCountryInfo, SitemapCountriesInfoClient, ISearchDiscipline, PublicSearchDisciplineClient, ISitemapDisciplineInfo, SitemapDisciplinesInfoClient, ICountry, ICity, IReview, IDotDigitalOrganisation, DotdigitalOrganisationClient, ISitemapRankingsInfo, SitemapRankingsInfoClient, ISitemapArticleInfo, SitemapArticlesInfoClient, PortalType, PortalMap, ModelClient };
55
+ export { BadRequestException, ClientException, InternalServerException, NotFoundException, PropertyNotAvailableException, IInternalLink, ILogo, ICover, ILink, IOptionalLink, ILocation, IClickTrackingData, ITracking, ITuitionFee, IDuration, IDeadline, IStartDate, ITiming, ITrackedLink, IProgrammeCard, ProgrammeCardClient, ITuitionValues, IPremiumValues, IOrganisationValues, IGeoTargetingConfiguration, IGeoTargetingValues, ISearchProjection, SearchProjectionClient, ITuitionFee, IEnglishRequirements, ICity, ILivingCost, IGPARequirement, IBestFitProgramme, BestfitProgrammeClient, ILogo, ICountry, ITuitionFee, IEnglishRequirements, IInternalLink, IDotDigitalProgramme, DotdigitalProgrammeClient, ISearchProgrammeCard, PublicSearchProgrammeCardClient, ISearchCountryFaq, PublicSearchCountryFaqClient, ISitemapCountryInfo, SitemapCountriesInfoClient, ISearchDiscipline, PublicSearchDisciplineClient, ISitemapDisciplineInfo, SitemapDisciplinesInfoClient, ICountry, ICity, IReview, IDotDigitalOrganisation, DotdigitalOrganisationClient, ISitemapRankingsInfo, SitemapRankingsInfoClient, ISitemapArticleInfo, SitemapArticlesInfoClient };
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelClient = exports.PortalType = exports.SitemapArticlesInfoClient = exports.SitemapRankingsInfoClient = exports.DotdigitalOrganisationClient = exports.SitemapDisciplinesInfoClient = exports.PublicSearchDisciplineClient = exports.SitemapCountriesInfoClient = exports.PublicSearchCountryFaqClient = exports.DotdigitalProgrammeClient = exports.BestfitProgrammeClient = exports.SearchProjectionClient = exports.ProgrammeCardClient = exports.PropertyNotAvailableException = exports.NotFoundException = exports.InternalServerException = exports.ClientException = exports.BadRequestException = void 0;
3
+ exports.SitemapArticlesInfoClient = exports.SitemapRankingsInfoClient = exports.DotdigitalOrganisationClient = exports.SitemapDisciplinesInfoClient = exports.PublicSearchDisciplineClient = exports.SitemapCountriesInfoClient = exports.PublicSearchCountryFaqClient = exports.PublicSearchProgrammeCardClient = exports.DotdigitalProgrammeClient = exports.BestfitProgrammeClient = exports.SearchProjectionClient = exports.ProgrammeCardClient = exports.PropertyNotAvailableException = exports.NotFoundException = exports.InternalServerException = exports.ClientException = exports.BadRequestException = void 0;
4
4
  const bad_request_exception_1 = require("./src/exceptions/bad-request-exception");
5
5
  Object.defineProperty(exports, "BadRequestException", { enumerable: true, get: function () { return bad_request_exception_1.BadRequestException; } });
6
6
  const client_exception_1 = require("./src/exceptions/client-exception");
@@ -19,6 +19,8 @@ const bestfit_programme_client_1 = require("./src/models/bestfit-programme/bestf
19
19
  Object.defineProperty(exports, "BestfitProgrammeClient", { enumerable: true, get: function () { return bestfit_programme_client_1.BestfitProgrammeClient; } });
20
20
  const dotdigital_programme_client_1 = require("./src/models/dotdigital-programme/dotdigital-programme-client");
21
21
  Object.defineProperty(exports, "DotdigitalProgrammeClient", { enumerable: true, get: function () { return dotdigital_programme_client_1.DotdigitalProgrammeClient; } });
22
+ const public_search_programme_card_client_1 = require("./src/models/search-programme-card/public-search-programme-card-client");
23
+ Object.defineProperty(exports, "PublicSearchProgrammeCardClient", { enumerable: true, get: function () { return public_search_programme_card_client_1.PublicSearchProgrammeCardClient; } });
22
24
  const public_search_country_faq_client_1 = require("./src/models/search-country-faq/public-search-country-faq-client");
23
25
  Object.defineProperty(exports, "PublicSearchCountryFaqClient", { enumerable: true, get: function () { return public_search_country_faq_client_1.PublicSearchCountryFaqClient; } });
24
26
  const sitemap_countries_info_client_1 = require("./src/models/sitemap-countries-info/sitemap-countries-info-client");
@@ -33,8 +35,4 @@ const sitemap_rankings_info_client_1 = require("./src/models/sitemap-rankings-in
33
35
  Object.defineProperty(exports, "SitemapRankingsInfoClient", { enumerable: true, get: function () { return sitemap_rankings_info_client_1.SitemapRankingsInfoClient; } });
34
36
  const sitemap_articles_info_client_1 = require("./src/models/sitemap-articles-info/sitemap-articles-info-client");
35
37
  Object.defineProperty(exports, "SitemapArticlesInfoClient", { enumerable: true, get: function () { return sitemap_articles_info_client_1.SitemapArticlesInfoClient; } });
36
- const portal_type_1 = require("./src/types/portal-type");
37
- Object.defineProperty(exports, "PortalType", { enumerable: true, get: function () { return portal_type_1.PortalType; } });
38
- const model_client_1 = require("./src/model-client");
39
- Object.defineProperty(exports, "ModelClient", { enumerable: true, get: function () { return model_client_1.ModelClient; } });
40
38
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,kFAA4E;AAyD3E,oGAzDQ,2CAAmB,OAyDR;AAxDpB,wEAAmE;AAyDlE,gGAzDQ,kCAAe,OAyDR;AAxDhB,0FAAoF;AAyDnF,wGAzDQ,mDAAuB,OAyDR;AAxDxB,8EAAwE;AAyDvE,kGAzDQ,uCAAiB,OAyDR;AAxDlB,wGAAiG;AAyDhG,8GAzDQ,gEAA6B,OAyDR;AAzC9B,6FAAwF;AAsDvF,oGAtDQ,2CAAmB,OAsDR;AA/CpB,sGAAiG;AAsDhG,uGAtDQ,iDAAsB,OAsDR;AAhDvB,sGAAiG;AAoDhG,uGApDQ,iDAAsB,OAoDR;AAjDvB,+GAA0G;AAuDzG,0GAvDQ,uDAAyB,OAuDR;AArD1B,uHAAgH;AAuD/G,6GAvDQ,+DAA4B,OAuDR;AArD7B,qHAA+G;AAuD9G,2GAvDQ,0DAA0B,OAuDR;AArD3B,oHAA8G;AAuD7G,6GAvDQ,8DAA4B,OAuDR;AArD7B,2HAAqH;AAuDpH,6GAvDQ,8DAA4B,OAuDR;AApD7B,wHAAmH;AAyDlH,6GAzDQ,6DAA4B,OAyDR;AAvD7B,kHAA4G;AAyD3G,0GAzDQ,wDAAyB,OAyDR;AAvD1B,kHAA4G;AAyD3G,0GAzDQ,wDAAyB,OAyDR;AAxD1B,yDAAqD;AAyDpD,2FAzDQ,wBAAU,OAyDR;AAvDX,qDAAiD;AAyDhD,4FAzDQ,0BAAW,OAyDR"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,kFAA4E;AA+D3E,oGA/DQ,2CAAmB,OA+DR;AA9DpB,wEAAmE;AA+DlE,gGA/DQ,kCAAe,OA+DR;AA9DhB,0FAAoF;AA+DnF,wGA/DQ,mDAAuB,OA+DR;AA9DxB,8EAAwE;AA+DvE,kGA/DQ,uCAAiB,OA+DR;AA9DlB,wGAAiG;AA+DhG,8GA/DQ,gEAA6B,OA+DR;AA/C9B,6FAAwF;AA+DvF,oGA/DQ,2CAAmB,OA+DR;AAxDpB,sGAAiG;AA+DhG,uGA/DQ,iDAAsB,OA+DR;AAxDvB,sGAAiG;AA+DhG,uGA/DQ,iDAAsB,OA+DR;AAxDvB,+GAA0G;AA+DzG,0GA/DQ,uDAAyB,OA+DR;AA7D1B,gIAAyH;AA+DxH,gHA/DQ,qEAA+B,OA+DR;AA7DhC,uHAAgH;AA+D/G,6GA/DQ,+DAA4B,OA+DR;AA7D7B,qHAA+G;AA+D9G,2GA/DQ,0DAA0B,OA+DR;AA7D3B,oHAA8G;AA+D7G,6GA/DQ,8DAA4B,OA+DR;AA7D7B,2HAAqH;AA+DpH,6GA/DQ,8DAA4B,OA+DR;AA1D7B,wHAAmH;AA+DlH,6GA/DQ,6DAA4B,OA+DR;AA7D7B,kHAA4G;AA+D3G,0GA/DQ,wDAAyB,OA+DR;AA7D1B,kHAA4G;AA+D3G,0GA/DQ,wDAAyB,OA+DR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studyportals/domain-client",
3
- "version": "3.8.0-0",
3
+ "version": "3.9.0-0",
4
4
  "description": "Responsible for fetching data from the Domain API",
5
5
  "main": "bin/index.js",
6
6
  "author": "StudyPortals B.V.",
@@ -98,7 +98,6 @@ export interface IProgrammeCard {
98
98
  getTracking(): ITracking;
99
99
  /**
100
100
  * Get all tuition fees of the programme.
101
- *
102
101
  * @return ITuitionFee[]
103
102
  */
104
103
  getTuitionFees(): ITuitionFee[];
@@ -0,0 +1,10 @@
1
+ export interface ISearchProgrammeCard {
2
+ /**
3
+ * @return number
4
+ */
5
+ getId(): number;
6
+ /**
7
+ * @return string
8
+ */
9
+ getPath(): string;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-search-programme-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-search-programme-card.js","sourceRoot":"","sources":["../../../../src/models/search-programme-card/i-search-programme-card.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ISearchProgrammeCard } from "../../..";
2
+ import { ModelClient } from "../../model-client";
3
+ export declare class PublicSearchProgrammeCardClient extends ModelClient<ISearchProgrammeCard> {
4
+ protected getModelName(): string;
5
+ protected getVersion(): string;
6
+ isPublic(): boolean;
7
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicSearchProgrammeCardClient = void 0;
4
+ const model_client_1 = require("../../model-client");
5
+ class PublicSearchProgrammeCardClient extends model_client_1.ModelClient {
6
+ getModelName() {
7
+ return 'search-programme-card';
8
+ }
9
+ getVersion() {
10
+ return 'v1';
11
+ }
12
+ isPublic() {
13
+ return true;
14
+ }
15
+ }
16
+ exports.PublicSearchProgrammeCardClient = PublicSearchProgrammeCardClient;
17
+ //# sourceMappingURL=public-search-programme-card-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-search-programme-card-client.js","sourceRoot":"","sources":["../../../../src/models/search-programme-card/public-search-programme-card-client.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAEjD,MAAa,+BAAgC,SAAQ,0BAAiC;IAC3E,YAAY;QACrB,OAAO,uBAAuB,CAAC;IAChC,CAAC;IAES,UAAU;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAZD,0EAYC"}
@@ -0,0 +1,7 @@
1
+ export declare class ProgrammeCardClientTest {
2
+ before(): void;
3
+ after(): void;
4
+ testClient_Direct(): Promise<void>;
5
+ testClient_Indirect(): Promise<void>;
6
+ private getClient;
7
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProgrammeCardClientTest = void 0;
13
+ const mocha_1 = require("@testdeck/mocha");
14
+ const assert = require("assert");
15
+ const programme_card_client_1 = require("../../src/models/programme-card/programme-card-client");
16
+ const model_factory_1 = require("../../src/model-factory");
17
+ const Moxios = require("moxios");
18
+ const fs = require("fs");
19
+ let ProgrammeCardClientTest = class ProgrammeCardClientTest {
20
+ before() {
21
+ Moxios.install();
22
+ const response = fs.readFileSync(__dirname + '/../resources/programme-card.json');
23
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
24
+ Moxios.wait(async () => {
25
+ const request = Moxios.requests.mostRecent();
26
+ await request.respondWith({
27
+ status: 200,
28
+ response: response.toString()
29
+ });
30
+ });
31
+ }
32
+ after() {
33
+ Moxios.uninstall();
34
+ }
35
+ async testClient_Direct() {
36
+ const client = this.getClient();
37
+ const card = await client.fetch(70942);
38
+ card.getCover().getSource();
39
+ assert.strictEqual(card.getId(), 70942);
40
+ }
41
+ async testClient_Indirect() {
42
+ const client = this.getClient();
43
+ const description = await client.fetchDescription(70942);
44
+ const json = JSON.stringify(description);
45
+ const transferredDescription = JSON.parse(json);
46
+ const factory = new model_factory_1.ModelFactory();
47
+ const card = factory.fromDescription(transferredDescription);
48
+ card.getCover().getSource();
49
+ assert.strictEqual(card.getId(), 70942);
50
+ }
51
+ getClient() {
52
+ return new programme_card_client_1.ProgrammeCardClient('dummy', 'stub', 50);
53
+ }
54
+ };
55
+ __decorate([
56
+ mocha_1.test,
57
+ __metadata("design:type", Function),
58
+ __metadata("design:paramtypes", []),
59
+ __metadata("design:returntype", Promise)
60
+ ], ProgrammeCardClientTest.prototype, "testClient_Direct", null);
61
+ __decorate([
62
+ mocha_1.test,
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", []),
65
+ __metadata("design:returntype", Promise)
66
+ ], ProgrammeCardClientTest.prototype, "testClient_Indirect", null);
67
+ ProgrammeCardClientTest = __decorate([
68
+ mocha_1.suite
69
+ ], ProgrammeCardClientTest);
70
+ exports.ProgrammeCardClientTest = ProgrammeCardClientTest;
71
+ //# sourceMappingURL=programme-card-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programme-card-client.test.js","sourceRoot":"","sources":["../../../tests/integration/programme-card-client.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA8C;AAC9C,iCAAiC;AACjC,iGAA4F;AAC5F,2DAAuD;AAEvD,iCAAiC;AACjC,yBAAyB;AAIlB,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAEnC,MAAM;QACL,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG,mCAAmC,CAAC,CAAC;QAClF,kEAAkE;QAClE,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,OAAO,CAAC,WAAW,CAAC;gBACzB,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE;aAC7B,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACJ,MAAM,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAGK,AAAN,KAAK,CAAC,iBAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAGK,AAAN,KAAK,CAAC,mBAAmB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,GAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;QAErE,MAAM,OAAO,GAAG,IAAI,4BAAY,EAAkB,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QAE7D,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAEO,SAAS;QAChB,OAAO,IAAI,2CAAmB,CAC7B,OAAO,EACP,MAAM,EACN,EAAE,CACF,CAAC;IACH,CAAC;CACD,CAAA;AA5BM;IADL,YAAI;;;;gEAMJ;AAGK;IADL,YAAI;;;;kEAYJ;AAvCW,uBAAuB;IADnC,aAAK;GACO,uBAAuB,CAgDnC;AAhDY,0DAAuB"}
@@ -0,0 +1,20 @@
1
+ import { DomainClient } from "../../src/domain-client";
2
+ export declare class DomainClientTest {
3
+ private providedBaseUrl;
4
+ private providedApiKey;
5
+ private providedModel;
6
+ private providedVersion;
7
+ private providedSeed;
8
+ before(): void;
9
+ after(): void;
10
+ testPrivateClient__CorrectOrder(): Promise<void>;
11
+ testPrivateClient_InvalidId_CorrectOrder(): Promise<void>;
12
+ testPrivateClient__CorrectApiCommunication(): Promise<void>;
13
+ testPublicClient__CorrectApiCommunication(): Promise<void>;
14
+ testPrivateClient_404Response_Error(): Promise<void>;
15
+ testPrivateClient_400Response_Error(): Promise<void>;
16
+ testPrivateClient_ErrorResponse_Error(): Promise<void>;
17
+ getPrivateClient(): DomainClient;
18
+ getPublicClient(): DomainClient;
19
+ setupRequestResponse(file: string): void;
20
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DomainClientTest = void 0;
13
+ const assert = require("assert");
14
+ const fs = require("fs");
15
+ const Moxios = require("moxios");
16
+ const mocha_1 = require("@testdeck/mocha");
17
+ const domain_client_1 = require("../../src/domain-client");
18
+ const bad_request_exception_1 = require("../../src/exceptions/bad-request-exception");
19
+ const internal_server_exception_1 = require("../../src/exceptions/internal-server-exception");
20
+ const not_found_exception_1 = require("../../src/exceptions/not-found-exception");
21
+ let DomainClientTest = class DomainClientTest {
22
+ constructor() {
23
+ this.providedBaseUrl = 'baseUrl';
24
+ this.providedApiKey = 'apiKey';
25
+ this.providedModel = 'modelName';
26
+ this.providedVersion = 'version';
27
+ this.providedSeed = 50;
28
+ }
29
+ before() {
30
+ Moxios.install();
31
+ }
32
+ after() {
33
+ Moxios.uninstall();
34
+ }
35
+ async testPrivateClient__CorrectOrder() {
36
+ this.setupRequestResponse('dummy-response.json');
37
+ const client = this.getPrivateClient();
38
+ const response = await client.doRequest([70942, 199368, 293107, 293109]);
39
+ assert.strictEqual(response.length, 4);
40
+ assert.strictEqual(response[0].func.getId, 70942);
41
+ assert.strictEqual(response[1].func.getId, 199368);
42
+ assert.strictEqual(response[2].func.getId, 293107);
43
+ assert.strictEqual(response[3].func.getId, 293109);
44
+ }
45
+ async testPrivateClient_InvalidId_CorrectOrder() {
46
+ this.setupRequestResponse('dummy-response.json');
47
+ const client = this.getPrivateClient();
48
+ const response = await client.doRequest([70942, 199368, 12345, 293109]);
49
+ assert.strictEqual(response.length, 3);
50
+ assert.strictEqual(response[0].func.getId, 70942);
51
+ assert.strictEqual(response[1].func.getId, 199368);
52
+ assert.strictEqual(response[2].func.getId, 293109);
53
+ }
54
+ async testPrivateClient__CorrectApiCommunication() {
55
+ this.setupRequestResponse('dummy-response.json');
56
+ const client = this.getPrivateClient();
57
+ await client.doRequest([70942, 199368]);
58
+ const request = Moxios.requests.mostRecent();
59
+ assert.strictEqual(request.config.baseURL, this.providedBaseUrl);
60
+ assert.strictEqual(
61
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
62
+ request.config.headers['x-api-key'], this.providedApiKey);
63
+ assert.strictEqual(request.url, `modelName/version/?seed=${this.providedSeed}&id=70942&id=199368`);
64
+ }
65
+ async testPublicClient__CorrectApiCommunication() {
66
+ this.setupRequestResponse('dummy-response.json');
67
+ const client = this.getPublicClient();
68
+ await client.doRequest([70942, 199368]);
69
+ const request = Moxios.requests.mostRecent();
70
+ assert.strictEqual(request.config.baseURL, `${this.providedBaseUrl}`);
71
+ assert.strictEqual(
72
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
73
+ request.config.headers['x-api-key'], undefined);
74
+ assert.strictEqual(request.url, `public/modelName/version/?seed=${this.providedSeed}&id=70942&id=199368`);
75
+ }
76
+ async testPrivateClient_404Response_Error() {
77
+ this.setupRequestResponse('404-response.json');
78
+ const client = this.getPrivateClient();
79
+ await assert.rejects(client.doRequest([70942, 199368, 12345, 293109]), not_found_exception_1.NotFoundException);
80
+ }
81
+ async testPrivateClient_400Response_Error() {
82
+ this.setupRequestResponse('400-response.json');
83
+ const client = this.getPrivateClient();
84
+ await assert.rejects(client.doRequest([70942, 199368, 12345, 293109]), bad_request_exception_1.BadRequestException);
85
+ }
86
+ async testPrivateClient_ErrorResponse_Error() {
87
+ this.setupRequestResponse('error-response.json');
88
+ const client = this.getPrivateClient();
89
+ await assert.rejects(client.doRequest([70942, 199368, 12345, 293109]), internal_server_exception_1.InternalServerException);
90
+ }
91
+ getPrivateClient() {
92
+ return new domain_client_1.DomainClient(this.providedBaseUrl, this.providedApiKey, this.providedModel, this.providedVersion, false, this.providedSeed);
93
+ }
94
+ getPublicClient() {
95
+ return new domain_client_1.DomainClient(this.providedBaseUrl, undefined, this.providedModel, this.providedVersion, true, this.providedSeed);
96
+ }
97
+ setupRequestResponse(file) {
98
+ const response = fs.readFileSync(__dirname + '/../resources/' + file);
99
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
100
+ Moxios.wait(async () => {
101
+ const request = Moxios.requests.mostRecent();
102
+ await request.respondWith({
103
+ status: 200,
104
+ response: response.toString()
105
+ });
106
+ });
107
+ }
108
+ };
109
+ __decorate([
110
+ mocha_1.test,
111
+ __metadata("design:type", Function),
112
+ __metadata("design:paramtypes", []),
113
+ __metadata("design:returntype", Promise)
114
+ ], DomainClientTest.prototype, "testPrivateClient__CorrectOrder", null);
115
+ __decorate([
116
+ mocha_1.test,
117
+ __metadata("design:type", Function),
118
+ __metadata("design:paramtypes", []),
119
+ __metadata("design:returntype", Promise)
120
+ ], DomainClientTest.prototype, "testPrivateClient_InvalidId_CorrectOrder", null);
121
+ __decorate([
122
+ mocha_1.test,
123
+ __metadata("design:type", Function),
124
+ __metadata("design:paramtypes", []),
125
+ __metadata("design:returntype", Promise)
126
+ ], DomainClientTest.prototype, "testPrivateClient__CorrectApiCommunication", null);
127
+ __decorate([
128
+ mocha_1.test,
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", []),
131
+ __metadata("design:returntype", Promise)
132
+ ], DomainClientTest.prototype, "testPublicClient__CorrectApiCommunication", null);
133
+ __decorate([
134
+ mocha_1.test,
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", []),
137
+ __metadata("design:returntype", Promise)
138
+ ], DomainClientTest.prototype, "testPrivateClient_404Response_Error", null);
139
+ __decorate([
140
+ mocha_1.test,
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", []),
143
+ __metadata("design:returntype", Promise)
144
+ ], DomainClientTest.prototype, "testPrivateClient_400Response_Error", null);
145
+ __decorate([
146
+ mocha_1.test,
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", []),
149
+ __metadata("design:returntype", Promise)
150
+ ], DomainClientTest.prototype, "testPrivateClient_ErrorResponse_Error", null);
151
+ DomainClientTest = __decorate([
152
+ mocha_1.suite
153
+ ], DomainClientTest);
154
+ exports.DomainClientTest = DomainClientTest;
155
+ //# sourceMappingURL=domain-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain-client.test.js","sourceRoot":"","sources":["../../../tests/unit/domain-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ModelClient } from "../../src/model-client";
2
+ import { IDummyModel } from "./i-dummy-model";
3
+ export declare class DummyModelClient extends ModelClient<IDummyModel> {
4
+ protected getModelName(): string;
5
+ protected getVersion(): string;
6
+ isPublic(): boolean;
7
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DummyModelClient = void 0;
4
+ const model_client_1 = require("../../src/model-client");
5
+ class DummyModelClient extends model_client_1.ModelClient {
6
+ getModelName() {
7
+ return "dummy";
8
+ }
9
+ getVersion() {
10
+ return "v1";
11
+ }
12
+ isPublic() {
13
+ return false;
14
+ }
15
+ }
16
+ exports.DummyModelClient = DummyModelClient;
17
+ //# sourceMappingURL=dummy-model-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dummy-model-client.js","sourceRoot":"","sources":["../../../tests/unit/dummy-model-client.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAIrD,MAAa,gBAAiB,SAAQ,0BAAwB;IACnD,YAAY;QACrB,OAAO,OAAO,CAAC;IAChB,CAAC;IAES,UAAU;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,QAAQ;QACd,OAAO,KAAK,CAAC;IACd,CAAC;CACD;AAZD,4CAYC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const mocha_1 = require("@testdeck/mocha");
13
+ const Moq = require("typemoq");
14
+ const assert = require("assert");
15
+ const DateFactory_1 = require("../../../src/factories/DateFactory");
16
+ let DateFactoryTest =
17
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
+ class DateFactoryTest {
19
+ get testInstance() {
20
+ return this.testInstanceMock.object;
21
+ }
22
+ before() {
23
+ this.testInstanceMock = Moq.Mock.ofType(DateFactory_1.DateFactory);
24
+ this.testInstanceMock.callBase = true;
25
+ }
26
+ create_Should_Ret() {
27
+ // given
28
+ const expectedDate = new Date();
29
+ // when
30
+ const date = this.testInstance.create({}, [expectedDate.toISOString()]);
31
+ // then
32
+ assert.strictEqual(date.toISOString(), expectedDate.toISOString());
33
+ assert.strictEqual(true, date instanceof Date);
34
+ }
35
+ };
36
+ __decorate([
37
+ mocha_1.test,
38
+ __metadata("design:type", Function),
39
+ __metadata("design:paramtypes", []),
40
+ __metadata("design:returntype", void 0)
41
+ ], DateFactoryTest.prototype, "create_Should_Ret", null);
42
+ DateFactoryTest = __decorate([
43
+ mocha_1.suite
44
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
+ ], DateFactoryTest);
46
+ //# sourceMappingURL=date-factory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-factory.test.js","sourceRoot":"","sources":["../../../../tests/unit/factories/date-factory.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA8C;AAC9C,+BAA+B;AAE/B,iCAAiC;AACjC,oEAAiE;AAIjE,IAAM,eAAe;AADrB,6DAA6D;AAC7D,MAAM,eAAe;IAIpB,IAAc,YAAY;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACrC,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,yBAAW,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;IAGM,iBAAiB;QACvB,QAAQ;QACR,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;QAEhC,OAAO;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAQ,CAAA;QAE9E,OAAO;QACP,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAA;QAClE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,CAAA;IAC/C,CAAC;CACD,CAAA;AAZA;IAAC,YAAI;;;;wDAWJ;AAxBI,eAAe;IAFpB,aAAK;IACN,6DAA6D;GACvD,eAAe,CAyBpB"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const assert = require("assert");
13
+ const Moq = require("typemoq");
14
+ const mocha_1 = require("@testdeck/mocha");
15
+ const InternalLinkFactory_1 = require("../../../src/factories/InternalLinkFactory");
16
+ const portal_type_1 = require("../../../src/types/portal-type");
17
+ let InternalLinkFactoryTest =
18
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
19
+ class InternalLinkFactoryTest {
20
+ get testInstance() {
21
+ return this.testInstanceMock.object;
22
+ }
23
+ before() {
24
+ this.testInstanceMock = Moq.Mock.ofType(InternalLinkFactory_1.InternalLinkFactory);
25
+ this.testInstanceMock.callBase = true;
26
+ }
27
+ create_Should_ReturnLinkWithMastersportalMapping_When_InternalLinkWithPortalTypeMaster() {
28
+ // given
29
+ const mapping = new Map();
30
+ const expectedUrl = 'https://www.someurl.com';
31
+ const expectedPath = '/studies/1/test.html';
32
+ mapping.set(portal_type_1.PortalType.MASTER, expectedUrl);
33
+ this.testInstanceMock
34
+ .setup((x) => x['portalMap'])
35
+ .returns(() => mapping);
36
+ // when
37
+ const internalLink = this.testInstance.create({
38
+ getPortalType: () => portal_type_1.PortalType.MASTER,
39
+ getUrl: () => expectedPath
40
+ });
41
+ // then
42
+ assert.strictEqual(internalLink.getUrl(), `${expectedUrl}${expectedPath}`);
43
+ }
44
+ create_Should_ReturnOriginalUrl_When_InternalLinkPortalTypeNotFoundInPortalMap() {
45
+ // given
46
+ const mapping = new Map();
47
+ const expectedPath = '/studies/1/test.html';
48
+ mapping.set(portal_type_1.PortalType.MASTER, 'https://www.someurl.com');
49
+ this.testInstanceMock
50
+ .setup((x) => x['portalMap'])
51
+ .returns(() => mapping);
52
+ // when
53
+ const internalLink = this.testInstance.create({
54
+ getPortalType: () => portal_type_1.PortalType.PHD,
55
+ getUrl: () => expectedPath
56
+ });
57
+ // then
58
+ assert.strictEqual(internalLink.getUrl(), expectedPath);
59
+ }
60
+ };
61
+ __decorate([
62
+ mocha_1.test,
63
+ __metadata("design:type", Function),
64
+ __metadata("design:paramtypes", []),
65
+ __metadata("design:returntype", void 0)
66
+ ], InternalLinkFactoryTest.prototype, "create_Should_ReturnLinkWithMastersportalMapping_When_InternalLinkWithPortalTypeMaster", null);
67
+ __decorate([
68
+ mocha_1.test,
69
+ __metadata("design:type", Function),
70
+ __metadata("design:paramtypes", []),
71
+ __metadata("design:returntype", void 0)
72
+ ], InternalLinkFactoryTest.prototype, "create_Should_ReturnOriginalUrl_When_InternalLinkPortalTypeNotFoundInPortalMap", null);
73
+ InternalLinkFactoryTest = __decorate([
74
+ mocha_1.suite
75
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
76
+ ], InternalLinkFactoryTest);
77
+ //# sourceMappingURL=internal-link-factory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-link-factory.test.js","sourceRoot":"","sources":["../../../../tests/unit/factories/internal-link-factory.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAiC;AACjC,+BAA+B;AAG/B,2CAA8C;AAE9C,oFAAiF;AAEjF,gEAA4D;AAK5D,IAAM,uBAAuB;AAD7B,6DAA6D;AAC7D,MAAM,uBAAuB;IAI5B,IAAc,YAAY;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACrC,CAAC;IAEM,MAAM;QACZ,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,yCAAmB,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;IAGM,sFAAsF;QAC5F,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,MAAM,WAAW,GAAG,yBAAyB,CAAC;QAC9C,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,wBAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5C,IAAI,CAAC,gBAAgB;aACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC5B,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,aAAa,EAAE,GAAG,EAAE,CAAC,wBAAU,CAAC,MAAM;YACtC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;SAC1B,CAAQ,CAAA;QAET,OAAO;QACP,MAAM,CAAC,WAAW,CAAC,YAAa,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,GAAG,YAAY,EAAE,CAAC,CAAA;IAC5E,CAAC;IAGM,8EAA8E;QACpF,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC9C,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,wBAAU,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAE1D,IAAI,CAAC,gBAAgB;aACnB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC5B,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC7C,aAAa,EAAE,GAAG,EAAE,CAAC,wBAAU,CAAC,GAAG;YACnC,MAAM,EAAE,GAAG,EAAE,CAAC,YAAY;SAC1B,CAAQ,CAAC;QAEV,OAAO;QACP,MAAM,CAAC,WAAW,CAAC,YAAa,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAA;IACzD,CAAC;CAED,CAAA;AA3CA;IAAC,YAAI;;;;qIAoBJ;AAED;IAAC,YAAI;;;;6HAmBJ;AAtDI,uBAAuB;IAF5B,aAAK;IACN,6DAA6D;GACvD,uBAAuB,CAwD5B"}
@@ -0,0 +1,7 @@
1
+ export interface IDummyModel {
2
+ getId(): number;
3
+ getSubModel(): IDummyModel;
4
+ getCustomSubModel(): IDummyModel;
5
+ getArray(): IDummyModel[];
6
+ canShowSubModel(): boolean;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=i-dummy-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i-dummy-model.js","sourceRoot":"","sources":["../../../tests/unit/i-dummy-model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export declare class DomainClientTest {
2
+ private providedBaseUrl;
3
+ private providedApiKey;
4
+ private providedSeed;
5
+ before(): void;
6
+ after(): void;
7
+ testConstructor_Empty_ErrorOnFetch(): Promise<void>;
8
+ testFetch__DummyModel(): Promise<void>;
9
+ testFetchMultiple__DummyModel(): Promise<void>;
10
+ testFromDescription__DummyModel(): Promise<void>;
11
+ testFromDescriptions__DummyModel(): Promise<void>;
12
+ private getClient;
13
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DomainClientTest = void 0;
13
+ const mocha_1 = require("@testdeck/mocha");
14
+ const Moxios = require("moxios");
15
+ const dummy_model_client_1 = require("./dummy-model-client");
16
+ const assert = require("assert");
17
+ const fs = require("fs");
18
+ const client_exception_1 = require("../../src/exceptions/client-exception");
19
+ let DomainClientTest = class DomainClientTest {
20
+ constructor() {
21
+ this.providedBaseUrl = 'baseUrl';
22
+ this.providedApiKey = 'apiKey';
23
+ this.providedSeed = 50;
24
+ }
25
+ before() {
26
+ Moxios.install();
27
+ }
28
+ after() {
29
+ Moxios.uninstall();
30
+ }
31
+ async testConstructor_Empty_ErrorOnFetch() {
32
+ const client = new dummy_model_client_1.DummyModelClient();
33
+ await assert.rejects(client.fetch(1), client_exception_1.ClientException);
34
+ await assert.rejects(client.fetchMultiple([1, 2]), client_exception_1.ClientException);
35
+ await assert.rejects(client.fetchDescription(1), client_exception_1.ClientException);
36
+ await assert.rejects(client.fetchMultipleDescriptions([1, 2]), client_exception_1.ClientException);
37
+ }
38
+ async testFetch__DummyModel() {
39
+ const client = this.getClient();
40
+ const dummyModel = await client.fetch(199368);
41
+ assert.strictEqual(dummyModel.getId(), 199368);
42
+ const request = Moxios.requests.mostRecent();
43
+ assert.strictEqual(request.config.baseURL, this.providedBaseUrl);
44
+ assert.strictEqual(
45
+ // eslint-disable-next-line
46
+ request.config.headers['x-api-key'], this.providedApiKey);
47
+ assert.strictEqual(request.url, `dummy/v1/?seed=50&id=199368`);
48
+ }
49
+ async testFetchMultiple__DummyModel() {
50
+ const client = this.getClient();
51
+ const dummyModels = await client.fetchMultiple([199368, 70942]);
52
+ assert.strictEqual(dummyModels[0].getId(), 199368);
53
+ assert.strictEqual(dummyModels[1].getId(), 70942);
54
+ const request = Moxios.requests.mostRecent();
55
+ assert.strictEqual(request.config.baseURL, this.providedBaseUrl);
56
+ assert.strictEqual(
57
+ // eslint-disable-next-line
58
+ request.config.headers['x-api-key'], this.providedApiKey);
59
+ assert.strictEqual(request.url, `dummy/v1/?seed=50&id=199368&id=70942`);
60
+ }
61
+ async testFromDescription__DummyModel() {
62
+ const client = this.getClient();
63
+ const description = await client.fetchDescription(199368);
64
+ const dummyModel = client.fromDescription(description);
65
+ assert.strictEqual(dummyModel.getId(), 199368);
66
+ }
67
+ async testFromDescriptions__DummyModel() {
68
+ const client = this.getClient();
69
+ const descriptions = await client.fetchMultipleDescriptions([199368, 70942]);
70
+ const dummyModel = client.fromDescriptions(descriptions);
71
+ assert.strictEqual(dummyModel[0].getId(), 199368);
72
+ assert.strictEqual(dummyModel[1].getId(), 70942);
73
+ }
74
+ getClient() {
75
+ const response = fs.readFileSync(__dirname + '/../resources/dummy-response.json');
76
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
77
+ Moxios.wait(async () => {
78
+ const request = Moxios.requests.mostRecent();
79
+ await request.respondWith({
80
+ status: 200,
81
+ response: response.toString()
82
+ });
83
+ });
84
+ return new dummy_model_client_1.DummyModelClient(this.providedBaseUrl, this.providedApiKey, this.providedSeed);
85
+ }
86
+ };
87
+ __decorate([
88
+ mocha_1.test,
89
+ __metadata("design:type", Function),
90
+ __metadata("design:paramtypes", []),
91
+ __metadata("design:returntype", Promise)
92
+ ], DomainClientTest.prototype, "testConstructor_Empty_ErrorOnFetch", null);
93
+ __decorate([
94
+ mocha_1.test,
95
+ __metadata("design:type", Function),
96
+ __metadata("design:paramtypes", []),
97
+ __metadata("design:returntype", Promise)
98
+ ], DomainClientTest.prototype, "testFetch__DummyModel", null);
99
+ __decorate([
100
+ mocha_1.test,
101
+ __metadata("design:type", Function),
102
+ __metadata("design:paramtypes", []),
103
+ __metadata("design:returntype", Promise)
104
+ ], DomainClientTest.prototype, "testFetchMultiple__DummyModel", null);
105
+ __decorate([
106
+ mocha_1.test,
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", []),
109
+ __metadata("design:returntype", Promise)
110
+ ], DomainClientTest.prototype, "testFromDescription__DummyModel", null);
111
+ __decorate([
112
+ mocha_1.test,
113
+ __metadata("design:type", Function),
114
+ __metadata("design:paramtypes", []),
115
+ __metadata("design:returntype", Promise)
116
+ ], DomainClientTest.prototype, "testFromDescriptions__DummyModel", null);
117
+ DomainClientTest = __decorate([
118
+ mocha_1.suite
119
+ ], DomainClientTest);
120
+ exports.DomainClientTest = DomainClientTest;
121
+ //# sourceMappingURL=model-client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-client.test.js","sourceRoot":"","sources":["../../../tests/unit/model-client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class ModelFactoryTest {
2
+ testFromDescription__CorrectModel(): void;
3
+ testFromDescriptions__CorrectModels(): void;
4
+ testCallables_WithSubModel_CorrectValue(): void;
5
+ testCallables_WithoutSubModel_Error(): void;
6
+ testCallables_WithInArraySubModel_CorrectValue(): void;
7
+ testCallables_Should_UnpackWithCustomFactory_When_CalledWithCustomFactoryClass(): void;
8
+ testCallables_Should_UnpackWithCustomFactoryWithCorrectParameters_When_CalledWithCustomFactoryClass(): void;
9
+ private getDescriptions;
10
+ }
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ModelFactoryTest = void 0;
13
+ const mocha_1 = require("@testdeck/mocha");
14
+ const assert = require("assert");
15
+ const property_not_available_exception_1 = require("../../src/exceptions/property-not-available-exception");
16
+ const fs = require("fs");
17
+ const model_factory_1 = require("../../src/model-factory");
18
+ let ModelFactoryTest = class ModelFactoryTest {
19
+ testFromDescription__CorrectModel() {
20
+ const descriptions = this.getDescriptions();
21
+ const factory = new model_factory_1.ModelFactory();
22
+ const model = factory.fromDescription(descriptions[0]);
23
+ assert.strictEqual(model.getId(), 199368);
24
+ }
25
+ testFromDescriptions__CorrectModels() {
26
+ const descriptions = this.getDescriptions();
27
+ const factory = new model_factory_1.ModelFactory();
28
+ const models = factory.fromDescriptions(descriptions);
29
+ assert.strictEqual(models[0].getId(), 199368);
30
+ assert.strictEqual(models[1].getId(), 293107);
31
+ assert.strictEqual(models[2].getId(), 293109);
32
+ assert.strictEqual(models[3].getId(), 70942);
33
+ }
34
+ testCallables_WithSubModel_CorrectValue() {
35
+ const descriptions = this.getDescriptions();
36
+ const factory = new model_factory_1.ModelFactory();
37
+ const model = factory.fromDescription(descriptions[0]);
38
+ assert.strictEqual(model.canShowSubModel(), true);
39
+ const subModel = model.getSubModel();
40
+ assert.strictEqual(subModel.getId(), 123);
41
+ }
42
+ testCallables_WithoutSubModel_Error() {
43
+ const descriptions = this.getDescriptions();
44
+ const factory = new model_factory_1.ModelFactory();
45
+ const model = factory.fromDescription(descriptions[1]);
46
+ assert.strictEqual(model.canShowSubModel(), false);
47
+ // eslint-disable-next-line @typescript-eslint/unbound-method
48
+ assert.throws(model.getSubModel, property_not_available_exception_1.PropertyNotAvailableException);
49
+ }
50
+ testCallables_WithInArraySubModel_CorrectValue() {
51
+ const descriptions = this.getDescriptions();
52
+ const factory = new model_factory_1.ModelFactory();
53
+ const model = factory.fromDescription(descriptions[5]);
54
+ const list = model.getArray();
55
+ assert.strictEqual(1, list.length);
56
+ assert.strictEqual(9000, list[0].getId());
57
+ }
58
+ testCallables_Should_UnpackWithCustomFactory_When_CalledWithCustomFactoryClass() {
59
+ // given
60
+ const expectedCustomDummy = 'TestDummy';
61
+ const descriptions = this.getDescriptions();
62
+ const factory = new model_factory_1.ModelFactory();
63
+ const map = new Map().set('ICustomDummyModel', { create: () => expectedCustomDummy });
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
65
+ factory['customClassFactories'] = map;
66
+ // when
67
+ const model = factory.fromDescription(descriptions[4]);
68
+ // then
69
+ assert.strictEqual(model.getCustomSubModel(), expectedCustomDummy);
70
+ }
71
+ testCallables_Should_UnpackWithCustomFactoryWithCorrectParameters_When_CalledWithCustomFactoryClass() {
72
+ // given
73
+ const expectedCustomDummy = 'TestDummy';
74
+ const descriptions = this.getDescriptions();
75
+ const providedDescription = descriptions[4];
76
+ const factory = new model_factory_1.ModelFactory();
77
+ const expectedModel = providedDescription.func;
78
+ const expectedParameters = providedDescription.parameters;
79
+ let givenModel;
80
+ let givenParameters;
81
+ const map = new Map().set('IDummyModel', {
82
+ create: (model, parameters) => {
83
+ givenModel = model;
84
+ givenParameters = parameters;
85
+ return expectedCustomDummy;
86
+ }
87
+ });
88
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
89
+ factory['customClassFactories'] = map;
90
+ // when
91
+ factory.fromDescription(providedDescription);
92
+ // then
93
+ assert.strictEqual(givenModel.getId(), expectedModel.getId);
94
+ assert.strictEqual(givenParameters, expectedParameters);
95
+ }
96
+ getDescriptions() {
97
+ const file = fs.readFileSync(__dirname + '/../resources/dummy-response.json');
98
+ const data = JSON.parse(file.toString());
99
+ const descriptions = [];
100
+ for (const id of [199368, 293107, 293109, 70942, 5, 1337]) {
101
+ descriptions.push(data.data[id]);
102
+ }
103
+ return descriptions;
104
+ }
105
+ };
106
+ __decorate([
107
+ mocha_1.test,
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", []),
110
+ __metadata("design:returntype", void 0)
111
+ ], ModelFactoryTest.prototype, "testFromDescription__CorrectModel", null);
112
+ __decorate([
113
+ mocha_1.test,
114
+ __metadata("design:type", Function),
115
+ __metadata("design:paramtypes", []),
116
+ __metadata("design:returntype", void 0)
117
+ ], ModelFactoryTest.prototype, "testFromDescriptions__CorrectModels", null);
118
+ __decorate([
119
+ mocha_1.test,
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", []),
122
+ __metadata("design:returntype", void 0)
123
+ ], ModelFactoryTest.prototype, "testCallables_WithSubModel_CorrectValue", null);
124
+ __decorate([
125
+ mocha_1.test,
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", []),
128
+ __metadata("design:returntype", void 0)
129
+ ], ModelFactoryTest.prototype, "testCallables_WithoutSubModel_Error", null);
130
+ __decorate([
131
+ mocha_1.test,
132
+ __metadata("design:type", Function),
133
+ __metadata("design:paramtypes", []),
134
+ __metadata("design:returntype", void 0)
135
+ ], ModelFactoryTest.prototype, "testCallables_WithInArraySubModel_CorrectValue", null);
136
+ __decorate([
137
+ mocha_1.test,
138
+ __metadata("design:type", Function),
139
+ __metadata("design:paramtypes", []),
140
+ __metadata("design:returntype", void 0)
141
+ ], ModelFactoryTest.prototype, "testCallables_Should_UnpackWithCustomFactory_When_CalledWithCustomFactoryClass", null);
142
+ __decorate([
143
+ mocha_1.test,
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", []),
146
+ __metadata("design:returntype", void 0)
147
+ ], ModelFactoryTest.prototype, "testCallables_Should_UnpackWithCustomFactoryWithCorrectParameters_When_CalledWithCustomFactoryClass", null);
148
+ ModelFactoryTest = __decorate([
149
+ mocha_1.suite
150
+ ], ModelFactoryTest);
151
+ exports.ModelFactoryTest = ModelFactoryTest;
152
+ //# sourceMappingURL=model-factory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-factory.test.js","sourceRoot":"","sources":["../../../tests/unit/model-factory.test.ts"],"names":[],"mappings":"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"}