@icure/api 7.1.34 → 7.1.35

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 (148) hide show
  1. package/icc-api/api/IccAuthApi.d.ts +1 -0
  2. package/icc-api/api/IccAuthApi.js +1 -0
  3. package/icc-api/api/IccAuthApi.js.map +1 -1
  4. package/icc-x-api/index.d.ts +22 -29
  5. package/icc-x-api/index.js +60 -38
  6. package/icc-x-api/index.js.map +1 -1
  7. package/package.json +1 -1
  8. package/test/icc-api/api/IccDocumentApi.d.ts +1 -0
  9. package/test/icc-api/api/IccDocumentApi.js +200 -0
  10. package/test/icc-api/api/IccDocumentApi.js.map +1 -0
  11. package/test/icc-api/api/IccGroupApi.d.ts +1 -0
  12. package/test/icc-api/api/IccGroupApi.js +50 -0
  13. package/test/icc-api/api/IccGroupApi.js.map +1 -0
  14. package/test/icc-api/api/IccRoleApi.d.ts +1 -0
  15. package/test/icc-api/api/IccRoleApi.js +34 -0
  16. package/test/icc-api/api/IccRoleApi.js.map +1 -0
  17. package/test/icc-api/api/IccUserApi.d.ts +1 -0
  18. package/test/icc-api/api/IccUserApi.js +80 -0
  19. package/test/icc-api/api/IccUserApi.js.map +1 -0
  20. package/test/icc-api/e2e/IccCalendarItemApi.d.ts +1 -0
  21. package/test/icc-api/e2e/IccCalendarItemApi.js +45 -0
  22. package/test/icc-api/e2e/IccCalendarItemApi.js.map +1 -0
  23. package/test/icc-api/model/modelHelpersTest.d.ts +1 -0
  24. package/test/icc-api/model/modelHelpersTest.js +45 -0
  25. package/test/icc-api/model/modelHelpersTest.js.map +1 -0
  26. package/test/icc-x-api/auth/group-switch-test.d.ts +1 -0
  27. package/test/icc-x-api/auth/group-switch-test.js +81 -0
  28. package/test/icc-x-api/auth/group-switch-test.js.map +1 -0
  29. package/test/icc-x-api/auth/jwt-concurrency-test.d.ts +2 -0
  30. package/test/icc-x-api/auth/jwt-concurrency-test.js +113 -0
  31. package/test/icc-x-api/auth/jwt-concurrency-test.js.map +1 -0
  32. package/test/icc-x-api/auth/smart-auth-provider-test.d.ts +1 -0
  33. package/test/icc-x-api/auth/smart-auth-provider-test.js +222 -0
  34. package/test/icc-x-api/auth/smart-auth-provider-test.js.map +1 -0
  35. package/test/icc-x-api/crypto/KeyManager-test.d.ts +1 -0
  36. package/test/icc-x-api/crypto/KeyManager-test.js +225 -0
  37. package/test/icc-x-api/crypto/KeyManager-test.js.map +1 -0
  38. package/test/icc-x-api/crypto/concurrency.d.ts +1 -0
  39. package/test/icc-x-api/crypto/concurrency.js +35 -0
  40. package/test/icc-x-api/crypto/concurrency.js.map +1 -0
  41. package/test/icc-x-api/crypto/crypto-utils.d.ts +1 -0
  42. package/test/icc-x-api/crypto/crypto-utils.js +80 -0
  43. package/test/icc-x-api/crypto/crypto-utils.js.map +1 -0
  44. package/test/icc-x-api/crypto/cryptoTest.d.ts +2 -0
  45. package/test/icc-x-api/crypto/cryptoTest.js +275 -0
  46. package/test/icc-x-api/crypto/cryptoTest.js.map +1 -0
  47. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.d.ts +1 -0
  48. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js +132 -0
  49. package/test/icc-x-api/crypto/delegate-ci-to-patient-with-missing-keys-test.js.map +1 -0
  50. package/test/icc-x-api/crypto/full-crypto-test.d.ts +1 -0
  51. package/test/icc-x-api/crypto/full-crypto-test.js +458 -0
  52. package/test/icc-x-api/crypto/full-crypto-test.js.map +1 -0
  53. package/test/icc-x-api/crypto/shamir.d.ts +2 -0
  54. package/test/icc-x-api/crypto/shamir.js +156 -0
  55. package/test/icc-x-api/crypto/shamir.js.map +1 -0
  56. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.d.ts +1 -0
  57. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js +75 -0
  58. package/test/icc-x-api/crypto/share-to-newly-created-patient-from-hcp.js.map +1 -0
  59. package/test/icc-x-api/data-compatibility-test-7to6.d.ts +1 -0
  60. package/test/icc-x-api/data-compatibility-test-7to6.js +343 -0
  61. package/test/icc-x-api/data-compatibility-test-7to6.js.map +1 -0
  62. package/test/icc-x-api/entity-with-attachments-api-test.d.ts +1 -0
  63. package/test/icc-x-api/entity-with-attachments-api-test.js +142 -0
  64. package/test/icc-x-api/entity-with-attachments-api-test.js.map +1 -0
  65. package/test/icc-x-api/filters/filters.d.ts +1 -0
  66. package/test/icc-x-api/filters/filters.js +49 -0
  67. package/test/icc-x-api/filters/filters.js.map +1 -0
  68. package/test/icc-x-api/icc-accesslog-x-api.d.ts +1 -0
  69. package/test/icc-x-api/icc-accesslog-x-api.js +121 -0
  70. package/test/icc-x-api/icc-accesslog-x-api.js.map +1 -0
  71. package/test/icc-x-api/icc-auth-api.d.ts +1 -0
  72. package/test/icc-x-api/icc-auth-api.js +46 -0
  73. package/test/icc-x-api/icc-auth-api.js.map +1 -0
  74. package/test/icc-x-api/icc-calendar-item-x-api.d.ts +1 -0
  75. package/test/icc-x-api/icc-calendar-item-x-api.js +146 -0
  76. package/test/icc-x-api/icc-calendar-item-x-api.js.map +1 -0
  77. package/test/icc-x-api/icc-contact-x-api.d.ts +1 -0
  78. package/test/icc-x-api/icc-contact-x-api.js +311 -0
  79. package/test/icc-x-api/icc-contact-x-api.js.map +1 -0
  80. package/test/icc-x-api/icc-form-x-api.d.ts +1 -0
  81. package/test/icc-x-api/icc-form-x-api.js +331 -0
  82. package/test/icc-x-api/icc-form-x-api.js.map +1 -0
  83. package/test/icc-x-api/icc-helement-x-api-test.d.ts +1 -0
  84. package/test/icc-x-api/icc-helement-x-api-test.js +158 -0
  85. package/test/icc-x-api/icc-helement-x-api-test.js.map +1 -0
  86. package/test/icc-x-api/icc-invoice-x-api.d.ts +1 -0
  87. package/test/icc-x-api/icc-invoice-x-api.js +115 -0
  88. package/test/icc-x-api/icc-invoice-x-api.js.map +1 -0
  89. package/test/icc-x-api/icc-maintenance-task-x-api-test.d.ts +1 -0
  90. package/test/icc-x-api/icc-maintenance-task-x-api-test.js +230 -0
  91. package/test/icc-x-api/icc-maintenance-task-x-api-test.js.map +1 -0
  92. package/test/icc-x-api/icc-patient-x-api-test.d.ts +1 -0
  93. package/test/icc-x-api/icc-patient-x-api-test.js +169 -0
  94. package/test/icc-x-api/icc-patient-x-api-test.js.map +1 -0
  95. package/test/icc-x-api/icc-time-table-x-api.d.ts +1 -0
  96. package/test/icc-x-api/icc-time-table-x-api.js +110 -0
  97. package/test/icc-x-api/icc-time-table-x-api.js.map +1 -0
  98. package/test/icc-x-api/icc-user-x-api-test.d.ts +1 -0
  99. package/test/icc-x-api/icc-user-x-api-test.js +108 -0
  100. package/test/icc-x-api/icc-user-x-api-test.js.map +1 -0
  101. package/test/icc-x-api/icureapi-group-test.d.ts +1 -0
  102. package/test/icc-x-api/icureapi-group-test.js +130 -0
  103. package/test/icc-x-api/icureapi-group-test.js.map +1 -0
  104. package/test/icc-x-api/patient-user.d.ts +2 -0
  105. package/test/icc-x-api/patient-user.js +117 -0
  106. package/test/icc-x-api/patient-user.js.map +1 -0
  107. package/test/icc-x-api/storage/storage.d.ts +1 -0
  108. package/test/icc-x-api/storage/storage.js +50 -0
  109. package/test/icc-x-api/storage/storage.js.map +1 -0
  110. package/test/icc-x-api/subscription-apis.d.ts +2 -0
  111. package/test/icc-x-api/subscription-apis.js +498 -0
  112. package/test/icc-x-api/subscription-apis.js.map +1 -0
  113. package/test/icc-x-api/test-api-no-parent.d.ts +1 -0
  114. package/test/icc-x-api/test-api-no-parent.js +79 -0
  115. package/test/icc-x-api/test-api-no-parent.js.map +1 -0
  116. package/test/icc-x-api/test-legacy-data-support.d.ts +1 -0
  117. package/test/icc-x-api/test-legacy-data-support.js +231 -0
  118. package/test/icc-x-api/test-legacy-data-support.js.map +1 -0
  119. package/test/icc-x-api/utils/crypto-utils-test.d.ts +1 -0
  120. package/test/icc-x-api/utils/crypto-utils-test.js +586 -0
  121. package/test/icc-x-api/utils/crypto-utils-test.js.map +1 -0
  122. package/test/icc-x-api/utils/graph-test.d.ts +1 -0
  123. package/test/icc-x-api/utils/graph-test.js +54 -0
  124. package/test/icc-x-api/utils/graph-test.js.map +1 -0
  125. package/test/support/CSM-185.d.ts +1 -0
  126. package/test/support/CSM-185.js +120 -0
  127. package/test/support/CSM-185.js.map +1 -0
  128. package/test/support/CSM-87.d.ts +0 -0
  129. package/test/support/CSM-87.js +21 -0
  130. package/test/support/CSM-87.js.map +1 -0
  131. package/test/support/CSM-93.d.ts +1 -0
  132. package/test/support/CSM-93.js +111 -0
  133. package/test/support/CSM-93.js.map +1 -0
  134. package/test/utils/TestApi.d.ts +3 -0
  135. package/test/utils/TestApi.js +27 -0
  136. package/test/utils/TestApi.js.map +1 -0
  137. package/test/utils/TestCollectionUtils.d.ts +1 -0
  138. package/test/utils/TestCollectionUtils.js +109 -0
  139. package/test/utils/TestCollectionUtils.js.map +1 -0
  140. package/test/utils/TestCryptoStrategies.d.ts +37 -0
  141. package/test/utils/TestCryptoStrategies.js +72 -0
  142. package/test/utils/TestCryptoStrategies.js.map +1 -0
  143. package/test/utils/TestStorage.d.ts +31 -0
  144. package/test/utils/TestStorage.js +88 -0
  145. package/test/utils/TestStorage.js.map +1 -0
  146. package/test/utils/test_utils.d.ts +60 -0
  147. package/test/utils/test_utils.js +313 -0
  148. package/test/utils/test_utils.js.map +1 -0
