@progress/sitefinity-webservices-sdk 1.1.16 → 2.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 (233) hide show
  1. package/README.md +84 -51
  2. package/esm/chunks/chunk-2ID24RPE.mjs +179 -0
  3. package/esm/chunks/chunk-2ID24RPE.mjs.map +7 -0
  4. package/esm/chunks/chunk-AHDZ2CWQ.mjs +93 -0
  5. package/esm/chunks/chunk-AHDZ2CWQ.mjs.map +7 -0
  6. package/esm/chunks/chunk-BFLQBM7R.mjs +136 -0
  7. package/esm/chunks/chunk-BFLQBM7R.mjs.map +7 -0
  8. package/esm/chunks/chunk-CMGV26CS.mjs +66 -0
  9. package/esm/chunks/chunk-CMGV26CS.mjs.map +7 -0
  10. package/esm/chunks/chunk-DHWDJAGV.mjs +180 -0
  11. package/esm/chunks/chunk-DHWDJAGV.mjs.map +7 -0
  12. package/esm/chunks/chunk-EH4CERVO.mjs +82 -0
  13. package/esm/chunks/chunk-EH4CERVO.mjs.map +7 -0
  14. package/esm/chunks/chunk-F4CWOE7M.mjs +57 -0
  15. package/esm/chunks/chunk-F4CWOE7M.mjs.map +7 -0
  16. package/esm/chunks/chunk-FUFBYOIF.mjs +98 -0
  17. package/esm/chunks/chunk-FUFBYOIF.mjs.map +7 -0
  18. package/esm/chunks/chunk-J2B7UDVZ.mjs +132 -0
  19. package/esm/chunks/chunk-J2B7UDVZ.mjs.map +7 -0
  20. package/esm/chunks/chunk-L3IMDFA5.mjs +1 -0
  21. package/esm/chunks/chunk-L3IMDFA5.mjs.map +7 -0
  22. package/esm/chunks/chunk-NNYY2VBC.mjs +383 -0
  23. package/esm/chunks/chunk-NNYY2VBC.mjs.map +7 -0
  24. package/esm/chunks/chunk-PI55MBSL.mjs +256 -0
  25. package/esm/chunks/chunk-PI55MBSL.mjs.map +7 -0
  26. package/esm/chunks/chunk-PXPK2IV6.mjs +568 -0
  27. package/esm/chunks/chunk-PXPK2IV6.mjs.map +7 -0
  28. package/esm/chunks/chunk-QPSEKUOI.mjs +35 -0
  29. package/esm/chunks/chunk-QPSEKUOI.mjs.map +7 -0
  30. package/esm/chunks/chunk-RQAAYOY6.mjs +72 -0
  31. package/esm/chunks/chunk-RQAAYOY6.mjs.map +7 -0
  32. package/esm/chunks/chunk-TTVNTTW5.mjs +145 -0
  33. package/esm/chunks/chunk-TTVNTTW5.mjs.map +7 -0
  34. package/esm/chunks/chunk-VLDX2FH2.mjs +235 -0
  35. package/esm/chunks/chunk-VLDX2FH2.mjs.map +7 -0
  36. package/esm/chunks/chunk-VWT2RJET.mjs +102 -0
  37. package/esm/chunks/chunk-VWT2RJET.mjs.map +7 -0
  38. package/esm/chunks/chunk-W2OWM3L7.mjs +19 -0
  39. package/esm/chunks/chunk-W2OWM3L7.mjs.map +7 -0
  40. package/esm/chunks/chunk-WX5J7F5D.mjs +43 -0
  41. package/esm/chunks/chunk-WX5J7F5D.mjs.map +7 -0
  42. package/esm/chunks/chunk-YB2LMPUX.mjs +54 -0
  43. package/esm/chunks/chunk-YB2LMPUX.mjs.map +7 -0
  44. package/package.json +67 -36
  45. package/sitefinity-webservices-sdk.cjs +2761 -0
  46. package/sitefinity-webservices-sdk.cjs.map +7 -0
  47. package/sitefinity-webservices-sdk.d.mts +1 -0
  48. package/{dist/sitefinity-webservices-sdk.d.ts → sitefinity-webservices-sdk.d.ts} +6 -0
  49. package/sitefinity-webservices-sdk.global.d.ts +5 -0
  50. package/sitefinity-webservices-sdk.js +2764 -0
  51. package/sitefinity-webservices-sdk.js.map +7 -0
  52. package/sitefinity-webservices-sdk.min.js +3 -0
  53. package/sitefinity-webservices-sdk.mjs +124 -0
  54. package/sitefinity-webservices-sdk.mjs.map +7 -0
  55. package/src/BlobBuilder.d.ts +12 -0
  56. package/src/Data.d.ts +259 -0
  57. package/src/Expression.d.ts +37 -0
  58. package/src/OrderProperty.d.ts +24 -0
  59. package/src/Query.d.ts +104 -0
  60. package/src/QueryBase.d.ts +40 -0
  61. package/src/QueryBuilder.d.ts +29 -0
  62. package/src/Requests/BatchRequest.d.ts +174 -0
  63. package/src/Requests/ExecutableRequest.d.ts +43 -0
  64. package/src/Requests/Request.d.ts +225 -0
  65. package/src/Requests/RequestBase.d.ts +58 -0
  66. package/{dist/src → src}/Requests/RequestFactory.d.ts +24 -2
  67. package/src/Sitefinity.d.ts +141 -0
  68. package/src/Transport/FetchTransport.d.ts +17 -0
  69. package/src/Transport/HttpTransport.d.ts +69 -0
  70. package/src/Transport/XhrTransport.d.ts +8 -0
  71. package/src/WhereQuery.d.ts +88 -0
  72. package/src/chunk-upload/chunk-upload.sdk.d.ts +305 -0
  73. package/src/chunk-upload/chunked-file-upload.utilities.d.ts +58 -0
  74. package/{dist/src → src}/constants.d.ts +21 -0
  75. package/src/utils.d.ts +103 -0
  76. package/.editorconfig +0 -29
  77. package/.eslintignore +0 -4
  78. package/.eslintrc.js +0 -40
  79. package/.github/copilot-instructions.md +0 -72
  80. package/.github/instructions/sitefinity-webservices-sdk.instructions.md +0 -53
  81. package/config/helpers.ts +0 -8
  82. package/config/webpack.common.ts +0 -39
  83. package/config/webpack.dev.ts +0 -37
  84. package/config/webpack.prod.ts +0 -17
  85. package/dist/docs/.nojekyll +0 -1
  86. package/dist/docs/assets/highlight.css +0 -71
  87. package/dist/docs/assets/main.js +0 -58
  88. package/dist/docs/assets/search.js +0 -1
  89. package/dist/docs/assets/style.css +0 -1280
  90. package/dist/docs/classes/BlobBuilder.BlobBuilder.html +0 -137
  91. package/dist/docs/classes/Data.Data.html +0 -387
  92. package/dist/docs/classes/Expression.BinaryExpression.html +0 -184
  93. package/dist/docs/classes/Expression.ComplexExpression.html +0 -146
  94. package/dist/docs/classes/Expression.ExpressionBase.html +0 -125
  95. package/dist/docs/classes/OrderProperty.OrderProperty.html +0 -151
  96. package/dist/docs/classes/Query.Query.html +0 -353
  97. package/dist/docs/classes/QueryBase.QueryBase.html +0 -185
  98. package/dist/docs/classes/QueryBuilder.QueryBuilder.html +0 -206
  99. package/dist/docs/classes/Requests_BatchRequest.BatchRequest.html +0 -731
  100. package/dist/docs/classes/Requests_BatchRequest.Transaction.html +0 -332
  101. package/dist/docs/classes/Requests_ExecutableRequest.ExecutableRequest.html +0 -340
  102. package/dist/docs/classes/Requests_Request.CommitChunksRequest.html +0 -303
  103. package/dist/docs/classes/Requests_Request.CreateRelatedRequest.html +0 -310
  104. package/dist/docs/classes/Requests_Request.CreateRequest.html +0 -307
  105. package/dist/docs/classes/Requests_Request.DeleteRelatedByIdRequest.html +0 -309
  106. package/dist/docs/classes/Requests_Request.DeleteRelatedRequest.html +0 -302
  107. package/dist/docs/classes/Requests_Request.DeleteRequest.html +0 -298
  108. package/dist/docs/classes/Requests_Request.GetByIdRequest.html +0 -298
  109. package/dist/docs/classes/Requests_Request.GetRelatedByIdRequest.html +0 -309
  110. package/dist/docs/classes/Requests_Request.GetRelatedRequest.html +0 -302
  111. package/dist/docs/classes/Requests_Request.GetRequest.html +0 -295
  112. package/dist/docs/classes/Requests_Request.UpdateRequest.html +0 -309
  113. package/dist/docs/classes/Requests_Request.UploadChunkRequest.html +0 -359
  114. package/dist/docs/classes/Requests_Request.UploadRequest.html +0 -329
  115. package/dist/docs/classes/Requests_RequestBase.RequestBase.html +0 -275
  116. package/dist/docs/classes/Requests_RequestFactory.RequestFactory.html +0 -344
  117. package/dist/docs/classes/Sitefinity.Sitefinity.html +0 -188
  118. package/dist/docs/classes/WhereQuery.WhereQuery.html +0 -436
  119. package/dist/docs/classes/chunk_upload_chunk_upload_sdk.ChunkUploadSdk.html +0 -231
  120. package/dist/docs/classes/chunk_upload_chunked_file_upload_utilities.ChunkedFileUploadUtilities.html +0 -131
  121. package/dist/docs/classes/utils.utils.html +0 -303
  122. package/dist/docs/index.html +0 -129
  123. package/dist/docs/interfaces/Data.CreateRelatedRequestOptions.html +0 -155
  124. package/dist/docs/interfaces/Data.CreateRequestOptions.html +0 -153
  125. package/dist/docs/interfaces/Data.OperationsRequestOptions.html +0 -145
  126. package/dist/docs/interfaces/Data.PropertyRequestOptions.html +0 -149
  127. package/dist/docs/interfaces/Data.RequestOptionsBase.html +0 -136
  128. package/dist/docs/interfaces/Data.SingleRelatedItemRequestOptions.html +0 -155
  129. package/dist/docs/interfaces/Data.UpdateRequestOptions.html +0 -155
  130. package/dist/docs/interfaces/Data.UploadRequestOptions.html +0 -169
  131. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRelatedRequestOptions.html +0 -161
  132. package/dist/docs/interfaces/Requests_BatchRequest.BatchCreateRequestOptions.html +0 -153
  133. package/dist/docs/interfaces/Requests_BatchRequest.BatchPropertyRequestOptions.html +0 -153
  134. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsBase.html +0 -145
  135. package/dist/docs/interfaces/Requests_BatchRequest.BatchRequestOptionsExtended.html +0 -153
  136. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleItemRequestOptions.html +0 -145
  137. package/dist/docs/interfaces/Requests_BatchRequest.BatchSingleRelatedItemRequestOptions.html +0 -161
  138. package/dist/docs/interfaces/Requests_BatchRequest.BatchUpdateRequestOptions.html +0 -161
  139. package/dist/docs/interfaces/Requests_ExecutableRequest.ResponseHandlers.html +0 -98
  140. package/dist/docs/interfaces/Requests_Request.CommitChunksRequestOptionsExtended.html +0 -215
  141. package/dist/docs/interfaces/Requests_Request.PostRequestOptionsExtended.html +0 -159
  142. package/dist/docs/interfaces/Requests_Request.PutRequestOptionsExtended.html +0 -161
  143. package/dist/docs/interfaces/Requests_Request.RelatedByIdRequestOptionsExtended.html +0 -169
  144. package/dist/docs/interfaces/Requests_Request.RelatedRequestOptionsExtended.html +0 -163
  145. package/dist/docs/interfaces/Requests_Request.UploadChunkRequestOptionsExtended.html +0 -217
  146. package/dist/docs/interfaces/Requests_Request.UploadRequestOptionsExtended.html +0 -180
  147. package/dist/docs/interfaces/Requests_RequestBase.RequestOptionsBaseExtended.html +0 -148
  148. package/dist/docs/interfaces/Sitefinity.SDKOptions.html +0 -128
  149. package/dist/docs/interfaces/Sitefinity.Token.html +0 -94
  150. package/dist/docs/interfaces/Sitefinity.TypeOptions.html +0 -160
  151. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadInfoDTO.html +0 -159
  152. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.ChunkUploadResult.html +0 -111
  153. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CleanUpChunksRequestOptions.html +0 -171
  154. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.CommitChunksRequestOptions.html +0 -204
  155. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.GetChunkUploadInfoRequestOptions.html +0 -166
  156. package/dist/docs/interfaces/chunk_upload_chunk_upload_sdk.UploadChunkRequestOptions.html +0 -206
  157. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.ChunkFileResult.html +0 -101
  158. package/dist/docs/interfaces/chunk_upload_chunked_file_upload_utilities.FileUploadChunk.html +0 -94
  159. package/dist/docs/modules/BlobBuilder.html +0 -73
  160. package/dist/docs/modules/Data.html +0 -92
  161. package/dist/docs/modules/Expression.html +0 -77
  162. package/dist/docs/modules/OrderProperty.html +0 -73
  163. package/dist/docs/modules/Query.html +0 -73
  164. package/dist/docs/modules/QueryBase.html +0 -73
  165. package/dist/docs/modules/QueryBuilder.html +0 -73
  166. package/dist/docs/modules/Requests_BatchRequest.html +0 -94
  167. package/dist/docs/modules/Requests_ExecutableRequest.html +0 -78
  168. package/dist/docs/modules/Requests_Request.html +0 -114
  169. package/dist/docs/modules/Requests_RequestBase.html +0 -78
  170. package/dist/docs/modules/Requests_RequestFactory.html +0 -73
  171. package/dist/docs/modules/Sitefinity.html +0 -82
  172. package/dist/docs/modules/WhereQuery.html +0 -73
  173. package/dist/docs/modules/chunk_upload_chunk_upload_sdk.html +0 -88
  174. package/dist/docs/modules/chunk_upload_chunked_file_upload_utilities.html +0 -80
  175. package/dist/docs/modules/constants.html +0 -83
  176. package/dist/docs/modules/utils.html +0 -73
  177. package/dist/docs/modules.html +0 -80
  178. package/dist/docs/variables/constants.CONTENT_TYPES.html +0 -76
  179. package/dist/docs/variables/constants.EXPRESSION_TYPE.html +0 -106
  180. package/dist/docs/variables/constants.HEADER_NAMES.html +0 -102
  181. package/dist/docs/variables/constants.HTTP_METHODS.html +0 -84
  182. package/dist/docs/variables/constants.ODATA_PARAMS.html +0 -90
  183. package/dist/docs/variables/constants.SF_PARAMS.html +0 -84
  184. package/dist/samples.html +0 -625
  185. package/dist/sitefinity-webservices-sdk.js +0 -3243
  186. package/dist/sitefinity-webservices-sdk.js.map +0 -1
  187. package/dist/sitefinity-webservices-sdk.min.js +0 -1
  188. package/dist/src/BlobBuilder.d.ts +0 -14
  189. package/dist/src/Data.d.ts +0 -154
  190. package/dist/src/Data.spec.d.ts +0 -1
  191. package/dist/src/Expression.d.ts +0 -19
  192. package/dist/src/OrderProperty.d.ts +0 -8
  193. package/dist/src/Query.d.ts +0 -59
  194. package/dist/src/QueryBase.d.ts +0 -18
  195. package/dist/src/QueryBuilder.d.ts +0 -13
  196. package/dist/src/Requests/BatchRequest.d.ts +0 -146
  197. package/dist/src/Requests/ExecutableRequest.d.ts +0 -22
  198. package/dist/src/Requests/Request.d.ts +0 -132
  199. package/dist/src/Requests/RequestBase.d.ts +0 -27
  200. package/dist/src/Requests/request.spec.d.ts +0 -1
  201. package/dist/src/Sitefinity.d.ts +0 -75
  202. package/dist/src/Sitefinity.spec.d.ts +0 -1
  203. package/dist/src/WhereQuery.d.ts +0 -72
  204. package/dist/src/chunk-upload/chunk-upload.sdk.d.ts +0 -295
  205. package/dist/src/chunk-upload/chunk-upload.sdk.spec.d.ts +0 -1
  206. package/dist/src/chunk-upload/chunked-file-upload.utilities.d.ts +0 -13
  207. package/dist/src/utils.d.ts +0 -16
  208. package/karma.conf.js +0 -29
  209. package/sitefinity-webservices-sdk.ts +0 -15
  210. package/src/BlobBuilder.ts +0 -20
  211. package/src/Data.spec.ts +0 -160
  212. package/src/Data.ts +0 -418
  213. package/src/Expression.ts +0 -36
  214. package/src/OrderProperty.ts +0 -39
  215. package/src/Query.ts +0 -106
  216. package/src/QueryBase.ts +0 -57
  217. package/src/QueryBuilder.ts +0 -180
  218. package/src/Requests/BatchRequest.ts +0 -807
  219. package/src/Requests/ExecutableRequest.ts +0 -117
  220. package/src/Requests/Request.ts +0 -327
  221. package/src/Requests/RequestBase.ts +0 -163
  222. package/src/Requests/RequestFactory.ts +0 -75
  223. package/src/Requests/request.spec.ts +0 -154
  224. package/src/Sitefinity.spec.ts +0 -483
  225. package/src/Sitefinity.ts +0 -125
  226. package/src/WhereQuery.ts +0 -145
  227. package/src/chunk-upload/chunk-upload.sdk.spec.ts +0 -347
  228. package/src/chunk-upload/chunk-upload.sdk.ts +0 -439
  229. package/src/chunk-upload/chunked-file-upload.utilities.ts +0 -64
  230. package/src/constants.ts +0 -66
  231. package/src/utils.ts +0 -125
  232. package/template.html +0 -625
  233. package/tsconfig.json +0 -38
