@playkit-js/playkit-js-providers 2.39.1 → 2.39.2

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 (130) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/playkit-analytics-service.js +2 -0
  3. package/dist/playkit-analytics-service.js.map +1 -0
  4. package/dist/playkit-bookmark-service.js +2 -0
  5. package/dist/playkit-bookmark-service.js.map +1 -0
  6. package/dist/playkit-ott-provider.js +2 -0
  7. package/dist/playkit-ott-provider.js.map +1 -0
  8. package/dist/playkit-ovp-provider.js +2 -0
  9. package/dist/playkit-ovp-provider.js.map +1 -0
  10. package/dist/playkit-stats-service.js +2 -0
  11. package/dist/playkit-stats-service.js.map +1 -0
  12. package/package.json +1 -1
  13. package/.babelrc +0 -22
  14. package/.editorconfig +0 -10
  15. package/.eslintignore +0 -3
  16. package/.eslintrc.json +0 -26
  17. package/.flowconfig +0 -5
  18. package/.github/ISSUE_TEMPLATE.md +0 -28
  19. package/.github/PULL_REQUEST_TEMPLATE.md +0 -12
  20. package/.github/workflows/run_canary_full_flow.yaml +0 -28
  21. package/.github/workflows/run_prod.yaml +0 -24
  22. package/.github/workflows/run_tests.yaml +0 -24
  23. package/.prettierignore +0 -7
  24. package/.prettierrc +0 -12
  25. package/docs/configuration.md +0 -225
  26. package/karma.conf.js +0 -42
  27. package/src/entities/bumper.js +0 -23
  28. package/src/entities/drm.js +0 -46
  29. package/src/entities/entry-list.js +0 -15
  30. package/src/entities/image-source.js +0 -37
  31. package/src/entities/media-entry.js +0 -96
  32. package/src/entities/media-format.js +0 -46
  33. package/src/entities/media-source.js +0 -70
  34. package/src/entities/media-sources.js +0 -79
  35. package/src/entities/playlist.js +0 -37
  36. package/src/index.html +0 -11
  37. package/src/k-provider/common/base-provider-parser.js +0 -0
  38. package/src/k-provider/common/base-provider.js +0 -110
  39. package/src/k-provider/common/base-service-result.js +0 -57
  40. package/src/k-provider/common/data-loader-manager.js +0 -115
  41. package/src/k-provider/common/multi-request-builder.js +0 -112
  42. package/src/k-provider/common/response-types/kaltura-access-control-message.js +0 -22
  43. package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.js +0 -39
  44. package/src/k-provider/ott/config.js +0 -22
  45. package/src/k-provider/ott/index.js +0 -15
  46. package/src/k-provider/ott/loaders/asset-list-loader.js +0 -68
  47. package/src/k-provider/ott/loaders/asset-loader.js +0 -69
  48. package/src/k-provider/ott/loaders/data-loader-manager.js +0 -15
  49. package/src/k-provider/ott/loaders/session-loader.js +0 -62
  50. package/src/k-provider/ott/provider-parser.js +0 -282
  51. package/src/k-provider/ott/provider.js +0 -242
  52. package/src/k-provider/ott/response-types/kaltura-asset.js +0 -79
  53. package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.js +0 -28
  54. package/src/k-provider/ott/response-types/kaltura-playback-context.js +0 -74
  55. package/src/k-provider/ott/response-types/kaltura-playback-source.js +0 -63
  56. package/src/k-provider/ott/response-types/kaltura-rule-action.js +0 -26
  57. package/src/k-provider/ott/services/asset-service.js +0 -50
  58. package/src/k-provider/ott/services/bookmark/bookmark-service.js +0 -49
  59. package/src/k-provider/ott/services/bookmark/index.js +0 -12
  60. package/src/k-provider/ott/services/ott-service.js +0 -34
  61. package/src/k-provider/ott/services/user-service.js +0 -32
  62. package/src/k-provider/ovp/config.js +0 -28
  63. package/src/k-provider/ovp/external-captions-builder.js +0 -38
  64. package/src/k-provider/ovp/index.js +0 -13
  65. package/src/k-provider/ovp/loaders/data-loader-manager.js +0 -17
  66. package/src/k-provider/ovp/loaders/entry-list-loader.js +0 -69
  67. package/src/k-provider/ovp/loaders/media-entry-loader.js +0 -84
  68. package/src/k-provider/ovp/loaders/playlist-loader.js +0 -66
  69. package/src/k-provider/ovp/loaders/session-loader.js +0 -62
  70. package/src/k-provider/ovp/loaders/ui-config-loader.js +0 -71
  71. package/src/k-provider/ovp/play-source-url-builder.js +0 -60
  72. package/src/k-provider/ovp/provider-parser.js +0 -451
  73. package/src/k-provider/ovp/provider.js +0 -344
  74. package/src/k-provider/ovp/regex-action-handler.js +0 -147
  75. package/src/k-provider/ovp/request-params/base-entry-response-profile.js +0 -29
  76. package/src/k-provider/ovp/response-types/index.js +0 -18
  77. package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.js +0 -36
  78. package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.js +0 -31
  79. package/src/k-provider/ovp/response-types/kaltura-bumper.js +0 -26
  80. package/src/k-provider/ovp/response-types/kaltura-flavor-asset.js +0 -109
  81. package/src/k-provider/ovp/response-types/kaltura-media-entries.js +0 -23
  82. package/src/k-provider/ovp/response-types/kaltura-media-entry.js +0 -141
  83. package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.js +0 -23
  84. package/src/k-provider/ovp/response-types/kaltura-metadata.js +0 -51
  85. package/src/k-provider/ovp/response-types/kaltura-playback-context.js +0 -96
  86. package/src/k-provider/ovp/response-types/kaltura-playback-source.js +0 -90
  87. package/src/k-provider/ovp/response-types/kaltura-playlist.js +0 -35
  88. package/src/k-provider/ovp/response-types/kaltura-rule-action.js +0 -28
  89. package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.js +0 -90
  90. package/src/k-provider/ovp/services/analytics/analytics-service.js +0 -57
  91. package/src/k-provider/ovp/services/analytics/index.js +0 -12
  92. package/src/k-provider/ovp/services/base-entry-service.js +0 -76
  93. package/src/k-provider/ovp/services/meta-data-service.js +0 -30
  94. package/src/k-provider/ovp/services/ovp-service.js +0 -33
  95. package/src/k-provider/ovp/services/playlist-service.js +0 -63
  96. package/src/k-provider/ovp/services/session-service.js +0 -28
  97. package/src/k-provider/ovp/services/stats/index.js +0 -12
  98. package/src/k-provider/ovp/services/stats/stats-service.js +0 -33
  99. package/src/k-provider/ovp/services/ui-conf-service.js +0 -33
  100. package/src/util/clone.js +0 -23
  101. package/src/util/error/category.js +0 -12
  102. package/src/util/error/code.js +0 -79
  103. package/src/util/error/error.js +0 -48
  104. package/src/util/error/severity.js +0 -23
  105. package/src/util/logger.js +0 -108
  106. package/src/util/param.js +0 -45
  107. package/src/util/request-builder.js +0 -187
  108. package/src/util/xml-parser.js +0 -40
  109. package/test/.eslintrc.json +0 -9
  110. package/test/setup/karma.js +0 -5
  111. package/test/setup/load-specs.js +0 -13
  112. package/test/setup/prepare-test-environment.js +0 -17
  113. package/test/src/k-provider/ott/be-data.js +0 -3306
  114. package/test/src/k-provider/ott/media-config-data.js +0 -793
  115. package/test/src/k-provider/ott/provider-parser.spec.js +0 -30
  116. package/test/src/k-provider/ott/provider.spec.js +0 -384
  117. package/test/src/k-provider/ott/services/bookmark-service.spec.js +0 -38
  118. package/test/src/k-provider/ovp/be-data.js +0 -3932
  119. package/test/src/k-provider/ovp/external-captions-builder.spec.js +0 -59
  120. package/test/src/k-provider/ovp/media-config-data.js +0 -1509
  121. package/test/src/k-provider/ovp/playback-sources-data.js +0 -229
  122. package/test/src/k-provider/ovp/provider-parser-data.js +0 -142
  123. package/test/src/k-provider/ovp/provider-parser.spec.js +0 -96
  124. package/test/src/k-provider/ovp/provider.spec.js +0 -1075
  125. package/test/src/k-provider/ovp/regex-action-handler-data.js +0 -794
  126. package/test/src/k-provider/ovp/regex-action-handler.spec.js +0 -93
  127. package/test/src/k-provider/ovp/services/analytics-service.spec.js +0 -62
  128. package/test/src/k-provider/ovp/services/stats-service.spec.js +0 -37
  129. package/test/src/util/param.spec.js +0 -23
  130. package/webpack.config.js +0 -85