@@ -0,0 +1,200 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const Document_1 = require("../../../icc-api/model/Document");
13
+ const chai_1 = require("chai");
14
+ const crypto_1 = require("crypto");
15
+ const test_utils_1 = require("../../utils/test_utils");
16
+ var initApi = test_utils_1.TestUtils.initApi;
17
+ const Delegation_1 = require("../../../icc-api/model/Delegation");
18
+ const types_1 = require("@icure/test-setup/types");
19
+ require("isomorphic-fetch");
20
+ (0, test_utils_1.setLocalStorage)(fetch);
21
+ const sampleKey = 'thumbnail';
22
+ const sampleKey2 = 'thumbnail2';
23
+ const sampleUti = ['uti2', 'uti1', 'uti3'];
24
+ const sampleUti2 = ['uti4'];
25
+ function bufferEquals(buf1, buf2) {
26
+ if (buf1.byteLength != buf2.byteLength)
27
+ return false;
28
+ const dv1 = new Int8Array(buf1);
29
+ const dv2 = new Int8Array(buf2);
30
+ return arrayEquals(dv1, dv2);
31
+ }
32
+ function arrayEquals(a1, a2) {
33
+ if (a1.length != a2.length)
34
+ return false;
35
+ for (let i = 0; i < a1.length; i++) {
36
+ if (a1[i] != a2[i])
37
+ return false;
38
+ }
39
+ return true;
40
+ }
41
+ function assertRequestFails(request, status) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ let succeeded = false;
44
+ try {
45
+ yield request;
46
+ succeeded = true;
47
+ }
48
+ catch (e) {
49
+ (0, chai_1.expect)(e.statusCode).to.equal(status);
50
+ }
51
+ (0, chai_1.assert)(!succeeded, 'Request should have not succeeded');
52
+ });
53
+ }
54
+ let env;
55
+ let documentApi;
56
+ let dataOwnerId;
57
+ describe('Document api', () => {
58
+ before(function () {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ this.timeout(600000);
61
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
62
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
63
+ const api = yield initApi(env, test_utils_1.hcp1Username);
64
+ documentApi = api.documentApi;
65
+ dataOwnerId = yield api.dataOwnerApi.getCurrentDataOwnerId();
66
+ });
67
+ });
68
+ function createDocument() {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ return yield documentApi.createDocument(new Document_1.Document({
71
+ id: (0, crypto_1.randomUUID)(),
72
+ delegations: {
73
+ [dataOwnerId]: [
74
+ new Delegation_1.Delegation({
75
+ owner: dataOwnerId,
76
+ delegatedTo: dataOwnerId,
77
+ key: 'fakekey',
78
+ }),
79
+ ],
80
+ },
81
+ }));
82
+ });
83
+ }
84
+ it('should allow to create and retrieve main attachments', () => __awaiter(void 0, void 0, void 0, function* () {
85
+ const document = yield createDocument();
86
+ const data = (0, crypto_1.randomBytes)(32);
87
+ (0, chai_1.expect)(document.rev).to.not.be.undefined;
88
+ const updated = yield documentApi.setDocumentAttachment(document.id, undefined, data);
89
+ (0, chai_1.expect)(updated).to.not.be.undefined;
90
+ const retrievedData = yield documentApi.getDocumentAttachment(document.id, 'ignored');
91
+ (0, chai_1.assert)(bufferEquals(retrievedData, data));
92
+ }));
93
+ it('should allow to update main attachment', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ const document = yield createDocument();
95
+ const data1 = (0, crypto_1.randomBytes)(32);
96
+ const data2 = (0, crypto_1.randomBytes)(32);
97
+ const updated = yield documentApi.setDocumentAttachment(document.id, undefined, data1, sampleUti);
98
+ (0, chai_1.expect)(updated.mainUti).to.equal(sampleUti[0]);
99
+ (0, chai_1.assert)(arrayEquals(updated.otherUtis, sampleUti.slice(1)));
100
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getDocumentAttachment(document.id, 'ignored'), data1));
101
+ const updated2 = yield documentApi.setDocumentAttachment(document.id, undefined, data2);
102
+ (0, chai_1.expect)(updated2.mainUti).to.equal(sampleUti[0]);
103
+ (0, chai_1.assert)(arrayEquals(updated2.otherUtis, sampleUti.slice(1)));
104
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getDocumentAttachment(document.id, 'ignored'), data2));
105
+ }));
106
+ it('should allow to update utis in main attachment', () => __awaiter(void 0, void 0, void 0, function* () {
107
+ var _a;
108
+ const document = yield createDocument();
109
+ const data = (0, crypto_1.randomBytes)(32);
110
+ const updated = yield documentApi.setDocumentAttachment(document.id, undefined, data, []);
111
+ (0, chai_1.expect)(updated.mainUti).to.be.undefined;
112
+ (0, chai_1.expect)((_a = updated.otherUtis) !== null && _a !== void 0 ? _a : []).to.be.empty;
113
+ const updated2 = yield documentApi.setDocumentAttachment(document.id, undefined, data, sampleUti);
114
+ (0, chai_1.expect)(updated2.mainUti).to.equal(sampleUti[0]);
115
+ (0, chai_1.assert)(arrayEquals(updated2.otherUtis, sampleUti.slice(1)));
116
+ }));
117
+ it('should allow to create and retrieve secondary attachments', () => __awaiter(void 0, void 0, void 0, function* () {
118
+ const document = yield createDocument();
119
+ const data = (0, crypto_1.randomBytes)(32);
120
+ const updated = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data);
121
+ (0, chai_1.expect)(updated.secondaryAttachments).to.contain.keys([sampleKey]);
122
+ (0, chai_1.assert)(arrayEquals(updated.secondaryAttachments[sampleKey].utis, []));
123
+ const retrievedData = yield documentApi.getSecondaryAttachment(document.id, sampleKey);
124
+ (0, chai_1.assert)(bufferEquals(retrievedData, data));
125
+ }));
126
+ it('should allow to initialise utis in secondary attachments', () => __awaiter(void 0, void 0, void 0, function* () {
127
+ const document = yield createDocument();
128
+ const data = (0, crypto_1.randomBytes)(32);
129
+ const updated = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data, sampleUti);
130
+ (0, chai_1.assert)(arrayEquals(updated.secondaryAttachments[sampleKey].utis, sampleUti));
131
+ }));
132
+ it('should allow to update secondary attachments', () => __awaiter(void 0, void 0, void 0, function* () {
133
+ const document = yield createDocument();
134
+ const data1 = (0, crypto_1.randomBytes)(32);
135
+ const data2 = (0, crypto_1.randomBytes)(32);
136
+ const updated = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data1, sampleUti);
137
+ (0, chai_1.assert)(arrayEquals(updated.secondaryAttachments[sampleKey].utis, sampleUti));
138
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey), data1));
139
+ const updated2 = yield documentApi.setSecondaryAttachment(document.id, sampleKey, updated.rev, data2);
140
+ (0, chai_1.assert)(arrayEquals(updated2.secondaryAttachments[sampleKey].utis, sampleUti));
141
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey), data2));
142
+ }));
143
+ it('should allow to update utis in secondary attachments', () => __awaiter(void 0, void 0, void 0, function* () {
144
+ const document = yield createDocument();
145
+ const data = (0, crypto_1.randomBytes)(32);
146
+ const updated = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data);
147
+ (0, chai_1.assert)(arrayEquals(updated.secondaryAttachments[sampleKey].utis, []));
148
+ const updated2 = yield documentApi.setSecondaryAttachment(document.id, sampleKey, updated.rev, data, sampleUti);
149
+ (0, chai_1.assert)(arrayEquals(updated2.secondaryAttachments[sampleKey].utis, sampleUti));
150
+ }));
151
+ it('should allow to delete secondary attachments', () => __awaiter(void 0, void 0, void 0, function* () {
152
+ const document = yield createDocument();
153
+ const data = (0, crypto_1.randomBytes)(32);
154
+ const updated = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data);
155
+ const originalAttachment = updated.secondaryAttachments[sampleKey];
156
+ const timeBeforeDelete = Date.now() - 1;
157
+ const deleted = yield documentApi.deleteSecondaryAttachment(document.id, sampleKey, updated.rev);
158
+ const timeAfterDelete = Date.now() + 1;
159
+ (0, chai_1.expect)(deleted.deletedAttachments).to.have.length(1);
160
+ const deletedAttachment = deleted.deletedAttachments[0];
161
+ (0, chai_1.expect)(deletedAttachment.couchDbAttachmentId).to.equal(originalAttachment.couchDbAttachmentId);
162
+ (0, chai_1.expect)(deletedAttachment.objectStoreAttachmentId).to.equal(originalAttachment.objectStoreAttachmentId);
163
+ (0, chai_1.expect)(deletedAttachment.key).to.equal(sampleKey);
164
+ (0, chai_1.expect)(deletedAttachment.deletionTime).to.be.above(timeBeforeDelete).and.below(timeAfterDelete);
165
+ (0, chai_1.expect)(Object.keys(deleted.secondaryAttachments)).to.be.empty;
166
+ }));
167
+ it('should treat secondary attachments with different keys as different attachments', () => __awaiter(void 0, void 0, void 0, function* () {
168
+ const document = yield createDocument();
169
+ const data1 = (0, crypto_1.randomBytes)(32);
170
+ const data2 = (0, crypto_1.randomBytes)(32);
171
+ const data3 = (0, crypto_1.randomBytes)(32);
172
+ (0, chai_1.assert)(!bufferEquals(data1, data2));
173
+ const updated1 = yield documentApi.setSecondaryAttachment(document.id, sampleKey, document.rev, data1);
174
+ const updated2 = yield documentApi.setSecondaryAttachment(document.id, sampleKey2, updated1.rev, data2, sampleUti);
175
+ (0, chai_1.expect)(updated2.secondaryAttachments).to.have.keys([sampleKey, sampleKey2]);
176
+ (0, chai_1.assert)(arrayEquals(updated2.secondaryAttachments[sampleKey].utis, []));
177
+ (0, chai_1.assert)(arrayEquals(updated2.secondaryAttachments[sampleKey2].utis, sampleUti));
178
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey), data1));
179
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey2), data2));
180
+ const updated3 = yield documentApi.setSecondaryAttachment(document.id, sampleKey, updated2.rev, data3, sampleUti2);
181
+ (0, chai_1.expect)(updated3.secondaryAttachments).to.have.keys([sampleKey, sampleKey2]);
182
+ (0, chai_1.assert)(arrayEquals(updated3.secondaryAttachments[sampleKey].utis, sampleUti2));
183
+ (0, chai_1.assert)(arrayEquals(updated3.secondaryAttachments[sampleKey2].utis, sampleUti));
184
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey), data3));
185
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey2), data2));
186
+ (0, chai_1.expect)(updated3.deletedAttachments).to.have.length(1);
187
+ const updated4 = yield documentApi.deleteSecondaryAttachment(document.id, sampleKey2, updated3.rev);
188
+ (0, chai_1.expect)(updated4.secondaryAttachments).to.have.keys([sampleKey]);
189
+ (0, chai_1.expect)(updated4.deletedAttachments).to.have.length(2);
190
+ (0, chai_1.assert)(bufferEquals(yield documentApi.getSecondaryAttachment(document.id, sampleKey), data3));
191
+ yield assertRequestFails(documentApi.getSecondaryAttachment(document.id, sampleKey2), 404);
192
+ }));
193
+ it('should prevent using the document id as an attachment key', () => __awaiter(void 0, void 0, void 0, function* () {
194
+ const document = yield createDocument();
195
+ yield assertRequestFails(documentApi.setSecondaryAttachment(document.id, document.id, document.rev, (0, crypto_1.randomBytes)(32)), 400);
196
+ yield assertRequestFails(documentApi.deleteSecondaryAttachment(document.id, document.id, document.rev), 400);
197
+ yield assertRequestFails(documentApi.getSecondaryAttachment(document.id, document.id, document.rev), 400);
198
+ }));
199
+ });
200
+ //# sourceMappingURL=IccDocumentApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IccDocumentApi.js","sourceRoot":"","sources":["../../../../test/icc-api/api/IccDocumentApi.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,8DAA0D;AAC1D,+BAAqC;AACrC,mCAAgD;AAChD,uDAA4G;AAC5G,IAAO,OAAO,GAAG,sBAAS,CAAC,OAAO,CAAA;AAClC,kEAA8D;AAC9D,mDAAmE;AACnE,4BAAyB;AAEzB,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AACtB,MAAM,SAAS,GAAG,WAAW,CAAA;AAC7B,MAAM,UAAU,GAAG,YAAY,CAAA;AAC/B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAC1C,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAA;AAE3B,SAAS,YAAY,CAAC,IAAiB,EAAE,IAAiB;IACxD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAA;IACpD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,WAAW,CAAI,EAAgB,EAAE,EAAgB;IACxD,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;KACjC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAe,kBAAkB,CAAC,OAAqB,EAAE,MAAc;;QACrE,IAAI,SAAS,GAAG,KAAK,CAAA;QACrB,IAAI;YACF,MAAM,OAAO,CAAA;YACb,SAAS,GAAG,IAAI,CAAA;SACjB;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,aAAM,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;SACtC;QACD,IAAA,aAAM,EAAC,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAA;IACzD,CAAC;CAAA;AAED,IAAI,GAAa,CAAA;AACjB,IAAI,WAA4B,CAAA;AAChC,IAAI,WAAmB,CAAA;AAEvB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,CAAC;;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;YACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;YAClD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAI,EAAE,yBAAY,CAAC,CAAA;YAC7C,WAAW,GAAG,GAAG,CAAC,WAAW,CAAA;YAC7B,WAAW,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAA;QAC9D,CAAC;KAAA,CAAC,CAAA;IAEF,SAAe,cAAc;;YAC3B,OAAO,MAAM,WAAW,CAAC,cAAc,CACrC,IAAI,mBAAQ,CAAC;gBACX,EAAE,EAAE,IAAA,mBAAU,GAAE;gBAChB,WAAW,EAAE;oBACX,CAAC,WAAW,CAAC,EAAE;wBACb,IAAI,uBAAU,CAAC;4BACb,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,WAAW;4BACxB,GAAG,EAAE,SAAS;yBACf,CAAC;qBACH;iBACF;aACF,CAAC,CACH,CAAA;QACH,CAAC;KAAA;IAED,EAAE,CAAC,sDAAsD,EAAE,GAAS,EAAE;QACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,IAAA,aAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAA;QACxC,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;QACvF,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAA;QACnC,MAAM,aAAa,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,CAAA;QACvF,IAAA,aAAM,EAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QACnG,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9C,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,SAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3D,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC9F,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACzF,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,SAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAChG,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAS,EAAE;;QAC9D,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QAC3F,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAA;QACvC,IAAA,aAAM,EAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QACnG,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,SAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAS,EAAE;QACzE,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,IAAI,CAAC,CAAA;QACvG,IAAA,aAAM,EAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACjE,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QACvE,MAAM,aAAa,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,CAAA;QACxF,IAAA,aAAM,EAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAS,EAAE;QACxE,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QAClH,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IAChF,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QACnH,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QAC9E,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/F,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,OAAO,CAAC,GAAI,EAAE,KAAK,CAAC,CAAA;QACxG,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QAC/E,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACjG,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,GAAS,EAAE;QACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,IAAI,CAAC,CAAA;QACvG,IAAA,aAAM,EAAC,WAAW,CAAC,OAAO,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,OAAO,CAAC,GAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;QAClH,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IACjF,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAS,EAAE;QAC5D,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,IAAI,CAAC,CAAA;QACvG,MAAM,kBAAkB,GAAG,OAAO,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAA;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvC,MAAM,OAAO,GAAG,MAAM,WAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,OAAO,CAAC,GAAI,CAAC,CAAA;QACnG,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACtC,IAAA,aAAM,EAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAmB,CAAC,CAAC,CAAC,CAAA;QACxD,IAAA,aAAM,EAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAC9F,IAAA,aAAM,EAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAA;QACtG,IAAA,aAAM,EAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjD,IAAA,aAAM,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAC/F,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAA;IAChE,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,iFAAiF,EAAE,GAAS,EAAE;QAC/F,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAA;QAC7B,IAAA,aAAM,EAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;QACnC,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,KAAK,CAAC,CAAA;QACzG,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;QACrH,IAAA,aAAM,EAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3E,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QACxE,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,UAAU,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QAChF,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/F,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAChG,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;QACrH,IAAA,aAAM,EAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAC3E,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,SAAS,CAAC,CAAC,IAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAChF,IAAA,aAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,oBAAqB,CAAC,UAAU,CAAC,CAAC,IAAK,EAAE,SAAS,CAAC,CAAC,CAAA;QAChF,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/F,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAChG,IAAA,aAAM,EAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,MAAM,WAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAI,CAAC,CAAA;QACtG,IAAA,aAAM,EAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/D,IAAA,aAAM,EAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACrD,IAAA,aAAM,EAAC,YAAY,CAAC,MAAM,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/F,MAAM,kBAAkB,CAAC,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;IAC9F,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAS,EAAE;QACzE,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAA;QACvC,MAAM,kBAAkB,CAAC,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,GAAI,EAAE,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9H,MAAM,kBAAkB,CAAC,WAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,GAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QAChH,MAAM,kBAAkB,CAAC,WAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,EAAG,EAAE,QAAQ,CAAC,GAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IAC/G,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { IccDocumentXApi } from '../../../icc-x-api'\nimport { Document } from '../../../icc-api/model/Document'\nimport { assert, expect } from 'chai'\nimport { randomBytes, randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, setLocalStorage, TestUtils } from '../../utils/test_utils'\nimport initApi = TestUtils.initApi\nimport { Delegation } from '../../../icc-api/model/Delegation'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport 'isomorphic-fetch'\n\nsetLocalStorage(fetch)\nconst sampleKey = 'thumbnail'\nconst sampleKey2 = 'thumbnail2'\nconst sampleUti = ['uti2', 'uti1', 'uti3']\nconst sampleUti2 = ['uti4']\n\nfunction bufferEquals(buf1: ArrayBuffer, buf2: ArrayBuffer): Boolean {\n if (buf1.byteLength != buf2.byteLength) return false\n const dv1 = new Int8Array(buf1)\n const dv2 = new Int8Array(buf2)\n return arrayEquals(dv1, dv2)\n}\n\nfunction arrayEquals<T>(a1: ArrayLike<T>, a2: ArrayLike<T>): Boolean {\n if (a1.length != a2.length) return false\n for (let i = 0; i < a1.length; i++) {\n if (a1[i] != a2[i]) return false\n }\n return true\n}\n\nasync function assertRequestFails(request: Promise<any>, status: number) {\n let succeeded = false\n try {\n await request\n succeeded = true\n } catch (e: any) {\n expect(e.statusCode).to.equal(status)\n }\n assert(!succeeded, 'Request should have not succeeded')\n}\n\nlet env: TestVars\nlet documentApi: IccDocumentXApi\nlet dataOwnerId: string\n\ndescribe('Document api', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n const api = await initApi(env!, hcp1Username)\n documentApi = api.documentApi\n dataOwnerId = await api.dataOwnerApi.getCurrentDataOwnerId()\n })\n\n async function createDocument(): Promise<Document> {\n return await documentApi.createDocument(\n new Document({\n id: randomUUID(),\n delegations: {\n [dataOwnerId]: [\n new Delegation({\n owner: dataOwnerId,\n delegatedTo: dataOwnerId,\n key: 'fakekey',\n }),\n ],\n },\n })\n )\n }\n\n it('should allow to create and retrieve main attachments', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n expect(document.rev).to.not.be.undefined\n const updated = await documentApi!.setDocumentAttachment(document.id!, undefined, data)\n expect(updated).to.not.be.undefined\n const retrievedData = await documentApi!.getDocumentAttachment(document.id!, 'ignored')\n assert(bufferEquals(retrievedData, data))\n })\n\n it('should allow to update main attachment', async () => {\n const document = await createDocument()\n const data1 = randomBytes(32)\n const data2 = randomBytes(32)\n const updated = await documentApi!.setDocumentAttachment(document.id!, undefined, data1, sampleUti)\n expect(updated.mainUti).to.equal(sampleUti[0])\n assert(arrayEquals(updated.otherUtis!, sampleUti.slice(1)))\n assert(bufferEquals(await documentApi!.getDocumentAttachment(document.id!, 'ignored'), data1))\n const updated2 = await documentApi!.setDocumentAttachment(document.id!, undefined, data2)\n expect(updated2.mainUti).to.equal(sampleUti[0])\n assert(arrayEquals(updated2.otherUtis!, sampleUti.slice(1)))\n assert(bufferEquals(await documentApi!.getDocumentAttachment(document.id!, 'ignored'), data2))\n })\n\n it('should allow to update utis in main attachment', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n const updated = await documentApi!.setDocumentAttachment(document.id!, undefined, data, [])\n expect(updated.mainUti).to.be.undefined\n expect(updated.otherUtis ?? []).to.be.empty\n const updated2 = await documentApi!.setDocumentAttachment(document.id!, undefined, data, sampleUti)\n expect(updated2.mainUti).to.equal(sampleUti[0])\n assert(arrayEquals(updated2.otherUtis!, sampleUti.slice(1)))\n })\n\n it('should allow to create and retrieve secondary attachments', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n const updated = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data)\n expect(updated.secondaryAttachments).to.contain.keys([sampleKey])\n assert(arrayEquals(updated.secondaryAttachments![sampleKey].utis!, []))\n const retrievedData = await documentApi!.getSecondaryAttachment(document.id!, sampleKey)\n assert(bufferEquals(retrievedData, data))\n })\n\n it('should allow to initialise utis in secondary attachments', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n const updated = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data, sampleUti)\n assert(arrayEquals(updated.secondaryAttachments![sampleKey].utis!, sampleUti))\n })\n\n it('should allow to update secondary attachments', async () => {\n const document = await createDocument()\n const data1 = randomBytes(32)\n const data2 = randomBytes(32)\n const updated = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data1, sampleUti)\n assert(arrayEquals(updated.secondaryAttachments![sampleKey].utis!, sampleUti))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey), data1))\n const updated2 = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, updated.rev!, data2)\n assert(arrayEquals(updated2.secondaryAttachments![sampleKey].utis!, sampleUti))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey), data2))\n })\n\n it('should allow to update utis in secondary attachments', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n const updated = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data)\n assert(arrayEquals(updated.secondaryAttachments![sampleKey].utis!, []))\n const updated2 = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, updated.rev!, data, sampleUti)\n assert(arrayEquals(updated2.secondaryAttachments![sampleKey].utis!, sampleUti))\n })\n\n it('should allow to delete secondary attachments', async () => {\n const document = await createDocument()\n const data = randomBytes(32)\n const updated = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data)\n const originalAttachment = updated.secondaryAttachments![sampleKey]\n const timeBeforeDelete = Date.now() - 1\n const deleted = await documentApi!.deleteSecondaryAttachment(document.id!, sampleKey, updated.rev!)\n const timeAfterDelete = Date.now() + 1\n expect(deleted.deletedAttachments).to.have.length(1)\n const deletedAttachment = deleted.deletedAttachments![0]\n expect(deletedAttachment.couchDbAttachmentId).to.equal(originalAttachment.couchDbAttachmentId)\n expect(deletedAttachment.objectStoreAttachmentId).to.equal(originalAttachment.objectStoreAttachmentId)\n expect(deletedAttachment.key).to.equal(sampleKey)\n expect(deletedAttachment.deletionTime).to.be.above(timeBeforeDelete).and.below(timeAfterDelete)\n expect(Object.keys(deleted.secondaryAttachments!)).to.be.empty\n })\n\n it('should treat secondary attachments with different keys as different attachments', async () => {\n const document = await createDocument()\n const data1 = randomBytes(32)\n const data2 = randomBytes(32)\n const data3 = randomBytes(32)\n assert(!bufferEquals(data1, data2))\n const updated1 = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, document.rev!, data1)\n const updated2 = await documentApi!.setSecondaryAttachment(document.id!, sampleKey2, updated1.rev!, data2, sampleUti)\n expect(updated2.secondaryAttachments).to.have.keys([sampleKey, sampleKey2])\n assert(arrayEquals(updated2.secondaryAttachments![sampleKey].utis!, []))\n assert(arrayEquals(updated2.secondaryAttachments![sampleKey2].utis!, sampleUti))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey), data1))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey2), data2))\n const updated3 = await documentApi!.setSecondaryAttachment(document.id!, sampleKey, updated2.rev!, data3, sampleUti2)\n expect(updated3.secondaryAttachments).to.have.keys([sampleKey, sampleKey2])\n assert(arrayEquals(updated3.secondaryAttachments![sampleKey].utis!, sampleUti2))\n assert(arrayEquals(updated3.secondaryAttachments![sampleKey2].utis!, sampleUti))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey), data3))\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey2), data2))\n expect(updated3.deletedAttachments).to.have.length(1)\n const updated4 = await documentApi!.deleteSecondaryAttachment(document.id!, sampleKey2, updated3.rev!)\n expect(updated4.secondaryAttachments).to.have.keys([sampleKey])\n expect(updated4.deletedAttachments).to.have.length(2)\n assert(bufferEquals(await documentApi!.getSecondaryAttachment(document.id!, sampleKey), data3))\n await assertRequestFails(documentApi!.getSecondaryAttachment(document.id!, sampleKey2), 404)\n })\n\n it('should prevent using the document id as an attachment key', async () => {\n const document = await createDocument()\n await assertRequestFails(documentApi!.setSecondaryAttachment(document.id!, document.id!, document.rev!, randomBytes(32)), 400)\n await assertRequestFails(documentApi!.deleteSecondaryAttachment(document.id!, document.id!, document.rev!), 400)\n await assertRequestFails(documentApi!.getSecondaryAttachment(document.id!, document.id!, document.rev!), 400)\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ import 'isomorphic-fetch';
@@ -0,0 +1,50 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const crypto_1 = require("crypto");
13
+ const test_utils_1 = require("../../utils/test_utils");
14
+ require("isomorphic-fetch");
15
+ const UserTypeEnum_1 = require("../../../icc-api/model/UserTypeEnum");
16
+ var initMasterApi = test_utils_1.TestUtils.initMasterApi;
17
+ const chai_1 = require("chai");
18
+ const RoleSourceEnum_1 = require("../../../icc-api/model/RoleSourceEnum");
19
+ const types_1 = require("@icure/test-setup/types");
20
+ const DatabaseInitialisation_1 = require("../../../icc-api/model/DatabaseInitialisation");
21
+ (0, test_utils_1.setLocalStorage)(fetch);
22
+ let env;
23
+ describe('Group', () => {
24
+ before(function () {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ this.timeout(600000);
27
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
28
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
29
+ });
30
+ });
31
+ it('should be able to set and retrieve default roles in a group', () => __awaiter(void 0, void 0, void 0, function* () {
32
+ const { roleApi, groupApi } = yield initMasterApi(env);
33
+ const role = (yield roleApi.getRoles())[0].id;
34
+ const userType = UserTypeEnum_1.UserTypeEnum.Device;
35
+ const groupId = (0, crypto_1.randomUUID)();
36
+ const groupName = groupId.substring(0, 5);
37
+ yield groupApi.createGroup(groupId, groupName, (0, crypto_1.randomUUID)(), undefined, undefined, undefined, undefined, undefined, new DatabaseInitialisation_1.DatabaseInitialisation({
38
+ users: [],
39
+ healthcareParties: [],
40
+ }));
41
+ const updatedGroup = yield groupApi.setDefaultRoles(groupId, userType, [role]);
42
+ (0, chai_1.expect)(updatedGroup.defaultUserRoles).not.to.be.undefined;
43
+ (0, chai_1.expect)(updatedGroup.defaultUserRoles[userType][0]).to.be.equal(role);
44
+ const retrievedRoles = yield groupApi.getDefaultRoles(groupId);
45
+ (0, chai_1.expect)(retrievedRoles[userType].length).to.be.greaterThan(1);
46
+ (0, chai_1.expect)(retrievedRoles[userType][0].roles[0]).to.be.equal(role);
47
+ (0, chai_1.expect)(retrievedRoles[UserTypeEnum_1.UserTypeEnum.Hcp][0].source).to.be.equal(RoleSourceEnum_1.RoleSourceEnum.Inherited);
48
+ }));
49
+ });
50
+ //# sourceMappingURL=IccGroupApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IccGroupApi.js","sourceRoot":"","sources":["../../../../test/icc-api/api/IccGroupApi.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,mCAAmC;AACnC,uDAA8F;AAC9F,4BAAyB;AACzB,sEAAkE;AAClE,IAAO,aAAa,GAAG,sBAAS,CAAC,aAAa,CAAA;AAC9C,+BAA6B;AAC7B,0EAAsE;AACtE,mDAAmE;AACnE,0FAAsF;AAEtF,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AAEtB,IAAI,GAAa,CAAA;AAEjB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,MAAM,CAAC;;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;YACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;QACpD,CAAC;KAAA,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,GAAS,EAAE;QAC3E,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QAEtD,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAA;QAC9C,MAAM,QAAQ,GAAG,2BAAY,CAAC,MAAM,CAAA;QAEpC,MAAM,OAAO,GAAG,IAAA,mBAAU,GAAE,CAAA;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACzC,MAAM,QAAQ,CAAC,WAAW,CACxB,OAAO,EACP,SAAS,EACT,IAAA,mBAAU,GAAE,EACZ,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,IAAI,+CAAsB,CAAC;YACzB,KAAK,EAAE,EAAE;YACT,iBAAiB,EAAE,EAAE;SACtB,CAAC,CACH,CAAA;QAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9E,IAAA,aAAM,EAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAA;QACzD,IAAA,aAAM,EAAC,YAAY,CAAC,gBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtE,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC9D,IAAA,aAAM,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAA,aAAM,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChE,IAAA,aAAM,EAAC,cAAc,CAAC,2BAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,+BAAc,CAAC,SAAS,CAAC,CAAA;IAC1F,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, setLocalStorage, TestUtils } from '../../utils/test_utils'\nimport 'isomorphic-fetch'\nimport { UserTypeEnum } from '../../../icc-api/model/UserTypeEnum'\nimport initMasterApi = TestUtils.initMasterApi\nimport { expect } from 'chai'\nimport { RoleSourceEnum } from '../../../icc-api/model/RoleSourceEnum'\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport { DatabaseInitialisation } from '../../../icc-api/model/DatabaseInitialisation'\n\nsetLocalStorage(fetch)\n\nlet env: TestVars\n\ndescribe('Group', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('should be able to set and retrieve default roles in a group', async () => {\n const { roleApi, groupApi } = await initMasterApi(env)\n\n const role = (await roleApi.getRoles())[0].id!\n const userType = UserTypeEnum.Device\n\n const groupId = randomUUID()\n const groupName = groupId.substring(0, 5)\n await groupApi.createGroup(\n groupId,\n groupName,\n randomUUID(),\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n new DatabaseInitialisation({\n users: [],\n healthcareParties: [],\n })\n )\n\n const updatedGroup = await groupApi.setDefaultRoles(groupId, userType, [role])\n expect(updatedGroup.defaultUserRoles).not.to.be.undefined\n expect(updatedGroup.defaultUserRoles!![userType][0]).to.be.equal(role)\n\n const retrievedRoles = await groupApi.getDefaultRoles(groupId)\n expect(retrievedRoles[userType].length).to.be.greaterThan(1)\n expect(retrievedRoles[userType][0].roles!![0]).to.be.equal(role)\n expect(retrievedRoles[UserTypeEnum.Hcp][0].source).to.be.equal(RoleSourceEnum.Inherited)\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ import 'isomorphic-fetch';
@@ -0,0 +1,34 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ require("isomorphic-fetch");
13
+ const test_utils_1 = require("../../utils/test_utils");
14
+ const chai_1 = require("chai");
15
+ var initMasterApi = test_utils_1.TestUtils.initMasterApi;
16
+ const types_1 = require("@icure/test-setup/types");
17
+ (0, test_utils_1.setLocalStorage)(fetch);
18
+ let env;
19
+ let roleApi;
20
+ describe('IccRoleApi', () => {
21
+ before(function () {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ this.timeout(600000);
24
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
25
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
26
+ roleApi = (yield initMasterApi(env)).roleApi;
27
+ });
28
+ });
29
+ it('should be able of getting all the roles', () => __awaiter(void 0, void 0, void 0, function* () {
30
+ const roles = yield roleApi.getRoles();
31
+ (0, chai_1.expect)(roles.length).to.be.greaterThan(0);
32
+ }));
33
+ });
34
+ //# sourceMappingURL=IccRoleApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IccRoleApi.js","sourceRoot":"","sources":["../../../../test/icc-api/api/IccRoleApi.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAAyB;AACzB,uDAA8F;AAE9F,+BAA6B;AAC7B,IAAO,aAAa,GAAG,sBAAS,CAAC,aAAa,CAAA;AAC9C,mDAAmE;AAEnE,IAAA,4BAAe,EAAC,KAAK,CAAC,CAAA;AAEtB,IAAI,GAAa,CAAA;AACjB,IAAI,OAAmB,CAAA;AAEvB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,MAAM,CAAC;;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;YACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;YAClD,OAAO,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;QAC9C,CAAC;KAAA,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QACtC,IAAA,aAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import 'isomorphic-fetch'\nimport { getEnvironmentInitializer, setLocalStorage, TestUtils } from '../../utils/test_utils'\nimport { IccRoleApi } from '../../../icc-api/api/IccRoleApi'\nimport { expect } from 'chai'\nimport initMasterApi = TestUtils.initMasterApi\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\n\nsetLocalStorage(fetch)\n\nlet env: TestVars\nlet roleApi: IccRoleApi\n\ndescribe('IccRoleApi', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n roleApi = (await initMasterApi(env)).roleApi\n })\n\n it('should be able of getting all the roles', async () => {\n const roles = await roleApi.getRoles()\n expect(roles.length).to.be.greaterThan(0)\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ import 'isomorphic-fetch';
@@ -0,0 +1,80 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const chai_1 = require("chai");
13
+ const crypto_1 = require("crypto");
14
+ const test_utils_1 = require("../../utils/test_utils");
15
+ var initApi = test_utils_1.TestUtils.initApi;
16
+ const types_1 = require("@icure/test-setup/types");
17
+ require("isomorphic-fetch");
18
+ var initMasterApi = test_utils_1.TestUtils.initMasterApi;
19
+ const apiV6_1 = require("@icure/apiV6");
20
+ (0, test_utils_1.setLocalStorage)(fetch);
21
+ let env;
22
+ describe('User', () => {
23
+ before(function () {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ this.timeout(600000);
26
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
27
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
28
+ });
29
+ });
30
+ it('should be capable of creating a token', () => __awaiter(void 0, void 0, void 0, function* () {
31
+ const { userApi } = yield initApi(env, test_utils_1.hcp1Username);
32
+ const currentUser = yield userApi.getCurrentUser();
33
+ const token = yield userApi.getTokenInGroup(currentUser.groupId, currentUser.id, `e2eTestTS-${(0, crypto_1.randomUUID)()}`, undefined, 3);
34
+ (0, chai_1.expect)(token.match(/[a-fA-F0-9]+/));
35
+ })).timeout(30000);
36
+ it('should be able to add and remove a role to a user', () => __awaiter(void 0, void 0, void 0, function* () {
37
+ var _a, _b, _c, _d, _e, _f, _g, _h;
38
+ const { userApi, roleApi } = yield initMasterApi(env);
39
+ const role = (yield roleApi.getRoles())[0].id;
40
+ const login = `${(0, crypto_1.randomUUID)().substring(0, 6)}-test-user@icure.com`;
41
+ const user = yield userApi.createUser({
42
+ id: (0, crypto_1.randomUUID)(),
43
+ name: (0, crypto_1.randomUUID)(),
44
+ login: login,
45
+ email: login,
46
+ });
47
+ (0, chai_1.expect)((_c = (_b = (_a = user.systemMetadata) === null || _a === void 0 ? void 0 : _a.roles) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0).to.be.equal(0);
48
+ const userWithRole = yield userApi.setRoles(user.id, [role]);
49
+ (0, chai_1.expect)((_f = (_e = (_d = userWithRole.systemMetadata) === null || _d === void 0 ? void 0 : _d.roles) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0).to.be.equal(1);
50
+ (0, chai_1.expect)((_g = userWithRole.systemMetadata) === null || _g === void 0 ? void 0 : _g.roles[0]).to.be.equal(role);
51
+ const userWithoutRole = yield userApi.resetRoles(user.id);
52
+ (0, chai_1.expect)((_h = userWithoutRole.systemMetadata) === null || _h === void 0 ? void 0 : _h.inheritsRoles).to.be.true;
53
+ }));
54
+ it('should be able to add and remove a role to a user in group', () => __awaiter(void 0, void 0, void 0, function* () {
55
+ var _j, _k, _l, _m, _o, _p, _q, _r;
56
+ const { userApi, roleApi, groupApi } = yield initMasterApi(env);
57
+ const role = (yield roleApi.getRoles())[0].id;
58
+ const groupId = (0, crypto_1.randomUUID)();
59
+ const groupName = groupId.substring(0, 5);
60
+ const groupPwd = (0, crypto_1.randomUUID)();
61
+ yield groupApi.createGroup(groupId, groupName, groupPwd, undefined, undefined, undefined, undefined, undefined, new apiV6_1.DatabaseInitialisation({
62
+ users: [],
63
+ healthcareParties: [],
64
+ }));
65
+ const login = `${(0, crypto_1.randomUUID)().substring(0, 6)}-test-user@icure.com`;
66
+ const user = yield userApi.createUserInGroup(groupId, {
67
+ id: (0, crypto_1.randomUUID)(),
68
+ name: (0, crypto_1.randomUUID)(),
69
+ login: login,
70
+ email: login,
71
+ });
72
+ (0, chai_1.expect)((_l = (_k = (_j = user.systemMetadata) === null || _j === void 0 ? void 0 : _j.roles) === null || _k === void 0 ? void 0 : _k.length) !== null && _l !== void 0 ? _l : 0).to.be.equal(0);
73
+ const userWithRole = yield userApi.setRolesInGroup(user.id, groupId, [role]);
74
+ (0, chai_1.expect)((_p = (_o = (_m = userWithRole.systemMetadata) === null || _m === void 0 ? void 0 : _m.roles) === null || _o === void 0 ? void 0 : _o.length) !== null && _p !== void 0 ? _p : 0).to.be.equal(1);
75
+ (0, chai_1.expect)((_q = userWithRole.systemMetadata) === null || _q === void 0 ? void 0 : _q.roles[0]).to.be.equal(role);
76
+ const userWithoutRole = yield userApi.resetRolesInGroup(user.id, groupId);
77
+ (0, chai_1.expect)((_r = userWithoutRole.systemMetadata) === null || _r === void 0 ? void 0 : _r.inheritsRoles).to.be.true;
78
+ }));
79
+ });
80
+ //# sourceMappingURL=IccUserApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IccUserApi.js","sourceRoot":"","sources":["../../../../test/icc-api/api/IccUserApi.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, setLocalStorage, TestUtils } from '../../utils/test_utils'\nimport initApi = TestUtils.initApi\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\nimport 'isomorphic-fetch'\nimport initMasterApi = TestUtils.initMasterApi\nimport { DatabaseInitialisation } from '@icure/apiV6'\nsetLocalStorage(fetch)\n\nlet env: TestVars\n\ndescribe('User', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('should be capable of creating a token', async () => {\n const { userApi } = await initApi(env, hcp1Username)\n const currentUser = await userApi.getCurrentUser()\n const token = await userApi.getTokenInGroup(currentUser.groupId!, currentUser.id!, `e2eTestTS-${randomUUID()}`, undefined, 3)\n expect(token.match(/[a-fA-F0-9]+/))\n }).timeout(30000)\n\n it('should be able to add and remove a role to a user', async () => {\n const { userApi, roleApi } = await initMasterApi(env)\n\n const role = (await roleApi.getRoles())[0].id!\n\n const login = `${randomUUID().substring(0, 6)}-test-user@icure.com`\n const user = await userApi.createUser({\n id: randomUUID(),\n name: randomUUID(),\n login: login,\n email: login,\n })\n expect(user.systemMetadata?.roles?.length ?? 0).to.be.equal(0)\n\n const userWithRole = await userApi.setRoles(user.id!, [role])\n expect(userWithRole.systemMetadata?.roles?.length ?? 0).to.be.equal(1)\n expect(userWithRole.systemMetadata?.roles![0]).to.be.equal(role)\n\n const userWithoutRole = await userApi.resetRoles(user.id!)\n expect(userWithoutRole.systemMetadata?.inheritsRoles).to.be.true\n })\n\n it('should be able to add and remove a role to a user in group', async () => {\n const { userApi, roleApi, groupApi } = await initMasterApi(env)\n\n const role = (await roleApi.getRoles())[0].id!\n\n const groupId = randomUUID()\n const groupName = groupId.substring(0, 5)\n const groupPwd = randomUUID()\n await groupApi.createGroup(\n groupId,\n groupName,\n groupPwd,\n undefined,\n undefined,\n undefined,\n undefined,\n undefined,\n new DatabaseInitialisation({\n users: [],\n healthcareParties: [],\n })\n )\n\n const login = `${randomUUID().substring(0, 6)}-test-user@icure.com`\n const user = await userApi.createUserInGroup(groupId, {\n id: randomUUID(),\n name: randomUUID(),\n login: login,\n email: login,\n })\n expect(user.systemMetadata?.roles?.length ?? 0).to.be.equal(0)\n\n const userWithRole = await userApi.setRolesInGroup(user.id!, groupId, [role])\n expect(userWithRole.systemMetadata?.roles?.length ?? 0).to.be.equal(1)\n expect(userWithRole.systemMetadata?.roles![0]).to.be.equal(role)\n\n const userWithoutRole = await userApi.resetRolesInGroup(user.id!, groupId)\n expect(userWithoutRole.systemMetadata?.inheritsRoles).to.be.true\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,45 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const icc_x_api_1 = require("../../../icc-x-api");
13
+ const chai_1 = require("chai");
14
+ const crypto_1 = require("crypto");
15
+ const test_utils_1 = require("../../utils/test_utils");
16
+ var initApi = test_utils_1.TestUtils.initApi;
17
+ const types_1 = require("@icure/test-setup/types");
18
+ let env;
19
+ describe('Calendar', () => {
20
+ before(function () {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ this.timeout(600000);
23
+ const initializer = yield (0, test_utils_1.getEnvironmentInitializer)();
24
+ env = yield initializer.execute((0, types_1.getEnvVariables)());
25
+ });
26
+ });
27
+ it('should be capable of creating a calendar item', () => __awaiter(void 0, void 0, void 0, function* () {
28
+ const api = yield initApi(env, test_utils_1.patUsername);
29
+ const currentUser = yield api.userApi.getCurrentUser();
30
+ yield api.patientApi.getPatientWithUser(currentUser, currentUser.patientId);
31
+ const hcpApi = yield initApi(env, test_utils_1.hcp1Username);
32
+ const hcp = yield hcpApi.userApi.getCurrentUser();
33
+ const jwk = {
34
+ publicKey: (0, icc_x_api_1.spkiToJwk)((0, icc_x_api_1.hex2ua)(env.dataOwnerDetails[test_utils_1.patUsername].publicKey)),
35
+ privateKey: (0, icc_x_api_1.pkcs8ToJwk)((0, icc_x_api_1.hex2ua)(env.dataOwnerDetails[test_utils_1.patUsername].privateKey)),
36
+ };
37
+ yield api.cryptoApi.cacheKeyPair(jwk);
38
+ yield api.cryptoApi.keyStorage.storeKeyPair(`${currentUser.healthcarePartyId}.${env.dataOwnerDetails[test_utils_1.patUsername].publicKey.slice(-32)}`, jwk);
39
+ const calendarItem = yield api.calendarItemApi.createCalendarItemWithHcParty(currentUser, yield api.calendarItemApi.newInstance(currentUser, { id: (0, crypto_1.randomUUID)(), details: 'Hello' }, {
40
+ additionalDelegates: { [hcp.healthcarePartyId]: 'WRITE' },
41
+ }));
42
+ (0, chai_1.expect)(calendarItem.id).to.be.not.null;
43
+ }));
44
+ });
45
+ //# sourceMappingURL=IccCalendarItemApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IccCalendarItemApi.js","sourceRoot":"","sources":["../../../../test/icc-api/e2e/IccCalendarItemApi.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,kDAAkE;AAClE,+BAA6B;AAC7B,mCAAmC;AACnC,uDAAwG;AACxG,IAAO,OAAO,GAAG,sBAAS,CAAC,OAAO,CAAA;AAClC,mDAAmE;AAEnE,IAAI,GAAyB,CAAA;AAE7B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC;;YACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,IAAA,sCAAyB,GAAE,CAAA;YACrD,GAAG,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;QACpD,CAAC;KAAA,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,GAAS,EAAE;QAC7D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAI,EAAE,wBAAW,CAAC,CAAA;QAC5C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QACtD,MAAM,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,SAAU,CAAC,CAAA;QAE5E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAI,EAAE,yBAAY,CAAC,CAAA;QAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;QAEjD,MAAM,GAAG,GAAG;YACV,SAAS,EAAE,IAAA,qBAAS,EAAC,IAAA,kBAAM,EAAC,GAAI,CAAC,gBAAgB,CAAC,wBAAW,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1E,UAAU,EAAE,IAAA,sBAAU,EAAC,IAAA,kBAAM,EAAC,GAAI,CAAC,gBAAgB,CAAC,wBAAW,CAAC,CAAC,UAAU,CAAC,CAAC;SAC9E,CAAA;QACD,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QACrC,MAAM,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,iBAAkB,IAAI,GAAI,CAAC,gBAAgB,CAAC,wBAAW,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAEhJ,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,6BAA6B,CAC1E,WAAW,EACX,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CACnC,WAAW,EACX,EAAE,EAAE,EAAE,IAAA,mBAAU,GAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EACtC;YACE,mBAAmB,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAkB,CAAC,EAAE,OAAO,EAAE;SAC3D,CACF,CACF,CAAA;QACD,IAAA,aAAM,EAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAA;IACxC,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { hex2ua, pkcs8ToJwk, spkiToJwk } from '../../../icc-x-api'\nimport { expect } from 'chai'\nimport { randomUUID } from 'crypto'\nimport { getEnvironmentInitializer, hcp1Username, patUsername, TestUtils } from '../../utils/test_utils'\nimport initApi = TestUtils.initApi\nimport { getEnvVariables, TestVars } from '@icure/test-setup/types'\n\nlet env: TestVars | undefined\n\ndescribe('Calendar', () => {\n before(async function () {\n this.timeout(600000)\n const initializer = await getEnvironmentInitializer()\n env = await initializer.execute(getEnvVariables())\n })\n\n it('should be capable of creating a calendar item', async () => {\n const api = await initApi(env!, patUsername)\n const currentUser = await api.userApi.getCurrentUser()\n await api.patientApi.getPatientWithUser(currentUser, currentUser.patientId!)\n\n const hcpApi = await initApi(env!, hcp1Username)\n const hcp = await hcpApi.userApi.getCurrentUser()\n\n const jwk = {\n publicKey: spkiToJwk(hex2ua(env!.dataOwnerDetails[patUsername].publicKey)),\n privateKey: pkcs8ToJwk(hex2ua(env!.dataOwnerDetails[patUsername].privateKey)),\n }\n await api.cryptoApi.cacheKeyPair(jwk)\n await api.cryptoApi.keyStorage.storeKeyPair(`${currentUser.healthcarePartyId!}.${env!.dataOwnerDetails[patUsername].publicKey.slice(-32)}`, jwk)\n\n const calendarItem = await api.calendarItemApi.createCalendarItemWithHcParty(\n currentUser,\n await api.calendarItemApi.newInstance(\n currentUser,\n { id: randomUUID(), details: 'Hello' },\n {\n additionalDelegates: { [hcp.healthcarePartyId!]: 'WRITE' },\n }\n )\n )\n expect(calendarItem.id).to.be.not.null\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ import 'mocha';
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* make node behave */
4
+ const chai_1 = require("chai");
5
+ require("mocha");
6
+ const ModelHelper_1 = require("../../../icc-api/model/ModelHelper");
7
+ function getRaw(size) {
8
+ return 'x'.repeat(size).replace(/./g, () => String.fromCharCode(Math.random() * 256));
9
+ }
10
+ describe('invariants', () => {
11
+ it('should support b64 -> binary and vice versa', () => {
12
+ const raw = getRaw(1024);
13
+ const b64 = (0, ModelHelper_1.b2a)(raw);
14
+ (0, chai_1.expect)((0, ModelHelper_1.a2b)((0, ModelHelper_1.b2a)(raw))).to.equal(raw);
15
+ (0, chai_1.expect)((0, ModelHelper_1.b2a)((0, ModelHelper_1.a2b)(b64))).to.equal(b64);
16
+ });
17
+ it('should support string2ua and vice versa', () => {
18
+ const raw = getRaw(1024);
19
+ const uint8Array = (0, ModelHelper_1.string2ua)(raw);
20
+ (0, chai_1.expect)((0, ModelHelper_1.ua2string)((0, ModelHelper_1.string2ua)(raw))).to.equal(raw);
21
+ (0, chai_1.expect)((0, ModelHelper_1.string2ua)((0, ModelHelper_1.ua2string)(uint8Array))).to.deep.eq(uint8Array);
22
+ });
23
+ it('should support b64 -> ab and vice versa', () => {
24
+ const raw = getRaw(1024);
25
+ const b64 = (0, ModelHelper_1.b2a)(raw);
26
+ const ua = (0, ModelHelper_1.string2ua)(raw);
27
+ (0, chai_1.expect)((0, ModelHelper_1.ua2b64)((0, ModelHelper_1.b64_2ua)(b64))).to.equal(b64);
28
+ (0, chai_1.expect)((0, ModelHelper_1.b64_2ua)((0, ModelHelper_1.ua2b64)(ua))).to.deep.eq(ua);
29
+ });
30
+ it('Cross conversions should work too', () => {
31
+ const raw = getRaw(1024);
32
+ const b64 = (0, ModelHelper_1.b2a)(raw);
33
+ const ua = (0, ModelHelper_1.string2ua)(raw);
34
+ (0, chai_1.expect)((0, ModelHelper_1.b2a)((0, ModelHelper_1.ua2string)((0, ModelHelper_1.b64_2ua)(b64)))).to.equal(b64);
35
+ (0, chai_1.expect)((0, ModelHelper_1.string2ua)((0, ModelHelper_1.a2b)((0, ModelHelper_1.ua2b64)(ua)))).to.deep.eq(ua);
36
+ });
37
+ it('should support b64 -> ab and vice versa for big data set', () => {
38
+ const raw = getRaw(30 * 1024 * 1024);
39
+ const b64 = (0, ModelHelper_1.b2a)(raw);
40
+ const ua = (0, ModelHelper_1.string2ua)(raw);
41
+ (0, chai_1.expect)((0, ModelHelper_1.ua2b64)((0, ModelHelper_1.b64_2ua)(b64))).to.equal(b64);
42
+ (0, chai_1.expect)((0, ModelHelper_1.b64_2ua)((0, ModelHelper_1.ua2b64)(ua))).to.deep.eq(ua);
43
+ }).timeout(120000);
44
+ });
45
+ //# sourceMappingURL=modelHelpersTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelHelpersTest.js","sourceRoot":"","sources":["../../../../test/icc-api/model/modelHelpersTest.ts"],"names":[],"mappings":"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","sourcesContent":["/* make node behave */\nimport { expect } from 'chai'\nimport 'mocha'\n\nimport { a2b, b2a, string2ua, ua2string, b64_2ua, ua2b64 } from '../../../icc-api/model/ModelHelper'\n\nfunction getRaw(size: number) {\n return 'x'.repeat(size).replace(/./g, () => String.fromCharCode(Math.random() * 256))\n}\n\ndescribe('invariants', () => {\n it('should support b64 -> binary and vice versa', () => {\n const raw = getRaw(1024)\n const b64 = b2a(raw)\n\n expect(a2b(b2a(raw))).to.equal(raw)\n expect(b2a(a2b(b64))).to.equal(b64)\n })\n\n it('should support string2ua and vice versa', () => {\n const raw = getRaw(1024)\n const uint8Array = string2ua(raw)\n\n expect(ua2string(string2ua(raw))).to.equal(raw)\n expect(string2ua(ua2string(uint8Array))).to.deep.eq(uint8Array)\n })\n\n it('should support b64 -> ab and vice versa', () => {\n const raw = getRaw(1024)\n const b64 = b2a(raw)\n const ua = string2ua(raw)\n\n expect(ua2b64(b64_2ua(b64))).to.equal(b64)\n expect(b64_2ua(ua2b64(ua))).to.deep.eq(ua)\n })\n\n it('Cross conversions should work too', () => {\n const raw = getRaw(1024)\n const b64 = b2a(raw)\n const ua = string2ua(raw)\n\n expect(b2a(ua2string(b64_2ua(b64)))).to.equal(b64)\n expect(string2ua(a2b(ua2b64(ua)))).to.deep.eq(ua)\n })\n\n it('should support b64 -> ab and vice versa for big data set', () => {\n const raw = getRaw(30 * 1024 * 1024)\n const b64 = b2a(raw)\n const ua = string2ua(raw)\n\n expect(ua2b64(b64_2ua(b64))).to.equal(b64)\n expect(b64_2ua(ua2b64(ua))).to.deep.eq(ua)\n }).timeout(120000)\n})\n"]}
@@ -0,0 +1 @@
1
+ import 'isomorphic-fetch';