@@ -1,154 +0,0 @@
1
- import { Query } from "../Query";
2
- import { Sitefinity } from "../Sitefinity";
3
- import { UploadRequest } from "./Request";
4
-
5
- describe("SDK basic tests", () => {
6
- const baseUrl = "http://www.mysite.com/api/default/";
7
- let sitefinity: Sitefinity;
8
- let query: Query;
9
-
10
- beforeEach(function () {
11
- jasmine.Ajax.install();
12
- });
13
-
14
- afterEach(function () {
15
- jasmine.Ajax.uninstall();
16
- });
17
-
18
- beforeAll(() => {
19
- sitefinity = new Sitefinity({
20
- baseUrl
21
- });
22
-
23
- query = new Sitefinity.Query();
24
- });
25
-
26
- it("query assert", () => {
27
- const testQuery = (query.where().and().endsWith("Title", "Record").done() as any).or().startsWith("Title", "asd").done().done();
28
- const resultingQuery = testQuery.build();
29
- expect(resultingQuery.$filter).toEqual("(endswith(Title, 'Record')) and (startswith(Title, 'asd'))");
30
- });
31
-
32
- it("complex query assert", () => {
33
- const testQuery = query.where().not().endsWith("Record", "Title").done().and().not().eq("Content", "test").done().done().done();
34
- const resultingQuery = testQuery.build();
35
- expect(resultingQuery.$filter).toEqual("(not endswith(Record, 'Title')) and ((not (Content eq 'test')))");
36
- });
37
-
38
- it("query count assert", () => {
39
- const data = sitefinity.data({
40
- entitySet: "newsitems"
41
- });
42
-
43
- data.get({ query: query.count(false) });
44
-
45
- let request = jasmine.Ajax.requests.mostRecent();
46
- expect(request.url).toBe("http://www.mysite.com/api/default/newsitems/$count");
47
-
48
- data.get({ query: query.count(true) });
49
-
50
- request = jasmine.Ajax.requests.mostRecent();
51
- expect(request.url).toBe("http://www.mysite.com/api/default/newsitems?$count=true");
52
- });
53
-
54
- it("request assert", () => {
55
- sitefinity.data({
56
- entitySet: "newsitems",
57
- provider: "newsProvider",
58
- culture: "en-US"
59
- }).get({ query: null });
60
-
61
- const request = jasmine.Ajax.requests.mostRecent();
62
- expect(request.url).toBe("http://www.mysite.com/api/default/newsitems?sf_provider=newsProvider&sf_culture=en-US");
63
- expect(request.method).toBe("GET");
64
- expect(request.data()).toEqual({});
65
- });
66
-
67
- it("batch assert", async () => {
68
- const batch = sitefinity.batch();
69
- const getQuery = query.where().eq("Title", "newTitleN11").done();
70
-
71
- batch.get({
72
- entitySet: "newsitems",
73
- query: getQuery
74
- });
75
-
76
- const transaction = batch.beginTransaction();
77
-
78
- transaction.create({
79
- entitySet: "newsitems",
80
- data: { title: "Test" }
81
- });
82
-
83
- batch.endTransaction(transaction);
84
- (batch as any).execute();
85
-
86
- const request = jasmine.Ajax.requests.mostRecent();
87
- expect(request.url).toBe("http://www.mysite.com/api/default/$batch");
88
- expect(request.method).toBe("POST");
89
-
90
- await readBlobAsText(request.params).then((result) => {
91
- expect(result).toContain("{\"title\":\"Test\"}");
92
- });
93
- });
94
-
95
- it("query assert string values", () => {
96
- const testQuery = (query.where().and()
97
- .endsWith("Title", "9f024c1c-9e6f-483e-a8a6-d962b93956ea").done() as any)
98
- .or().startsWith("Title", "9f024c1c-9e6f-483e-a8a6-d962b93956ea")
99
- .or().contains("Title", "9f024c1c-9e6f-483e-a8a6-d962b93956ea")
100
- .done().done().done();
101
-
102
- const resultingQuery = testQuery.build();
103
- expect(resultingQuery.$filter).toEqual("(endswith(Title, '9f024c1c-9e6f-483e-a8a6-d962b93956ea')) and (startswith(Title, '9f024c1c-9e6f-483e-a8a6-d962b93956ea') or (contains(Title, '9f024c1c-9e6f-483e-a8a6-d962b93956ea')))");
104
- });
105
-
106
- it("query assert filter with in correctly builds the query", () => {
107
- const testQuery = query.where().in("Id", ["1", "2", "3"]).done();
108
-
109
- const resultingQuery = testQuery.build();
110
- expect(resultingQuery.$filter).toEqual("Id in (1, 2, 3)");
111
- });
112
-
113
- it("query assert filter with in throws error when constant is not array", () => {
114
- const testQuery = query.where().in("Id", "1, 2, 3").done();
115
-
116
- expect(() => testQuery.build()).toThrow(new Error("Parameter is not an array!"));
117
- });
118
-
119
- it("upload request should encode non-ASCII file name header", () => {
120
- const fileName = "fakeImage тест.jpeg";
121
- const request = new UploadRequest({
122
- urlOptions: {
123
- baseUrl,
124
- entitySet: "images"
125
- },
126
- data: {},
127
- contentType: "image/jpeg",
128
- fileName,
129
- uploadProperties: {
130
- Title: "test"
131
- }
132
- }, {
133
- type: "Bearer",
134
- value: "token"
135
- }, {});
136
-
137
- expect(request.getHeaders()["X-File-Name"]).toEqual(encodeURIComponent(fileName));
138
- });
139
-
140
- function readBlobAsText(blob: Blob): Promise<string> {
141
- return new Promise((resolve, reject) => {
142
- const reader = new FileReader();
143
-
144
- reader.onload = () => {
145
- resolve(<string>reader.result);
146
- };
147
-
148
- reader.onerror = () => {
149
- reject();
150
- };
151
- reader.readAsText(blob);
152
- });
153
- }
154
- });
@@ -1,483 +0,0 @@
1
- import { SF_PARAMS, HEADER_NAMES } from "./constants";
2
- import { ResponseHandlers } from "./Requests/ExecutableRequest";
3
- import { Sitefinity } from "./Sitefinity";
4
-
5
- describe("Base SDK tests", () => {
6
- const baseUrl = "http://www.mysite.com/api/default/";
7
- const batchResponse = `--batchresponse_ab4d3fab-5bee-4ea0-ba40-723ea40d1c32\r
8
- Content-Type: application/http\r
9
- Content-Transfer-Encoding: binary\r
10
- \r
11
- HTTP/1.1 200 OK\r
12
- Cache-Control: no-store, must-revalidate, no-cache\r
13
- Access-Control-Allow-Origin: *\r
14
- Content-Type: text/plain\r
15
- OData-Version: 4.0\r
16
- \r
17
- 1\r
18
- --batchresponse_ab4d3fab-5bee-4ea0-ba40-723ea40d1c32--\r
19
- `;
20
- let sitefinity: Sitefinity;
21
-
22
- beforeEach(() => {
23
- jasmine.Ajax.install();
24
- });
25
-
26
- afterEach(() => {
27
- jasmine.Ajax.uninstall();
28
- });
29
-
30
- beforeAll(() => {
31
- sitefinity = new Sitefinity({
32
- baseUrl
33
- });
34
- });
35
-
36
- describe("SDK options tests", () => {
37
- it("Verify baseUrl from SDK options wiht slash", () => {
38
- const url = "/";
39
- const sdk = new Sitefinity({
40
- baseUrl: url
41
- });
42
- sdk.data({}).get({});
43
-
44
- const request = jasmine.Ajax.requests.mostRecent();
45
- expect(request.url).toBe(url);
46
- });
47
-
48
- it("Verify baseUrl from SDK options with relative path", () => {
49
- const url = "/sub";
50
- const sdk = new Sitefinity({
51
- baseUrl: url
52
- });
53
- sdk.data({}).get({});
54
-
55
- const request = jasmine.Ajax.requests.mostRecent();
56
- expect(request.url).toBe(url + "/");
57
- });
58
-
59
- it("Verify baseUrl from SDK options with relative path and slash", () => {
60
- const url = "/sub/";
61
- const sdk = new Sitefinity({
62
- baseUrl: url
63
- });
64
- sdk.data({}).get({});
65
-
66
- const request = jasmine.Ajax.requests.mostRecent();
67
- expect(request.url).toBe(url);
68
- });
69
-
70
- it("Verify baseUrl from SDK options", () => {
71
- const url = "http://www.mysite.com/api/default/v2/";
72
- const sdk = new Sitefinity({
73
- baseUrl: url
74
- });
75
- sdk.data({}).get({});
76
-
77
- const request = jasmine.Ajax.requests.mostRecent();
78
- expect(request.url).toBe(url);
79
- });
80
-
81
- it("Verify siteId from SDK options", () => {
82
- const siteId = "mySiteId";
83
- const sdk = new Sitefinity({
84
- baseUrl: "http://www.mysite.com/api/default/v2/",
85
- siteId: siteId
86
- });
87
- sdk.data({}).get({});
88
-
89
- const request = jasmine.Ajax.requests.mostRecent();
90
- expect(request.url).toContain(`${SF_PARAMS.siteId}=${siteId}`);
91
- });
92
-
93
- it("Verify enableUnlimitedChoices from SDK options", () => {
94
- let sdk = new Sitefinity({
95
- baseUrl: "http://www.mysite.com/api/default/v2/",
96
- enableUnlimitedChoices: true
97
- });
98
- sdk.data({}).get({});
99
-
100
- let request = jasmine.Ajax.requests.mostRecent();
101
- expect(request.requestHeaders[HEADER_NAMES.choicesBinaryRepresentation]).toBe("true");
102
-
103
- sdk = new Sitefinity({
104
- baseUrl: "http://www.mysite.com/api/default/v2/",
105
- enableUnlimitedChoices: false
106
- });
107
- sdk.data({}).get({});
108
-
109
- request = jasmine.Ajax.requests.mostRecent();
110
- expect(request.requestHeaders[HEADER_NAMES.choicesBinaryRepresentation]).toBeUndefined();
111
- });
112
-
113
- it("Verify integrationMode from SDK options", () => {
114
- let sdk = new Sitefinity({
115
- baseUrl: "http://www.mysite.com/api/default/v2/",
116
- integrationMode: true
117
- });
118
- sdk.data({}).get({});
119
-
120
- let request = jasmine.Ajax.requests.mostRecent();
121
- expect(request.requestHeaders[HEADER_NAMES.integrationMode]).toBe("true");
122
-
123
- sdk = new Sitefinity({
124
- baseUrl: "http://www.mysite.com/api/default/v2/",
125
- integrationMode: false
126
- });
127
- sdk.data({}).get({});
128
-
129
- request = jasmine.Ajax.requests.mostRecent();
130
- expect(request.requestHeaders[HEADER_NAMES.integrationMode]).toBeUndefined();
131
- });
132
-
133
- it("Verify global success handler from SDK options", () => {
134
- const handlers: ResponseHandlers = {
135
- successCb: () => {},
136
- failureCb: () => {}
137
- };
138
- const successSpy = spyOn<ResponseHandlers, any>(handlers, "successCb");
139
- const failureSpy = spyOn<ResponseHandlers, any>(handlers, "failureCb");
140
-
141
- const sdk = new Sitefinity({
142
- baseUrl: "http://www.mysite.com/api/default/v2/",
143
- handlers
144
- });
145
- sdk.data({}).get({});
146
-
147
- const request = jasmine.Ajax.requests.mostRecent();
148
- request.respondWith({
149
- status: 200,
150
- responseText: "{\"message\":\"test\"}"
151
- });
152
-
153
- expect(successSpy).toHaveBeenCalledOnceWith({ message: "test" });
154
- expect(failureSpy).not.toHaveBeenCalled();
155
- });
156
-
157
- it("Verify global failure handler from SDK options", () => {
158
- const handlers: ResponseHandlers = {
159
- successCb: () => {},
160
- failureCb: () => {}
161
- };
162
- const successSpy = spyOn<ResponseHandlers, any>(handlers, "successCb");
163
- const failureSpy = spyOn<ResponseHandlers, any>(handlers, "failureCb");
164
-
165
- const sdk = new Sitefinity({
166
- baseUrl: "http://www.mysite.com/api/default/v2/",
167
- handlers
168
- });
169
- sdk.data({}).get({});
170
-
171
- const request = jasmine.Ajax.requests.mostRecent();
172
- request.respondWith({
173
- status: 400,
174
- responseText: "{\"message\":\"test\"}"
175
- });
176
-
177
- expect(failureSpy).toHaveBeenCalledOnceWith({ message: "test", status: 400 });
178
- expect(successSpy).not.toHaveBeenCalled();
179
- });
180
-
181
- it("Verify token", () => {
182
- const sdk = new Sitefinity({
183
- baseUrl: "http://www.mysite.com/api/default/v2/"
184
- });
185
- sdk.data({}).get({});
186
-
187
- let request = jasmine.Ajax.requests.mostRecent();
188
- expect(request.requestHeaders[HEADER_NAMES.authorization]).toBeUndefined();
189
-
190
- sdk.setToken({
191
- type: "Bearer",
192
- value: "123"
193
- });
194
- sdk.data({}).get({});
195
-
196
- request = jasmine.Ajax.requests.mostRecent();
197
- expect(request.requestHeaders[HEADER_NAMES.authorization]).toBe("Bearer 123");
198
- });
199
- });
200
-
201
- describe("Type options tests", () => {
202
- describe("for data()", () => {
203
- it("Verify baseUrl is appended trailing slash", () => {
204
- const url = "http://www.mysite.com/api/default/v2";
205
- sitefinity.data({
206
- baseUrl: url
207
- }).get({});
208
-
209
- let request = jasmine.Ajax.requests.mostRecent();
210
- expect(request.url).toBe(`${url}/`);
211
-
212
- const sdk = new Sitefinity({
213
- baseUrl: url
214
- });
215
- sdk.data({}).get({});
216
-
217
- request = jasmine.Ajax.requests.mostRecent();
218
- expect(request.url).toBe(`${url}/`);
219
- });
220
-
221
- it("Verify baseUrl from type options overrides baseUrl from SDK options", () => {
222
- const url = "http://www.mysite.com/api/default/v2/";
223
- sitefinity.data({
224
- baseUrl: url
225
- }).get({});
226
-
227
- const request = jasmine.Ajax.requests.mostRecent();
228
- expect(request.url).toBe(url);
229
- });
230
-
231
- it("Verify siteId from type options overrides siteId from SDK options", () => {
232
- const siteId = "mySiteId";
233
- const sdk = new Sitefinity({
234
- baseUrl: "http://www.mysite.com/api/default/v2/",
235
- siteId: "test"
236
- });
237
- sdk.data({
238
- siteId
239
- }).get({});
240
-
241
- const request = jasmine.Ajax.requests.mostRecent();
242
- expect(request.url).toContain(`${SF_PARAMS.siteId}=${siteId}`);
243
- });
244
-
245
- it("Verify entitySet from type options", () => {
246
- const entitySet = "newsitems";
247
-
248
- sitefinity.data({
249
- entitySet
250
- }).get({});
251
-
252
- const request = jasmine.Ajax.requests.mostRecent();
253
- expect(request.url).toBe(`${baseUrl}${entitySet}`);
254
- });
255
-
256
- it("Verify provider from type options", () => {
257
- const provider = "myProvider";
258
-
259
- sitefinity.data({
260
- provider
261
- }).get({});
262
-
263
- const request = jasmine.Ajax.requests.mostRecent();
264
- expect(request.url).toContain(`${SF_PARAMS.provider}=${provider}`);
265
- });
266
-
267
- it("Verify culture from type options", () => {
268
- const culture = "en";
269
-
270
- sitefinity.data({
271
- culture
272
- }).get({});
273
-
274
- const request = jasmine.Ajax.requests.mostRecent();
275
- expect(request.url).toContain(`${SF_PARAMS.culture}=${culture}`);
276
- });
277
-
278
- it("Verify additional query params from type options", () => {
279
- const additionalQueryParams = {
280
- "p1": "test1",
281
- "p2": "123",
282
- };
283
-
284
- sitefinity.data({
285
- additionalQueryParams
286
- }).get({});
287
-
288
- const request = jasmine.Ajax.requests.mostRecent();
289
- expect(request.url).toContain("p1=test1&p2=123");
290
- });
291
-
292
- it("Verify additional headers from type options", () => {
293
- const additionalHeaders = {
294
- "p1": "test1",
295
- "p2": "123",
296
- };
297
-
298
- sitefinity.data({
299
- additionalHeaders
300
- }).get({});
301
-
302
- additionalHeaders[HEADER_NAMES.serviceRequest] = "true";
303
-
304
- const request = jasmine.Ajax.requests.mostRecent();
305
- expect(request.requestHeaders).toEqual(additionalHeaders);
306
- });
307
- });
308
-
309
- describe("for batch", () => {
310
- it("Verify baseUrl is appended trailing slash", () => {
311
- const url = "http://www.mysite.com/api/default/v2";
312
- sitefinity.batch(undefined, undefined, undefined, {
313
- baseUrl: url
314
- }).execute();
315
-
316
- let request = jasmine.Ajax.requests.mostRecent();
317
- expect(request.url).toBe(`${url}/$batch`);
318
-
319
- const sdk = new Sitefinity({
320
- baseUrl: url
321
- });
322
- sdk.batch().execute();
323
-
324
- request = jasmine.Ajax.requests.mostRecent();
325
- expect(request.url).toBe(`${url}/$batch`);
326
- });
327
-
328
- it("Verify baseUrl from type options overrides baseUrl from SDK options", () => {
329
- const url = "http://www.mysite.com/api/default/v2/";
330
- sitefinity.batch(undefined, undefined, undefined, {
331
- baseUrl: url
332
- }).execute();
333
-
334
- const request = jasmine.Ajax.requests.mostRecent();
335
- expect(request.url).toBe(`${url}$batch`);
336
- });
337
-
338
- it("Verify siteId from type options overrides siteId from SDK options", () => {
339
- const siteId = "mySiteId";
340
- const sdk = new Sitefinity({
341
- baseUrl: "http://www.mysite.com/api/default/v2/",
342
- siteId: "test"
343
- });
344
- sdk.batch(undefined, undefined, undefined, {
345
- siteId
346
- }).execute();
347
-
348
- const request = jasmine.Ajax.requests.mostRecent();
349
- expect(request.url).toContain(`${SF_PARAMS.siteId}=${siteId}`);
350
- });
351
-
352
- it("Verify provider from type options", () => {
353
- const provider = "myProvider";
354
-
355
- sitefinity.batch(undefined, undefined, undefined, {
356
- provider
357
- }).execute();
358
-
359
- const request = jasmine.Ajax.requests.mostRecent();
360
- expect(request.url).toContain(`${SF_PARAMS.provider}=${provider}`);
361
- });
362
-
363
- it("Verify culture from type options", () => {
364
- const culture = "en";
365
-
366
- sitefinity.batch(undefined, undefined, undefined, {
367
- culture
368
- }).execute();
369
-
370
- const request = jasmine.Ajax.requests.mostRecent();
371
- expect(request.url).toContain(`${SF_PARAMS.culture}=${culture}`);
372
- });
373
-
374
- it("Verify additional query params from type options", () => {
375
- const additionalQueryParams = {
376
- "p1": "test1",
377
- "p2": "123",
378
- };
379
-
380
- sitefinity.batch(undefined, undefined, undefined, {
381
- additionalQueryParams
382
- }).execute();
383
-
384
- const request = jasmine.Ajax.requests.mostRecent();
385
- expect(request.url).toContain("p1=test1&p2=123");
386
- });
387
-
388
- it("Verify additional headers from type options", () => {
389
- const additionalHeaders = {
390
- "p1": "test1",
391
- "p2": "123",
392
- };
393
-
394
- sitefinity.batch(undefined, undefined, undefined, {
395
- additionalHeaders
396
- }).execute();
397
-
398
- additionalHeaders[HEADER_NAMES.serviceRequest] = "true";
399
-
400
- const request = jasmine.Ajax.requests.mostRecent();
401
- expect(request.requestHeaders).toEqual(additionalHeaders);
402
- });
403
-
404
- it("Verify successCb overrides global success handler from SDK options", () => {
405
- const globalHandlers: ResponseHandlers = {
406
- successCb: () => {},
407
- failureCb: () => {}
408
- };
409
- const successSpyGlobal = spyOn<ResponseHandlers, any>(globalHandlers, "successCb");
410
- const failureSpyGlobal = spyOn<ResponseHandlers, any>(globalHandlers, "failureCb");
411
-
412
- const localHandlers = {
413
- successCb: () => {},
414
- failureCb: () => {}
415
- };
416
- const successSpyLocal = spyOn<ResponseHandlers, any>(localHandlers, "successCb");
417
- const failureSpyLocal = spyOn<ResponseHandlers, any>(localHandlers, "failureCb");
418
-
419
- const sdk = new Sitefinity({
420
- baseUrl: "http://www.mysite.com/api/default/v2/",
421
- handlers: globalHandlers
422
- });
423
- sdk.batch(localHandlers.successCb, localHandlers.failureCb).execute();
424
-
425
- const request = jasmine.Ajax.requests.mostRecent();
426
- request.respondWith({
427
- status: 200,
428
- responseText: batchResponse,
429
- responseHeaders: {
430
- "Access-Control-Allow-Origin": "*",
431
- "Cache-Control:": "no-cache",
432
- "Content-Length": "334",
433
- "Content-type": "multipart/mixed; boundary=batchresponse_ab4d3fab-5bee-4ea0-ba40-723ea40d1c32"
434
- }
435
- });
436
-
437
- expect(successSpyLocal).toHaveBeenCalledTimes(1);
438
- expect(failureSpyLocal).not.toHaveBeenCalled();
439
- expect(successSpyGlobal).not.toHaveBeenCalled();
440
- expect(failureSpyGlobal).not.toHaveBeenCalled();
441
- });
442
-
443
- it("Verify failureCb overrides global failure handler from SDK options", () => {
444
- const globalHandlers: ResponseHandlers = {
445
- successCb: () => {},
446
- failureCb: () => {}
447
- };
448
- const successSpyGlobal = spyOn<ResponseHandlers, any>(globalHandlers, "successCb");
449
- const failureSpyGlobal = spyOn<ResponseHandlers, any>(globalHandlers, "failureCb");
450
-
451
- const localHandlers = {
452
- successCb: () => {},
453
- failureCb: () => {}
454
- };
455
- const successSpyLocal = spyOn<ResponseHandlers, any>(localHandlers, "successCb");
456
- const failureSpyLocal = spyOn<ResponseHandlers, any>(localHandlers, "failureCb");
457
-
458
- const sdk = new Sitefinity({
459
- baseUrl: "http://www.mysite.com/api/default/v2/",
460
- handlers: globalHandlers
461
- });
462
- sdk.batch(localHandlers.successCb, localHandlers.failureCb).execute();
463
-
464
- const request = jasmine.Ajax.requests.mostRecent();
465
- request.respondWith({
466
- status: 400,
467
- responseText: batchResponse,
468
- responseHeaders: {
469
- "Access-Control-Allow-Origin": "*",
470
- "Cache-Control:": "no-cache",
471
- "Content-Length": "334",
472
- "Content-type": "multipart/mixed; boundary=batchresponse_ab4d3fab-5bee-4ea0-ba40-723ea40d1c32"
473
- }
474
- });
475
-
476
- expect(failureSpyLocal).toHaveBeenCalledTimes(1);
477
- expect(successSpyLocal).not.toHaveBeenCalled();
478
- expect(successSpyGlobal).not.toHaveBeenCalled();
479
- expect(failureSpyGlobal).not.toHaveBeenCalled();
480
- });
481
- });
482
- });
483
- });