@@ -1,30 +0,0 @@
1
- import OTTProviderParser from '../../../../src/k-provider/ott/provider-parser';
2
- import {MediaLiveAssetData} from './be-data';
3
-
4
- describe('provider parser', function () {
5
- describe('_getMediaType', () => {
6
- it('should check KalturaLiveAsset with enableTrickPlay true and externalIds > 0 returns live with dvr', done => {
7
- const typeData = OTTProviderParser._getMediaType(MediaLiveAssetData, 'media', 'PLAYBACK');
8
- typeData.type.should.equal('Live');
9
- typeData.dvrStatus.should.equal(1);
10
- done();
11
- });
12
- it('should check KalturaLiveAsset with enableTrickPlay false returns live with dvr false', done => {
13
- const MediaLiveAssetDataCopy = JSON.parse(JSON.stringify(MediaLiveAssetData));
14
- MediaLiveAssetDataCopy.externalIds = 0;
15
- MediaLiveAssetDataCopy.enableTrickPlay = false;
16
- const typeData = OTTProviderParser._getMediaType(MediaLiveAssetDataCopy, 'media', 'PLAYBACK');
17
- typeData.type.should.equal('Live');
18
- typeData.dvrStatus.should.equal(0);
19
- done();
20
- });
21
- it('should check KalturaLiveAsset with enableTrickPlay true returns live with dvr true', done => {
22
- const MediaLiveAssetDataCopy = JSON.parse(JSON.stringify(MediaLiveAssetData));
23
- MediaLiveAssetDataCopy.externalIds = 0;
24
- const typeData = OTTProviderParser._getMediaType(MediaLiveAssetDataCopy, 'media', 'PLAYBACK');
25
- typeData.type.should.equal('Live');
26
- typeData.dvrStatus.should.equal(1);
27
- done();
28
- });
29
- });
30
- });
@@ -1,384 +0,0 @@
1
- import OTTProvider from '../../../../src/k-provider/ott/provider';
2
- import * as BE_DATA from './be-data';
3
- import * as MEDIA_CONFIG_DATA from './media-config-data';
4
- import {MultiRequestResult} from '../../../../src/k-provider/common/multi-request-builder';
5
- import MultiRequestBuilder from '../../../../src/k-provider/common/multi-request-builder';
6
- import KalturaAsset from '../../../../src/k-provider/ott/response-types/kaltura-asset';
7
- import KalturaPlaybackContext from '../../../../src/k-provider/ott/response-types/kaltura-playback-context';
8
- import OTTAssetLoader from '../../../../src/k-provider/ott/loaders/asset-loader';
9
- import Error from '../../../../src/util/error/error';
10
- import OTTConfiguration from '../../../../src/k-provider/ott/config';
11
-
12
- const partnerId = 198;
13
- const playerVersion = '1.2.3';
14
-
15
- describe('default configuration', () => {
16
- const defaultConfig = OTTConfiguration.get();
17
-
18
- beforeEach(() => {
19
- OTTConfiguration.set(defaultConfig);
20
- });
21
-
22
- afterEach(() => {
23
- OTTConfiguration.set(defaultConfig);
24
- });
25
-
26
- it('should use config values if they are set', () => {
27
- const provider = new OTTProvider({partnerId: partnerId, env: {serviceParams: {apiVersion: '5.2.7'}}}, playerVersion);
28
- provider.env.serviceParams.apiVersion.should.equal('5.2.7');
29
- });
30
-
31
- it('should use default values if config values are not set', () => {
32
- const provider = new OTTProvider({partnerId: partnerId}, playerVersion);
33
- provider.env.serviceParams.apiVersion.should.equal(defaultConfig.serviceParams.apiVersion);
34
- });
35
- });
36
-
37
- describe('OTTProvider.partnerId:198', function () {
38
- let provider, sandbox;
39
- beforeEach(() => {
40
- sandbox = sinon.createSandbox();
41
- provider = new OTTProvider({partnerId: partnerId}, playerVersion);
42
- });
43
-
44
- afterEach(() => {
45
- sandbox.restore();
46
- if (MultiRequestBuilder.prototype.execute.restore) {
47
- MultiRequestBuilder.prototype.execute.restore();
48
- }
49
- if (OTTAssetLoader.prototype.buildRequests.restore) {
50
- OTTAssetLoader.prototype.buildRequests.restore();
51
- }
52
- });
53
-
54
- it('should return config without plugins and with drm data', done => {
55
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
56
- return new Promise(resolve => {
57
- resolve({response: new MultiRequestResult(BE_DATA.AnonymousEntryWithoutUIConfWithDrmData.response)});
58
- });
59
- });
60
- provider.getMediaConfig({entryId: 480097}).then(
61
- mediaConfig => {
62
- try {
63
- mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.NoPluginsWithDrm);
64
- done();
65
- } catch (err) {
66
- done(err);
67
- }
68
- },
69
- err => {
70
- done(err);
71
- }
72
- );
73
- });
74
-
75
- it('should return config filtered by device types', done => {
76
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
77
- return new Promise(resolve => {
78
- resolve({response: new MultiRequestResult(BE_DATA.AnonymousEntryWithoutUIConfWithDrmData.response)});
79
- });
80
- });
81
- provider
82
- .getMediaConfig({
83
- entryId: 480097,
84
- formats: ['Mobile_Devices_Main_HD_FP', 'Mobile_Devices_Main_SD_FP'],
85
- mediaType: KalturaAsset.Type.RECORDING
86
- })
87
- .then(
88
- mediaConfig => {
89
- try {
90
- mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.FilteredSourcesByDeviceType);
91
- done();
92
- } catch (err) {
93
- done(err);
94
- }
95
- },
96
- err => {
97
- done(err);
98
- }
99
- );
100
- });
101
-
102
- it('should return entry of live type', done => {
103
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
104
- return new Promise(resolve => {
105
- resolve({response: new MultiRequestResult(BE_DATA.LiveEntryNoDrmData.response)});
106
- });
107
- });
108
- provider.getMediaConfig({entryId: 276507, contextType: KalturaPlaybackContext.Type.START_OVER, mediaType: KalturaAsset.Type.EPG}).then(
109
- mediaConfig => {
110
- try {
111
- mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.LiveEntryNoDrm);
112
- done();
113
- } catch (err) {
114
- done(err);
115
- }
116
- },
117
- err => {
118
- done(err);
119
- }
120
- );
121
- });
122
-
123
- it('should return block error for server block response', done => {
124
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
125
- return new Promise(resolve => {
126
- resolve({response: new MultiRequestResult(BE_DATA.BlockActionEntry.response)});
127
- });
128
- });
129
- provider.getMediaConfig({entryId: 1234}).then(
130
- mediaConfig => {
131
- try {
132
- throw new Error('no error returned where block action error was expected', mediaConfig);
133
- } catch (e) {
134
- done(e);
135
- }
136
- },
137
- err => {
138
- const expected = {
139
- severity: 2,
140
- category: 2,
141
- code: 2001,
142
- data: {
143
- action: {
144
- type: 'BLOCK'
145
- },
146
- messages: [
147
- {
148
- message: 'Concurrency limitation',
149
- code: 'ConcurrencyLimitation'
150
- }
151
- ]
152
- }
153
- };
154
- try {
155
- err.should.deep.equal(expected);
156
- done();
157
- } catch (e) {
158
- done(e);
159
- }
160
- }
161
- );
162
- });
163
-
164
- it('should return error for invalid KS format', done => {
165
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
166
- return new Promise((resolve, reject) => {
167
- reject(
168
- new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {
169
- url: 'serviceurl',
170
- headers: [],
171
- results: new MultiRequestResult(BE_DATA.InvalidKSFormat.response).results
172
- })
173
- );
174
- });
175
- });
176
- provider.getMediaConfig({entryId: 1234}).then(
177
- mediaConfig => {
178
- try {
179
- throw new Error('no error returned where block action error was expected', mediaConfig);
180
- } catch (e) {
181
- done(e);
182
- }
183
- },
184
- err => {
185
- const expected = {
186
- severity: 2,
187
- category: 1,
188
- code: 1006,
189
- data: {
190
- headers: [],
191
- results: [
192
- {
193
- error: {
194
- code: '500015',
195
- message: 'Invalid KS format'
196
- },
197
- hasError: true
198
- }
199
- ],
200
- url: 'serviceurl'
201
- }
202
- };
203
- try {
204
- err.should.deep.equal(expected);
205
- done();
206
- } catch (e) {
207
- done(e);
208
- }
209
- }
210
- );
211
- });
212
-
213
- it('should pass streamerType and urlType on the playback context object', done => {
214
- sinon.stub(OTTAssetLoader.prototype, 'buildRequests').callsFake(function (params: Object) {
215
- try {
216
- params.playbackContext.streamerType.should.equal('mpegdash');
217
- params.playbackContext.urlType.should.equal('DIRECT');
218
- done();
219
- } catch (e) {
220
- done(e);
221
- }
222
- return [];
223
- });
224
- provider.getMediaConfig({entryId: 1234, streamerType: 'mpegdash', urlType: 'DIRECT'});
225
- });
226
-
227
- it('should pass adapterData on the playback context object', done => {
228
- const adapterDataConfig = {
229
- supported_files: {
230
- objectType: 'KalturaStringValue',
231
- value: 'HLS_FPS'
232
- },
233
- supported_codec: {
234
- objectType: 'KalturaStringValue',
235
- value: 'HEVC'
236
- }
237
- };
238
- sinon.stub(OTTAssetLoader.prototype, 'buildRequests').callsFake(function (params: Object) {
239
- try {
240
- params.playbackContext.adapterData.should.deep.equal(adapterDataConfig);
241
- done();
242
- } catch (e) {
243
- done(e);
244
- }
245
- });
246
- provider.getMediaConfig({entryId: 1234, adapterData: adapterDataConfig});
247
- });
248
- });
249
-
250
- describe('getEntryListConfig', function () {
251
- let provider, sandbox;
252
- const partnerId = 198;
253
- const ks =
254
- 'djJ8MTk4fCkf82moylM8rVli2azka7KoJea3ITlM8Vh3_dYGU722OoJWDCS7_Pp8cqm1z6QtZAfqjGr36SjPr2GbuNKy1ejIDs7KLFpWd_VCEKKtOcwzaJ11FopaSEspI-uJMGFTvS0AmIBE1f137G36MYjOlMc=';
255
- const playerVersion = '1.2.3';
256
-
257
- beforeEach(() => {
258
- sandbox = sinon.createSandbox();
259
- provider = new OTTProvider({partnerId: partnerId}, playerVersion);
260
- });
261
-
262
- afterEach(() => {
263
- sandbox.restore();
264
- MultiRequestBuilder.prototype.execute.restore();
265
- });
266
-
267
- it('should load a playlist by entry list - anonymous', done => {
268
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
269
- return new Promise(resolve => {
270
- resolve({response: new MultiRequestResult(BE_DATA.PlaylistByEntryList.response)});
271
- });
272
- });
273
- provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}]}).then(
274
- entryListConfig => {
275
- try {
276
- entryListConfig.id.should.equal('');
277
- entryListConfig.items.length.should.equal(2);
278
- entryListConfig.metadata.name.should.equal('');
279
- entryListConfig.metadata.description.should.equal('');
280
- entryListConfig.poster.should.equal('');
281
- done();
282
- } catch (err) {
283
- done(err);
284
- }
285
- },
286
- err => {
287
- done(err);
288
- }
289
- );
290
- });
291
-
292
- it('should load a playlist by entry list - with KS', done => {
293
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
294
- return new Promise(resolve => {
295
- resolve({response: new MultiRequestResult(BE_DATA.AnonymousPlaylistByEntryList.response)});
296
- });
297
- });
298
- provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}], ks}).then(
299
- entryListConfig => {
300
- try {
301
- entryListConfig.id.should.equal('');
302
- entryListConfig.items.length.should.equal(2);
303
- entryListConfig.metadata.name.should.equal('');
304
- entryListConfig.metadata.description.should.equal('');
305
- entryListConfig.poster.should.equal('');
306
- done();
307
- } catch (err) {
308
- done(err);
309
- }
310
- },
311
- err => {
312
- done(err);
313
- }
314
- );
315
- });
316
-
317
- it('should load a partial playlist by entry list if some requests have an error', done => {
318
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
319
- return new Promise(resolve => {
320
- resolve({
321
- response: new MultiRequestResult({
322
- result: [...BE_DATA.AnonymousPlaylistByEntryList.response.result, BE_DATA.InvalidKSFormat.response.result.error]
323
- })
324
- });
325
- });
326
- });
327
-
328
- provider.getEntryListConfig({entries: ['259153', {entryId: '258459'}], ks}).then(
329
- entryListConfig => {
330
- try {
331
- entryListConfig.id.should.equal('');
332
- entryListConfig.items.length.should.equal(2);
333
- entryListConfig.metadata.name.should.equal('');
334
- entryListConfig.metadata.description.should.equal('');
335
- entryListConfig.poster.should.equal('');
336
- done();
337
- } catch (err) {
338
- done(err);
339
- }
340
- },
341
- err => {
342
- done(err);
343
- }
344
- );
345
- });
346
- });
347
-
348
- describe('getEntryWithBumper', function () {
349
- let provider, sandbox;
350
- const partnerId = 147;
351
- const ks = 'ks';
352
- const playerVersion = '1.2.3';
353
-
354
- beforeEach(() => {
355
- sandbox = sinon.createSandbox();
356
- provider = new OTTProvider({partnerId: partnerId}, playerVersion);
357
- });
358
-
359
- afterEach(() => {
360
- sandbox.restore();
361
- MultiRequestBuilder.prototype.execute.restore();
362
- });
363
-
364
- it('should load the entry with bumper', done => {
365
- sinon.stub(MultiRequestBuilder.prototype, 'execute').callsFake(function () {
366
- return new Promise(resolve => {
367
- resolve({response: new MultiRequestResult(BE_DATA.EntryWithBumper.response)});
368
- });
369
- });
370
- provider.getMediaConfig({entryId: '324284', fileIds: '630312', ks}).then(
371
- mediaConfig => {
372
- try {
373
- mediaConfig.should.deep.equal(MEDIA_CONFIG_DATA.EntryWithBumper);
374
- done();
375
- } catch (err) {
376
- done(err);
377
- }
378
- },
379
- err => {
380
- done(err);
381
- }
382
- );
383
- });
384
- });
@@ -1,38 +0,0 @@
1
- import OTTBookmarkService from '../../../../../src/k-provider/ott/services/bookmark/bookmark-service';
2
- import RequestBuilder from '../../../../../src/util/request-builder';
3
- import OTTConfiguration from '../../../../../src/k-provider/ott/config';
4
-
5
- describe('bookmark service - add', function () {
6
- const ottParams = OTTConfiguration.get();
7
- const ks = '1234';
8
- const serviceUrl = 'http://my/url';
9
- let bookMark, playerData;
10
-
11
- beforeEach(function () {
12
- playerData = {
13
- action: 'MY_ACTION'
14
- };
15
- bookMark = {
16
- type: 'MEDIA_TYPE',
17
- id: 'MEDIA_ID',
18
- position: 0,
19
- playerData: playerData
20
- };
21
- });
22
-
23
- it('should be proper values', function () {
24
- const request = OTTBookmarkService.add(serviceUrl, ks, bookMark);
25
- (request instanceof RequestBuilder).should.be.true;
26
- request.service.should.be.equal('bookmark');
27
- request.action.should.be.equal('add');
28
- request.method.should.be.equal('POST');
29
- request.url.should.be.equal(`${serviceUrl}/service/bookmark/action/add`);
30
- Object.assign(playerData, {objectType: 'KalturaBookmarkPlayerData'});
31
- Object.assign(bookMark, {objectType: 'KalturaBookmark'});
32
- JSON.parse(request.params).should.deep.equal({
33
- bookmark: bookMark,
34
- ks: ks,
35
- apiVersion: ottParams.serviceParams.apiVersion
36
- });
37
- });
38
- });