softphone-vendor-headsets 1.0.1 → 2.0.0-develop.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/1.softhphone-vendor-headsets.js +1 -1
- package/dist/1.softhphone-vendor-headsets.js.map +1 -1
- package/dist/2.softhphone-vendor-headsets.js +1 -1
- package/dist/2.softhphone-vendor-headsets.js.map +1 -1
- package/dist/3.softhphone-vendor-headsets.js +1 -1
- package/dist/3.softhphone-vendor-headsets.js.map +1 -1
- package/dist/deploy-info.json +3 -723
- package/dist/softhphone-vendor-headsets.js +4 -19
- package/dist/softhphone-vendor-headsets.js.map +1 -1
- package/package.json +82 -88
- package/dist/cjs/src/config/i18n.d.ts +0 -2
- package/dist/cjs/src/config/i18n.js +0 -27
- package/dist/cjs/src/config/i18n.js.map +0 -1
- package/dist/cjs/src/library/index.d.ts +0 -9
- package/dist/cjs/src/library/index.js +0 -26
- package/dist/cjs/src/library/index.js.map +0 -1
- package/dist/cjs/src/library/services/headset.d.ts +0 -41
- package/dist/cjs/src/library/services/headset.js +0 -181
- package/dist/cjs/src/library/services/headset.js.map +0 -1
- package/dist/cjs/src/library/services/headset.test.d.ts +0 -1
- package/dist/cjs/src/library/services/headset.test.js +0 -487
- package/dist/cjs/src/library/services/headset.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.d.ts +0 -13
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.js +0 -18
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.d.ts +0 -12
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.js +0 -16
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.d.ts +0 -5
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.js +0 -10
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.d.ts +0 -38
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.js +0 -251
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.js +0 -573
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-commands.d.ts +0 -13
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-commands.js +0 -18
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-commands.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.d.ts +0 -6
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.js +0 -11
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.d.ts +0 -4
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.js +0 -3
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.d.ts +0 -23
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.js +0 -13
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.d.ts +0 -45
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js +0 -236
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js +0 -567
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.d.ts +0 -48
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.js +0 -341
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.test.js +0 -844
- package/dist/cjs/src/library/services/vendor-implementations/jabra/jabra.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.d.ts +0 -37
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.js +0 -51
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.js +0 -111
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.d.ts +0 -260
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.js +0 -273
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.d.ts +0 -58
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.js +0 -374
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.test.d.ts +0 -2
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.test.js +0 -796
- package/dist/cjs/src/library/services/vendor-implementations/plantronics/plantronics.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.d.ts +0 -5
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.js +0 -10
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-events.d.ts +0 -21
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-events.js +0 -26
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-events.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.d.ts +0 -16
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.js +0 -3
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.d.ts +0 -44
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.js +0 -303
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.test.js +0 -801
- package/dist/cjs/src/library/services/vendor-implementations/sennheiser/sennheiser.test.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implementation.d.ts +0 -69
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implementation.js +0 -99
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implementation.js.map +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implemntation.test.d.ts +0 -1
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implemntation.test.js +0 -106
- package/dist/cjs/src/library/services/vendor-implementations/vendor-implemntation.test.js.map +0 -1
- package/dist/cjs/src/library/test-utils.test.d.ts +0 -16
- package/dist/cjs/src/library/test-utils.test.js +0 -40
- package/dist/cjs/src/library/test-utils.test.js.map +0 -1
- package/dist/cjs/src/library/types/call-info.d.ts +0 -4
- package/dist/cjs/src/library/types/call-info.js +0 -3
- package/dist/cjs/src/library/types/call-info.js.map +0 -1
- package/dist/cjs/src/library/types/consumed-headset-events.d.ts +0 -45
- package/dist/cjs/src/library/types/consumed-headset-events.js +0 -18
- package/dist/cjs/src/library/types/consumed-headset-events.js.map +0 -1
- package/dist/cjs/src/library/types/device-info.d.ts +0 -8
- package/dist/cjs/src/library/types/device-info.js +0 -3
- package/dist/cjs/src/library/types/device-info.js.map +0 -1
- package/dist/cjs/src/library/types/emitted-headset-events.d.ts +0 -31
- package/dist/cjs/src/library/types/emitted-headset-events.js +0 -3
- package/dist/cjs/src/library/types/emitted-headset-events.js.map +0 -1
- package/dist/cjs/src/library/types/jabra-request.d.ts +0 -3
- package/dist/cjs/src/library/types/jabra-request.js +0 -3
- package/dist/cjs/src/library/types/jabra-request.js.map +0 -1
- package/dist/cjs/src/library/utils.d.ts +0 -14
- package/dist/cjs/src/library/utils.js +0 -80
- package/dist/cjs/src/library/utils.js.map +0 -1
- package/dist/cjs/src/library/utils.test.d.ts +0 -1
- package/dist/cjs/src/library/utils.test.js +0 -46
- package/dist/cjs/src/library/utils.test.js.map +0 -1
- package/dist/cjs/src/mocks/call.d.ts +0 -11
- package/dist/cjs/src/mocks/call.js +0 -54
- package/dist/cjs/src/mocks/call.js.map +0 -1
- package/dist/cjs/src/mocks/device-service.d.ts +0 -8
- package/dist/cjs/src/mocks/device-service.js +0 -43
- package/dist/cjs/src/mocks/device-service.js.map +0 -1
- package/dist/cjs/src/setupTests.d.ts +0 -1
- package/dist/cjs/src/setupTests.js +0 -8
- package/dist/cjs/src/setupTests.js.map +0 -1
- package/dist/es/src/config/i18n.d.ts +0 -2
- package/dist/es/src/config/i18n.js +0 -22
- package/dist/es/src/config/i18n.js.map +0 -1
- package/dist/es/src/library/index.d.ts +0 -9
- package/dist/es/src/library/index.js +0 -10
- package/dist/es/src/library/index.js.map +0 -1
- package/dist/es/src/library/services/headset.d.ts +0 -41
- package/dist/es/src/library/services/headset.js +0 -175
- package/dist/es/src/library/services/headset.js.map +0 -1
- package/dist/es/src/library/services/headset.test.d.ts +0 -1
- package/dist/es/src/library/services/headset.test.js +0 -482
- package/dist/es/src/library/services/headset.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.d.ts +0 -13
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.js +0 -15
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-commands.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.d.ts +0 -12
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.js +0 -13
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-event-translation.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.d.ts +0 -5
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.js +0 -7
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome-requested-events.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.d.ts +0 -38
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.js +0 -248
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.js +0 -568
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-chrome/jabra-chrome.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-commands.d.ts +0 -13
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-commands.js +0 -15
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-commands.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.d.ts +0 -6
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.js +0 -8
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-commands.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.d.ts +0 -4
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.js +0 -2
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-heaset-state.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.d.ts +0 -23
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.js +0 -10
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native-types.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.d.ts +0 -45
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js +0 -233
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js +0 -543
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra-native/jabra-native.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.d.ts +0 -48
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.js +0 -338
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.test.js +0 -839
- package/dist/es/src/library/services/vendor-implementations/jabra/jabra.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.d.ts +0 -37
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.js +0 -48
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.js +0 -109
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-call-events.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.d.ts +0 -260
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.js +0 -271
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics-test-responses.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.d.ts +0 -58
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.js +0 -368
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.test.d.ts +0 -2
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.test.js +0 -791
- package/dist/es/src/library/services/vendor-implementations/plantronics/plantronics.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.d.ts +0 -5
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.js +0 -7
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-event-types.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-events.d.ts +0 -21
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-events.js +0 -23
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-events.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.d.ts +0 -16
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.js +0 -2
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser-payload.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.d.ts +0 -44
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.js +0 -281
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.test.js +0 -777
- package/dist/es/src/library/services/vendor-implementations/sennheiser/sennheiser.test.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/vendor-implementation.d.ts +0 -69
- package/dist/es/src/library/services/vendor-implementations/vendor-implementation.js +0 -95
- package/dist/es/src/library/services/vendor-implementations/vendor-implementation.js.map +0 -1
- package/dist/es/src/library/services/vendor-implementations/vendor-implemntation.test.d.ts +0 -1
- package/dist/es/src/library/services/vendor-implementations/vendor-implemntation.test.js +0 -104
- package/dist/es/src/library/services/vendor-implementations/vendor-implemntation.test.js.map +0 -1
- package/dist/es/src/library/test-utils.test.d.ts +0 -16
- package/dist/es/src/library/test-utils.test.js +0 -36
- package/dist/es/src/library/test-utils.test.js.map +0 -1
- package/dist/es/src/library/types/call-info.d.ts +0 -4
- package/dist/es/src/library/types/call-info.js +0 -2
- package/dist/es/src/library/types/call-info.js.map +0 -1
- package/dist/es/src/library/types/consumed-headset-events.d.ts +0 -45
- package/dist/es/src/library/types/consumed-headset-events.js +0 -15
- package/dist/es/src/library/types/consumed-headset-events.js.map +0 -1
- package/dist/es/src/library/types/device-info.d.ts +0 -8
- package/dist/es/src/library/types/device-info.js +0 -2
- package/dist/es/src/library/types/device-info.js.map +0 -1
- package/dist/es/src/library/types/emitted-headset-events.d.ts +0 -31
- package/dist/es/src/library/types/emitted-headset-events.js +0 -2
- package/dist/es/src/library/types/emitted-headset-events.js.map +0 -1
- package/dist/es/src/library/types/jabra-request.d.ts +0 -3
- package/dist/es/src/library/types/jabra-request.js +0 -2
- package/dist/es/src/library/types/jabra-request.js.map +0 -1
- package/dist/es/src/library/utils.d.ts +0 -14
- package/dist/es/src/library/utils.js +0 -69
- package/dist/es/src/library/utils.js.map +0 -1
- package/dist/es/src/library/utils.test.d.ts +0 -1
- package/dist/es/src/library/utils.test.js +0 -44
- package/dist/es/src/library/utils.test.js.map +0 -1
- package/dist/es/src/mocks/call.d.ts +0 -11
- package/dist/es/src/mocks/call.js +0 -51
- package/dist/es/src/mocks/call.js.map +0 -1
- package/dist/es/src/mocks/device-service.d.ts +0 -8
- package/dist/es/src/mocks/device-service.js +0 -40
- package/dist/es/src/mocks/device-service.js.map +0 -1
- package/dist/es/src/setupTests.d.ts +0 -1
- package/dist/es/src/setupTests.js +0 -6
- package/dist/es/src/setupTests.js.map +0 -1
|
@@ -1,844 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const jabra_1 = __importDefault(require("./jabra"));
|
|
16
|
-
const rxjs_1 = require("rxjs");
|
|
17
|
-
const jabra_js_1 = require("@gnaudio/jabra-js");
|
|
18
|
-
const broadcast_channel_1 = require("broadcast-channel");
|
|
19
|
-
require("regenerator-runtime");
|
|
20
|
-
const test_utils_test_1 = require("../../../test-utils.test");
|
|
21
|
-
jest.mock('broadcast-channel');
|
|
22
|
-
const testDevice1 = {
|
|
23
|
-
deviceName: 'Test Device 1',
|
|
24
|
-
ProductName: 'Super Headset',
|
|
25
|
-
headsetType: 'Wireless',
|
|
26
|
-
};
|
|
27
|
-
const testDevice2 = {
|
|
28
|
-
deviceName: 'Test Device 2',
|
|
29
|
-
ProductName: 'Yellow Headset',
|
|
30
|
-
headsetType: 'Wired with buttons',
|
|
31
|
-
};
|
|
32
|
-
const testDevice3 = {
|
|
33
|
-
deviceName: 'Test Device 3',
|
|
34
|
-
ProductName: 'Bluetooth Bannana',
|
|
35
|
-
headsetType: 'Looks like a fruit',
|
|
36
|
-
};
|
|
37
|
-
const flushPromises = () => Promise.resolve();
|
|
38
|
-
function populateDevices(service) {
|
|
39
|
-
service.devices.set(testDevice1.deviceName, testDevice1);
|
|
40
|
-
service.devices.set(testDevice2.deviceName, testDevice2);
|
|
41
|
-
service.devices.set(testDevice3.deviceName, testDevice3);
|
|
42
|
-
}
|
|
43
|
-
const createMockCallControl = (deviceSignalsObservable) => {
|
|
44
|
-
return {
|
|
45
|
-
device: jest.fn(),
|
|
46
|
-
onDisconnect: jest.fn(),
|
|
47
|
-
deviceSignals: deviceSignalsObservable,
|
|
48
|
-
takeCallLock: jest.fn(),
|
|
49
|
-
releaseCallLock: jest.fn(),
|
|
50
|
-
offHook: jest.fn(),
|
|
51
|
-
ring: jest.fn(),
|
|
52
|
-
mute: jest.fn(),
|
|
53
|
-
hold: jest.fn()
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
const exceptionWithType = (message, type) => {
|
|
57
|
-
const error = new Error();
|
|
58
|
-
error.message = message;
|
|
59
|
-
error.type = type;
|
|
60
|
-
return error;
|
|
61
|
-
};
|
|
62
|
-
const initializeSdk = (subject) => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
const sdk = yield jabra_js_1.init({
|
|
64
|
-
appId: 'softphone-vendor-headsets-test',
|
|
65
|
-
appName: 'Softphone Headset Library Test',
|
|
66
|
-
transport: jabra_js_1.RequestedBrowserTransport.CHROME_EXTENSION_WITH_WEB_HID_FALLBACK
|
|
67
|
-
});
|
|
68
|
-
const deviceList = [
|
|
69
|
-
{
|
|
70
|
-
id: 123,
|
|
71
|
-
name: 'Test Label 123',
|
|
72
|
-
vendorId: 2830,
|
|
73
|
-
productId: 3648,
|
|
74
|
-
serialNumber: '123456789',
|
|
75
|
-
currentConnections: [{
|
|
76
|
-
hidChannel: {
|
|
77
|
-
descriptor: [{
|
|
78
|
-
reportSize: 1,
|
|
79
|
-
reportType: 1,
|
|
80
|
-
usage: 23,
|
|
81
|
-
usagePage: 65344,
|
|
82
|
-
valueType: "absolute"
|
|
83
|
-
}],
|
|
84
|
-
},
|
|
85
|
-
type: 2
|
|
86
|
-
}],
|
|
87
|
-
type: 255,
|
|
88
|
-
browserLabel: 'Test Label 123:3648',
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: 'Definitely not this'
|
|
92
|
-
}
|
|
93
|
-
];
|
|
94
|
-
sdk.deviceList = subject.asObservable();
|
|
95
|
-
subject.next(deviceList);
|
|
96
|
-
return sdk;
|
|
97
|
-
});
|
|
98
|
-
const resetJabraService = (service) => {
|
|
99
|
-
service.isConnecting = false;
|
|
100
|
-
service.isConnected = false;
|
|
101
|
-
service.isActive = false;
|
|
102
|
-
service.devices = new Map();
|
|
103
|
-
service.activeDeviceId = null;
|
|
104
|
-
service.logger = test_utils_test_1.mockLogger;
|
|
105
|
-
service._connectDeferred = null;
|
|
106
|
-
};
|
|
107
|
-
describe('JabraService', () => {
|
|
108
|
-
let jabraService;
|
|
109
|
-
let jabraSdk;
|
|
110
|
-
const subject = new rxjs_1.ReplaySubject(1);
|
|
111
|
-
// const deviceSignalsSubject = new Subject<ICallControlSignal>();
|
|
112
|
-
// const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
113
|
-
Object.defineProperty(window.navigator, 'hid', { get: () => ({
|
|
114
|
-
getDevices: () => { return []; }
|
|
115
|
-
}) });
|
|
116
|
-
Object.defineProperty(window.navigator, 'locks', { get: () => ({}) });
|
|
117
|
-
window.BroadcastChannel = broadcast_channel_1.BroadcastChannel;
|
|
118
|
-
beforeEach(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
-
jabraSdk = initializeSdk(subject);
|
|
120
|
-
jabraService = jabra_1.default.getInstance({ logger: console, createNew: true });
|
|
121
|
-
resetJabraService(jabraService);
|
|
122
|
-
}));
|
|
123
|
-
afterEach(() => {
|
|
124
|
-
jest.resetAllMocks();
|
|
125
|
-
jest.restoreAllMocks();
|
|
126
|
-
});
|
|
127
|
-
describe('instantiation', () => {
|
|
128
|
-
it('should be a singleton', () => {
|
|
129
|
-
const jabraService2 = jabra_1.default.getInstance({ logger: console });
|
|
130
|
-
expect(jabraService).not.toBeFalsy();
|
|
131
|
-
expect(jabraService2).not.toBeFalsy();
|
|
132
|
-
expect(jabraService).toBe(jabraService2);
|
|
133
|
-
});
|
|
134
|
-
it('should have the correct vendorName', () => {
|
|
135
|
-
expect(jabraService.vendorName).toEqual('Jabra');
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
describe('various functions', () => {
|
|
139
|
-
it('deviceLabelMatchesVendor', () => {
|
|
140
|
-
let result;
|
|
141
|
-
result = jabraService.deviceLabelMatchesVendor('Test Jabra Label');
|
|
142
|
-
expect(result).toBe(true);
|
|
143
|
-
result = jabraService.deviceLabelMatchesVendor('Something totally different');
|
|
144
|
-
expect(result).toBe(false);
|
|
145
|
-
});
|
|
146
|
-
it('resets the state', () => {
|
|
147
|
-
const setMuteSpy = jest.spyOn(jabraService, 'setMute');
|
|
148
|
-
const setHoldSpy = jest.spyOn(jabraService, 'setHold');
|
|
149
|
-
jabraService.resetState();
|
|
150
|
-
expect(setMuteSpy).toHaveBeenCalledWith(false);
|
|
151
|
-
expect(setHoldSpy).toHaveBeenCalledWith(null, false);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
describe('initial connection', () => {
|
|
155
|
-
beforeEach(() => {
|
|
156
|
-
resetJabraService(jabraService);
|
|
157
|
-
jest.useFakeTimers();
|
|
158
|
-
});
|
|
159
|
-
afterEach(() => {
|
|
160
|
-
jest.clearAllTimers();
|
|
161
|
-
jest.useRealTimers();
|
|
162
|
-
});
|
|
163
|
-
it('should set the proper values while trying to connect; successfuly connect', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
164
|
-
const processEventsSpy = jest.spyOn(jabraService, '_processEvents');
|
|
165
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
166
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
167
|
-
const callControlFactorySpy = jest.spyOn(jabraService, 'createCallControlFactory').mockReturnValue({
|
|
168
|
-
createCallControl: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
169
|
-
return callControl;
|
|
170
|
-
})
|
|
171
|
-
});
|
|
172
|
-
const testLabel = 'test label 123';
|
|
173
|
-
jabraService.jabraSdk = jabraSdk;
|
|
174
|
-
yield jabraService.connect(testLabel);
|
|
175
|
-
jest.runAllTimers();
|
|
176
|
-
yield flushPromises();
|
|
177
|
-
yield flushPromises();
|
|
178
|
-
yield flushPromises();
|
|
179
|
-
expect(callControlFactorySpy).toHaveBeenCalled();
|
|
180
|
-
expect(processEventsSpy).toHaveBeenCalledWith(callControl);
|
|
181
|
-
expect(jabraService.isConnected).toBe(true);
|
|
182
|
-
expect(jabraService.isConnecting).toBe(false);
|
|
183
|
-
}));
|
|
184
|
-
it('should set the proper values while trying to connect; failed to connect', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
185
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
186
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
187
|
-
jest.spyOn(jabraService, 'createCallControlFactory').mockReturnValue({
|
|
188
|
-
createCallControl: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
189
|
-
return callControl;
|
|
190
|
-
})
|
|
191
|
-
});
|
|
192
|
-
const deviceConnectionStatusChangedSpy = jest.spyOn(jabraService, 'changeConnectionStatus');
|
|
193
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
194
|
-
const requestWebHidPermissionsSpy = jest.spyOn(jabraService, 'requestWebHidPermissions');
|
|
195
|
-
const testLabel = 'test label 456';
|
|
196
|
-
jabraService.jabraSdk = jabraSdk;
|
|
197
|
-
yield jabraService.connect(testLabel);
|
|
198
|
-
jest.runAllTimers();
|
|
199
|
-
yield flushPromises();
|
|
200
|
-
jest.runOnlyPendingTimers();
|
|
201
|
-
yield flushPromises();
|
|
202
|
-
yield flushPromises();
|
|
203
|
-
expect(requestWebHidPermissionsSpy).toHaveBeenCalled();
|
|
204
|
-
expect(deviceConnectionStatusChangedSpy).toHaveBeenCalled();
|
|
205
|
-
expect(jabraService.isConnecting).toBe(false);
|
|
206
|
-
expect(errorLoggerSpy).toHaveBeenCalled();
|
|
207
|
-
}));
|
|
208
|
-
it('should set the proper values while trying to connect; failed initial connection, populated afterwards', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
209
|
-
const testDevices = [
|
|
210
|
-
{
|
|
211
|
-
id: 123,
|
|
212
|
-
name: 'Test Label 123',
|
|
213
|
-
vendorId: 2830,
|
|
214
|
-
productId: 3648,
|
|
215
|
-
serialNumber: '123456789',
|
|
216
|
-
currentConnections: [{
|
|
217
|
-
hidChannel: {
|
|
218
|
-
descriptor: [{
|
|
219
|
-
reportSize: 1,
|
|
220
|
-
reportType: 1,
|
|
221
|
-
usage: 23,
|
|
222
|
-
usagePage: 65344,
|
|
223
|
-
valueType: "absolute"
|
|
224
|
-
}],
|
|
225
|
-
},
|
|
226
|
-
type: 2
|
|
227
|
-
}],
|
|
228
|
-
type: 255,
|
|
229
|
-
browserLabel: 'Test Label 123:3648',
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
name: 'Definitely not this'
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
id: 456,
|
|
236
|
-
name: 'Test Label 456'
|
|
237
|
-
}
|
|
238
|
-
];
|
|
239
|
-
const processEventsSpy = jest.spyOn(jabraService, '_processEvents');
|
|
240
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
241
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
242
|
-
jest.spyOn(jabraService, 'createCallControlFactory').mockReturnValue({
|
|
243
|
-
createCallControl: () => __awaiter(void 0, void 0, void 0, function* () {
|
|
244
|
-
return callControl;
|
|
245
|
-
})
|
|
246
|
-
});
|
|
247
|
-
const deviceConnectionStatusChangedSpy = jest.spyOn(jabraService, 'changeConnectionStatus');
|
|
248
|
-
const requestWebHidPermissionsSpy = jest.spyOn(jabraService, 'requestWebHidPermissions');
|
|
249
|
-
const testLabel = 'test label 456';
|
|
250
|
-
jabraService.jabraSdk = jabraSdk;
|
|
251
|
-
yield jabraService.connect(testLabel);
|
|
252
|
-
jest.advanceTimersByTime(2100);
|
|
253
|
-
yield flushPromises();
|
|
254
|
-
subject.next(testDevices);
|
|
255
|
-
yield flushPromises();
|
|
256
|
-
yield flushPromises();
|
|
257
|
-
// await flushPromises();
|
|
258
|
-
expect(requestWebHidPermissionsSpy).toHaveBeenCalled();
|
|
259
|
-
expect(processEventsSpy).toHaveBeenCalledWith(callControl);
|
|
260
|
-
expect(deviceConnectionStatusChangedSpy).toHaveBeenCalledWith({ isConnected: true, isConnecting: false });
|
|
261
|
-
expect(jabraService.isConnecting).toBe(false);
|
|
262
|
-
expect(jabraService.isConnected).toBe(true);
|
|
263
|
-
}));
|
|
264
|
-
it('should have an instance of a CallControlFactory after calling the createCallControlFactory function', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
265
|
-
const testLabel = 'test label 123';
|
|
266
|
-
jabraService.jabraSdk = jabraSdk;
|
|
267
|
-
yield jabraService.connect(testLabel);
|
|
268
|
-
yield flushPromises();
|
|
269
|
-
expect(jabraService.callControlFactory instanceof jabra_js_1.CallControlFactory).toBe(true);
|
|
270
|
-
}));
|
|
271
|
-
});
|
|
272
|
-
describe('processEvents', () => {
|
|
273
|
-
it('properly handles answer call events passed in from headset', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
274
|
-
jabraService.callLock = true;
|
|
275
|
-
const deviceAnsweredCallSpy = jest.spyOn(jabraService, 'deviceAnsweredCall'); // const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
276
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
277
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
278
|
-
jabraService._processEvents(callControl);
|
|
279
|
-
deviceSignalsSubject.next({ type: 32, value: true });
|
|
280
|
-
expect(callControl.offHook).toHaveBeenCalledWith(true);
|
|
281
|
-
expect(callControl.ring).toHaveBeenCalledWith(false);
|
|
282
|
-
expect(deviceAnsweredCallSpy).toHaveBeenCalled();
|
|
283
|
-
}));
|
|
284
|
-
it('properly handles end call events passed in from headset with a successful callLock release', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
285
|
-
jabraService.callLock = true;
|
|
286
|
-
const deviceEndedCallSpy = jest.spyOn(jabraService, 'deviceEndedCall');
|
|
287
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
288
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
289
|
-
jabraService._processEvents(callControl);
|
|
290
|
-
deviceSignalsSubject.next({ type: 32, value: false });
|
|
291
|
-
expect(callControl.mute).toHaveBeenCalledWith(false);
|
|
292
|
-
expect(callControl.hold).toHaveBeenCalledWith(false);
|
|
293
|
-
expect(callControl.offHook).toHaveBeenCalledWith(false);
|
|
294
|
-
expect(deviceEndedCallSpy).toHaveBeenCalled();
|
|
295
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
296
|
-
expect(jabraService.callLock).toBe(false);
|
|
297
|
-
}));
|
|
298
|
-
it('properly handles end call events passed in from headset with a failed callLock release', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
299
|
-
jabraService.callLock = true;
|
|
300
|
-
const deviceEndedCallSpy = jest.spyOn(jabraService, 'deviceEndedCall');
|
|
301
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
302
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
303
|
-
jabraService._processEvents(callControl);
|
|
304
|
-
const exceptionWithType = (message, type) => {
|
|
305
|
-
const error = new Error();
|
|
306
|
-
error.message = message;
|
|
307
|
-
error.type = type;
|
|
308
|
-
return error;
|
|
309
|
-
};
|
|
310
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
311
|
-
throw exceptionWithType('Trying to release the call lock, but it is not held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
312
|
-
});
|
|
313
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
314
|
-
deviceSignalsSubject.next({ type: 32, value: false });
|
|
315
|
-
expect(callControl.mute).toHaveBeenCalledWith(false);
|
|
316
|
-
expect(callControl.hold).toHaveBeenCalledWith(false);
|
|
317
|
-
expect(callControl.offHook).toHaveBeenCalledWith(false);
|
|
318
|
-
expect(deviceEndedCallSpy).toHaveBeenCalled();
|
|
319
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
320
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to release the call lock, but it is not held!');
|
|
321
|
-
}));
|
|
322
|
-
it('properly logs an error that is not related to call lock during end call flow', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
323
|
-
jabraService.callLock = true;
|
|
324
|
-
const deviceEndedCallSpy = jest.spyOn(jabraService, 'deviceEndedCall');
|
|
325
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
326
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
327
|
-
jabraService._processEvents(callControl);
|
|
328
|
-
const exceptionWithType = (message, type) => {
|
|
329
|
-
const error = new Error();
|
|
330
|
-
error.message = message;
|
|
331
|
-
error.type = type;
|
|
332
|
-
return error;
|
|
333
|
-
};
|
|
334
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
335
|
-
throw exceptionWithType('Something went terribly wrong', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
336
|
-
});
|
|
337
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
338
|
-
deviceSignalsSubject.next({ type: 32, value: false });
|
|
339
|
-
expect(callControl.mute).toHaveBeenCalledWith(false);
|
|
340
|
-
expect(callControl.hold).toHaveBeenCalledWith(false);
|
|
341
|
-
expect(callControl.offHook).toHaveBeenCalledWith(false);
|
|
342
|
-
expect(deviceEndedCallSpy).toHaveBeenCalled();
|
|
343
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
344
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'Something went terribly wrong');
|
|
345
|
-
}));
|
|
346
|
-
it('properly handles hold call events passed in from headset', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
347
|
-
jabraService.callLock = true;
|
|
348
|
-
const deviceHoldStatusChangedSpy = jest.spyOn(jabraService, 'deviceHoldStatusChanged');
|
|
349
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
350
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
351
|
-
jabraService._processEvents(callControl);
|
|
352
|
-
deviceSignalsSubject.next({ type: 33, value: true });
|
|
353
|
-
expect(jabraService.isHeld).toBe(true);
|
|
354
|
-
expect(callControl.hold).toHaveBeenCalledWith(true);
|
|
355
|
-
expect(deviceHoldStatusChangedSpy).toHaveBeenCalledWith(true, { code: 33, name: 'OnHold' });
|
|
356
|
-
deviceSignalsSubject.next({ type: 35, value: true });
|
|
357
|
-
expect(jabraService.isHeld).toBe(false);
|
|
358
|
-
expect(callControl.hold).toHaveBeenCalledWith(false);
|
|
359
|
-
expect(deviceHoldStatusChangedSpy).toHaveBeenCalledWith(false, { code: 35, name: 'ResumeCall' });
|
|
360
|
-
}));
|
|
361
|
-
it('properly handles mute call events passed in from headset', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
362
|
-
jabraService.callLock = true;
|
|
363
|
-
const deviceMuteChangedSpy = jest.spyOn(jabraService, 'deviceMuteChanged');
|
|
364
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
365
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
366
|
-
jabraService._processEvents(callControl);
|
|
367
|
-
deviceSignalsSubject.next({ type: 47, value: true });
|
|
368
|
-
expect(jabraService.isMuted).toBe(true);
|
|
369
|
-
expect(callControl.mute).toHaveBeenCalledWith(true);
|
|
370
|
-
expect(deviceMuteChangedSpy).toHaveBeenCalledWith(true, { code: 47, name: 'CallMuted' });
|
|
371
|
-
deviceSignalsSubject.next({ type: 47, value: true });
|
|
372
|
-
expect(jabraService.isMuted).toBe(false);
|
|
373
|
-
expect(callControl.mute).toHaveBeenCalledWith(false);
|
|
374
|
-
expect(deviceMuteChangedSpy).toHaveBeenCalledWith(false, { code: 47, name: 'CallUnmuted' });
|
|
375
|
-
}));
|
|
376
|
-
it('properly handles reject call events passed in from headset with a successful callLock release', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
377
|
-
jabraService.callLock = true;
|
|
378
|
-
jabraService.incomingConversationId = 'convoId1234';
|
|
379
|
-
const deviceRejectedCallSpy = jest.spyOn(jabraService, 'deviceRejectedCall');
|
|
380
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
381
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
382
|
-
jabraService._processEvents(callControl);
|
|
383
|
-
deviceSignalsSubject.next({ type: 65533, value: true });
|
|
384
|
-
expect(callControl.ring).toHaveBeenCalledWith(false);
|
|
385
|
-
expect(deviceRejectedCallSpy).toHaveBeenCalledWith('convoId1234');
|
|
386
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
387
|
-
expect(jabraService.callLock).toBe(false);
|
|
388
|
-
}));
|
|
389
|
-
it('properly handles reject call events passed in from headset with a failed callLock release', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
390
|
-
jabraService.callLock = true;
|
|
391
|
-
jabraService.incomingConversationId = 'convoId1234';
|
|
392
|
-
const deviceRejectedCallSpy = jest.spyOn(jabraService, 'deviceRejectedCall');
|
|
393
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
394
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
395
|
-
jabraService._processEvents(callControl);
|
|
396
|
-
const exceptionWithType = (message, type) => {
|
|
397
|
-
const error = new Error();
|
|
398
|
-
error.message = message;
|
|
399
|
-
error.type = type;
|
|
400
|
-
return error;
|
|
401
|
-
};
|
|
402
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
403
|
-
throw exceptionWithType('Trying to release the call lock, but it is not held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
404
|
-
});
|
|
405
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
406
|
-
deviceSignalsSubject.next({ type: 65533, value: true });
|
|
407
|
-
expect(callControl.ring).toHaveBeenCalledWith(false);
|
|
408
|
-
expect(deviceRejectedCallSpy).toHaveBeenCalledWith('convoId1234');
|
|
409
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
410
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to release the call lock, but it is not held!');
|
|
411
|
-
}));
|
|
412
|
-
it('properly logs an error that is not related to call lock during reject call flow', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
413
|
-
jabraService.callLock = true;
|
|
414
|
-
jabraService.incomingConversationId = 'convoId1234';
|
|
415
|
-
const deviceRejectedCallSpy = jest.spyOn(jabraService, 'deviceRejectedCall');
|
|
416
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
417
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
418
|
-
jabraService._processEvents(callControl);
|
|
419
|
-
const exceptionWithType = (message, type) => {
|
|
420
|
-
const error = new Error();
|
|
421
|
-
error.message = message;
|
|
422
|
-
error.type = type;
|
|
423
|
-
return error;
|
|
424
|
-
};
|
|
425
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
426
|
-
throw exceptionWithType('Something went terribly wrong', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
427
|
-
});
|
|
428
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
429
|
-
deviceSignalsSubject.next({ type: 65533, value: true });
|
|
430
|
-
expect(callControl.ring).toHaveBeenCalledWith(false);
|
|
431
|
-
expect(deviceRejectedCallSpy).toHaveBeenCalledWith('convoId1234');
|
|
432
|
-
expect(yield callControl.releaseCallLock).toHaveBeenCalled();
|
|
433
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'Something went terribly wrong');
|
|
434
|
-
}));
|
|
435
|
-
it('properly logs a debug message if we do not have the callLock by the time we start the subscribing to processEvents', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
436
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
437
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
438
|
-
jabraService._processEvents(callControl);
|
|
439
|
-
jabraService.callLock = false;
|
|
440
|
-
const debugLoggerSpy = jest.spyOn(jabraService.logger, 'debug');
|
|
441
|
-
deviceSignalsSubject.next({ type: 32, value: true });
|
|
442
|
-
expect(debugLoggerSpy).toHaveBeenCalledWith('Currently not in possession of the Call Lock; Cannot react to Device Actions');
|
|
443
|
-
}));
|
|
444
|
-
});
|
|
445
|
-
describe('setMute', () => {
|
|
446
|
-
it('properly sends the event to the headset and updates the state', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
447
|
-
jabraService.callLock = true;
|
|
448
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
449
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
450
|
-
jabraService.callControl = callControl;
|
|
451
|
-
jabraService.setMute(true);
|
|
452
|
-
expect(jabraService.isMuted).toBe(true);
|
|
453
|
-
expect(callControl.mute).toHaveBeenCalledWith(true);
|
|
454
|
-
jabraService.setMute(false);
|
|
455
|
-
expect(jabraService.isMuted).toBe(false);
|
|
456
|
-
expect(callControl.mute).toHaveBeenCalledWith(false);
|
|
457
|
-
}));
|
|
458
|
-
it('does not do anything if we dont own the callLock', () => {
|
|
459
|
-
jabraService.callLock = false;
|
|
460
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
461
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
462
|
-
jabraService.callControl = callControl;
|
|
463
|
-
const muteResult = jabraService.setMute(true);
|
|
464
|
-
expect(jabraService.isMuted).toBe(false);
|
|
465
|
-
expect(callControl.mute).not.toHaveBeenCalled();
|
|
466
|
-
expect(muteResult).resolves.toBe(undefined);
|
|
467
|
-
});
|
|
468
|
-
});
|
|
469
|
-
describe('setHold', () => {
|
|
470
|
-
it('properly sends the event to the headset and updates the state', () => {
|
|
471
|
-
jabraService.callLock = true;
|
|
472
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
473
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
474
|
-
jabraService.callControl = callControl;
|
|
475
|
-
jabraService.setHold('123', true);
|
|
476
|
-
expect(jabraService.isHeld).toBe(true);
|
|
477
|
-
expect(callControl.hold).toHaveBeenCalledWith(true);
|
|
478
|
-
jabraService.setHold('123', false);
|
|
479
|
-
expect(jabraService.isHeld).toBe(false);
|
|
480
|
-
expect(callControl.hold).toHaveBeenCalledWith(false);
|
|
481
|
-
});
|
|
482
|
-
it('does not do anything if we dont own the callLock', () => {
|
|
483
|
-
jabraService.callLock = false;
|
|
484
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
485
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
486
|
-
jabraService.callControl = callControl;
|
|
487
|
-
const holdResult = jabraService.setHold('123', true);
|
|
488
|
-
expect(jabraService.isHeld).toBe(false);
|
|
489
|
-
expect(callControl.hold).not.toHaveBeenCalled();
|
|
490
|
-
expect(holdResult).resolves.toBe(undefined);
|
|
491
|
-
});
|
|
492
|
-
});
|
|
493
|
-
describe('disconnect', () => {
|
|
494
|
-
it('resets two connected flags after disconnecting', () => {
|
|
495
|
-
jabraService.isConnected = true;
|
|
496
|
-
jabraService.isConnecting = true;
|
|
497
|
-
const headsetEventSubscriptionSpy = jest.spyOn(jabraService['headsetEventSubscription'], 'unsubscribe');
|
|
498
|
-
jabraService.disconnect();
|
|
499
|
-
expect(headsetEventSubscriptionSpy).toHaveBeenCalled();
|
|
500
|
-
expect(jabraService.isConnecting).toBe(false);
|
|
501
|
-
expect(jabraService.isConnected).toBe(false);
|
|
502
|
-
});
|
|
503
|
-
});
|
|
504
|
-
describe('answerCall', () => {
|
|
505
|
-
it('sends answer call event to headset', () => {
|
|
506
|
-
jabraService.callLock = true;
|
|
507
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
508
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
509
|
-
jabraService.callControl = callControl;
|
|
510
|
-
jabraService.answerCall();
|
|
511
|
-
expect(callControl.offHook).toHaveBeenCalledWith(true);
|
|
512
|
-
});
|
|
513
|
-
it('does not do anything if we dont own the callLock', () => {
|
|
514
|
-
jabraService.callLock = false;
|
|
515
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
516
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
517
|
-
jabraService.callControl = callControl;
|
|
518
|
-
const answerCallResult = jabraService.answerCall();
|
|
519
|
-
expect(callControl.offHook).not.toHaveBeenCalled();
|
|
520
|
-
expect(answerCallResult).resolves.toBe(undefined);
|
|
521
|
-
});
|
|
522
|
-
});
|
|
523
|
-
describe('incomingCall', () => {
|
|
524
|
-
it('sends ring event based on flags after properly taking callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
525
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
526
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
527
|
-
jabraService.callControl = callControl;
|
|
528
|
-
const callInfo = {
|
|
529
|
-
conversationId: '123',
|
|
530
|
-
contactName: 'Lee Moriarty'
|
|
531
|
-
};
|
|
532
|
-
callControl.takeCallLock.mockResolvedValue(true);
|
|
533
|
-
yield jabraService.incomingCall(callInfo);
|
|
534
|
-
expect(jabraService.callLock).toBe(true);
|
|
535
|
-
expect(callControl.ring).toHaveBeenCalledWith(true);
|
|
536
|
-
}));
|
|
537
|
-
it('sends ring event based on flags after already having callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
538
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
539
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
540
|
-
jabraService.callControl = callControl;
|
|
541
|
-
const callInfo = {
|
|
542
|
-
conversationId: '456',
|
|
543
|
-
contactName: 'Adam Cole'
|
|
544
|
-
};
|
|
545
|
-
callControl.takeCallLock.mockImplementation(() => {
|
|
546
|
-
throw exceptionWithType('Trying to take the call lock, but it is already held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
547
|
-
});
|
|
548
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
549
|
-
yield jabraService.incomingCall(callInfo);
|
|
550
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to take the call lock, but it is already held!');
|
|
551
|
-
expect(callControl.ring).toHaveBeenCalledWith(true);
|
|
552
|
-
}));
|
|
553
|
-
it('handles unexpected error, unrelated to callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
554
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
555
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
556
|
-
jabraService.callControl = callControl;
|
|
557
|
-
const callInfo = {
|
|
558
|
-
conversationId: '789',
|
|
559
|
-
contactName: 'Gene Ween'
|
|
560
|
-
};
|
|
561
|
-
callControl.takeCallLock.mockImplementation(() => {
|
|
562
|
-
throw exceptionWithType('An actual error', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
563
|
-
});
|
|
564
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
565
|
-
yield jabraService.incomingCall(callInfo);
|
|
566
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'An actual error');
|
|
567
|
-
expect(callControl.ring).not.toHaveBeenCalled();
|
|
568
|
-
}));
|
|
569
|
-
});
|
|
570
|
-
describe('outgoingCall', () => {
|
|
571
|
-
it('sends offHook event after properly taking callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
572
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
573
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
574
|
-
jabraService.callControl = callControl;
|
|
575
|
-
callControl.takeCallLock.mockResolvedValue(true);
|
|
576
|
-
yield jabraService.outgoingCall();
|
|
577
|
-
expect(jabraService.callLock).toBe(true);
|
|
578
|
-
expect(callControl.offHook).toHaveBeenCalledWith(true);
|
|
579
|
-
}));
|
|
580
|
-
it('sends ring event while already in possession of callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
581
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
582
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
583
|
-
jabraService.callControl = callControl;
|
|
584
|
-
callControl.takeCallLock.mockImplementation(() => {
|
|
585
|
-
throw exceptionWithType('Trying to take the call lock, but it is already held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
586
|
-
});
|
|
587
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
588
|
-
yield jabraService.outgoingCall();
|
|
589
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to take the call lock, but it is already held!');
|
|
590
|
-
expect(callControl.offHook).toHaveBeenCalledWith(true);
|
|
591
|
-
}));
|
|
592
|
-
it('handles unexpected error, unrelated to callLock', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
593
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
594
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
595
|
-
jabraService.callControl = callControl;
|
|
596
|
-
callControl.takeCallLock.mockImplementation(() => {
|
|
597
|
-
throw exceptionWithType('An actual error', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
598
|
-
});
|
|
599
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
600
|
-
yield jabraService.outgoingCall();
|
|
601
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'An actual error');
|
|
602
|
-
expect(callControl.offHook).not.toHaveBeenCalled();
|
|
603
|
-
}));
|
|
604
|
-
});
|
|
605
|
-
describe('rejectCall', () => {
|
|
606
|
-
it('properly sends ring events and releases call lock', () => {
|
|
607
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
608
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
609
|
-
jabraService.callControl = callControl;
|
|
610
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
611
|
-
jabraService.callLock = true;
|
|
612
|
-
const jabraRejectCall = jabraService.rejectCall();
|
|
613
|
-
expect(callControl.ring).toHaveBeenCalledWith(false);
|
|
614
|
-
expect(callControl.releaseCallLock).toHaveBeenCalled();
|
|
615
|
-
expect(jabraService.callLock).toBe(false);
|
|
616
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
617
|
-
expect(jabraRejectCall).resolves.toReturn();
|
|
618
|
-
});
|
|
619
|
-
it('prints out message if not in possession of callLock', () => {
|
|
620
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
621
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
622
|
-
jabraService.callControl = callControl;
|
|
623
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
624
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
625
|
-
const jabraRejectCall = jabraService.rejectCall();
|
|
626
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Currently not in possession of the Call Lock; Cannot react to Device Actions');
|
|
627
|
-
expect(jabraService.callLock).toBe(false);
|
|
628
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
629
|
-
expect(jabraRejectCall).resolves.toReturn();
|
|
630
|
-
});
|
|
631
|
-
it('properly handles flow when in possession of callLock', () => {
|
|
632
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
633
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
634
|
-
jabraService.callControl = callControl;
|
|
635
|
-
jabraService.callLock = true;
|
|
636
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
637
|
-
throw exceptionWithType('Trying to release the call lock, but it is not held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
638
|
-
});
|
|
639
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
640
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
641
|
-
jabraService.rejectCall();
|
|
642
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to release the call lock, but it is not held!');
|
|
643
|
-
expect(jabraService.callLock).toBe(false);
|
|
644
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
645
|
-
});
|
|
646
|
-
it('properly handles error unrelated callLock', () => {
|
|
647
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
648
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
649
|
-
jabraService.callControl = callControl;
|
|
650
|
-
jabraService.callLock = true;
|
|
651
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
652
|
-
throw exceptionWithType('Something much worse', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
653
|
-
});
|
|
654
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
655
|
-
jabraService.rejectCall();
|
|
656
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'Something much worse');
|
|
657
|
-
});
|
|
658
|
-
});
|
|
659
|
-
describe('endCall', () => {
|
|
660
|
-
it('properly sends offHook events and releases call lock', () => {
|
|
661
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
662
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
663
|
-
jabraService.callControl = callControl;
|
|
664
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
665
|
-
jabraService.callLock = true;
|
|
666
|
-
const jabraEndCalls = jabraService.endCall('123', false);
|
|
667
|
-
expect(callControl.offHook).toHaveBeenCalledWith(false);
|
|
668
|
-
expect(callControl.releaseCallLock).toHaveBeenCalled();
|
|
669
|
-
expect(jabraService.callLock).toBe(false);
|
|
670
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
671
|
-
expect(jabraEndCalls).resolves.toReturn();
|
|
672
|
-
});
|
|
673
|
-
it('properly resolves if another call is already in place', () => {
|
|
674
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
675
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
676
|
-
jabraService.callControl = callControl;
|
|
677
|
-
const jabraEndCalls = jabraService.endCall('123', true);
|
|
678
|
-
expect(jabraEndCalls).resolves.toReturn();
|
|
679
|
-
expect(callControl.offHook).not.toHaveBeenCalled();
|
|
680
|
-
});
|
|
681
|
-
it('prints out message if not in possession of callLock', () => {
|
|
682
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
683
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
684
|
-
jabraService.callControl = callControl;
|
|
685
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
686
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
687
|
-
const jabraEndCalls = jabraService.endCall('123', false);
|
|
688
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Currently not in possession of the Call Lock; Cannot react to Device Actions');
|
|
689
|
-
expect(jabraService.callLock).toBe(false);
|
|
690
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
691
|
-
expect(jabraEndCalls).resolves.toReturn();
|
|
692
|
-
});
|
|
693
|
-
it('properly handles flow when in possession of callLock', () => {
|
|
694
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
695
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
696
|
-
jabraService.callControl = callControl;
|
|
697
|
-
jabraService.callLock = true;
|
|
698
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
699
|
-
throw exceptionWithType('Trying to release the call lock, but it is not held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
700
|
-
});
|
|
701
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
702
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
703
|
-
jabraService.endCall('123', false);
|
|
704
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to release the call lock, but it is not held!');
|
|
705
|
-
expect(jabraService.callLock).toBe(false);
|
|
706
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
707
|
-
});
|
|
708
|
-
it('properly handles error unrelated callLock', () => {
|
|
709
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
710
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
711
|
-
jabraService.callControl = callControl;
|
|
712
|
-
jabraService.callLock = true;
|
|
713
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
714
|
-
throw exceptionWithType('Something much worse', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
715
|
-
});
|
|
716
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
717
|
-
jabraService.endCall('123', false);
|
|
718
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'Something much worse');
|
|
719
|
-
});
|
|
720
|
-
});
|
|
721
|
-
describe('endAllCall', () => {
|
|
722
|
-
it('properly sends offHook events and releases call lock', () => {
|
|
723
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
724
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
725
|
-
jabraService.callControl = callControl;
|
|
726
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
727
|
-
jabraService.callLock = true;
|
|
728
|
-
const jabraEndCalls = jabraService.endAllCalls();
|
|
729
|
-
expect(callControl.offHook).toHaveBeenCalledWith(false);
|
|
730
|
-
expect(callControl.releaseCallLock).toHaveBeenCalled();
|
|
731
|
-
expect(jabraService.callLock).toBe(false);
|
|
732
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
733
|
-
expect(jabraEndCalls).resolves.toReturn();
|
|
734
|
-
});
|
|
735
|
-
it('prints out message if not in possession of callLock', () => {
|
|
736
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
737
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
738
|
-
jabraService.callControl = callControl;
|
|
739
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
740
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
741
|
-
const jabraEndCalls = jabraService.endAllCalls();
|
|
742
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Currently not in possession of the Call Lock; Cannot react to Device Actions');
|
|
743
|
-
expect(jabraService.callLock).toBe(false);
|
|
744
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
745
|
-
expect(jabraEndCalls).resolves.toReturn();
|
|
746
|
-
});
|
|
747
|
-
it('properly handles flow when in possession of callLock', () => {
|
|
748
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
749
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
750
|
-
jabraService.callControl = callControl;
|
|
751
|
-
jabraService.callLock = true;
|
|
752
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
753
|
-
throw exceptionWithType('Trying to release the call lock, but it is not held!', jabra_js_1.ErrorType.SDK_USAGE_ERROR);
|
|
754
|
-
});
|
|
755
|
-
const infoLoggerSpy = jest.spyOn(jabraService.logger, 'info');
|
|
756
|
-
const resetStateSpy = jest.spyOn(jabraService, 'resetState');
|
|
757
|
-
jabraService.endAllCalls();
|
|
758
|
-
expect(infoLoggerSpy).toHaveBeenCalledWith('Trying to release the call lock, but it is not held!');
|
|
759
|
-
expect(jabraService.callLock).toBe(false);
|
|
760
|
-
expect(resetStateSpy).toHaveBeenCalled();
|
|
761
|
-
});
|
|
762
|
-
it('properly handles error unrelated callLock', () => {
|
|
763
|
-
const deviceSignalsSubject = new rxjs_1.Subject();
|
|
764
|
-
const callControl = createMockCallControl(deviceSignalsSubject.asObservable());
|
|
765
|
-
jabraService.callControl = callControl;
|
|
766
|
-
jabraService.callLock = true;
|
|
767
|
-
callControl.releaseCallLock.mockImplementation(() => {
|
|
768
|
-
throw exceptionWithType('Something much worse', jabra_js_1.ErrorType.UNEXPECTED_ERROR);
|
|
769
|
-
});
|
|
770
|
-
const errorLoggerSpy = jest.spyOn(jabraService.logger, 'error');
|
|
771
|
-
jabraService.endAllCalls();
|
|
772
|
-
expect(errorLoggerSpy).toHaveBeenCalledWith(jabra_js_1.ErrorType.UNEXPECTED_ERROR, 'Something much worse');
|
|
773
|
-
});
|
|
774
|
-
});
|
|
775
|
-
describe('deviceInfo', () => {
|
|
776
|
-
it('should return null if activeDeviceId is null', () => {
|
|
777
|
-
jabraService.devices.set(testDevice1.deviceName, testDevice1);
|
|
778
|
-
jabraService.activeDeviceId = null;
|
|
779
|
-
const result = jabraService.deviceInfo;
|
|
780
|
-
expect(result).toBeNull();
|
|
781
|
-
});
|
|
782
|
-
it('should return null if there are no devices registered', () => {
|
|
783
|
-
jabraService.activeDeviceId = 'foobar';
|
|
784
|
-
const result = jabraService.deviceInfo;
|
|
785
|
-
expect(result).toBeNull();
|
|
786
|
-
});
|
|
787
|
-
it('should return a device when it is registered and matches the activeDeviceId', () => {
|
|
788
|
-
jabraService.activeDeviceId = testDevice1.deviceName;
|
|
789
|
-
jabraService.devices.set(testDevice1.deviceName, testDevice1);
|
|
790
|
-
jabraService.devices.set(testDevice2.deviceName, testDevice2);
|
|
791
|
-
const result = jabraService.deviceInfo;
|
|
792
|
-
expect(result).toBe(testDevice1);
|
|
793
|
-
});
|
|
794
|
-
});
|
|
795
|
-
describe('deviceName', () => {
|
|
796
|
-
it('should return the deviceName of the active device', () => {
|
|
797
|
-
populateDevices(jabraService);
|
|
798
|
-
jabraService.activeDeviceId = testDevice1.deviceName;
|
|
799
|
-
expect(jabraService.deviceName).toEqual(testDevice1.deviceName);
|
|
800
|
-
});
|
|
801
|
-
});
|
|
802
|
-
describe('isDeviceAttached', () => {
|
|
803
|
-
it('should return true if the the device is in the devices list is the activeDeviceId', () => {
|
|
804
|
-
populateDevices(jabraService);
|
|
805
|
-
jabraService.activeDeviceId = testDevice1.deviceName;
|
|
806
|
-
expect(jabraService.isDeviceAttached).toEqual(true);
|
|
807
|
-
});
|
|
808
|
-
it('should return false if the the device is NOT in the devices list is the activeDeviceId', () => {
|
|
809
|
-
populateDevices(jabraService);
|
|
810
|
-
jabraService.activeDeviceId = 'Imaginary Device';
|
|
811
|
-
expect(jabraService.isDeviceAttached).toEqual(false);
|
|
812
|
-
});
|
|
813
|
-
});
|
|
814
|
-
describe('isSupported', () => {
|
|
815
|
-
it('should return true if proper values are met', () => {
|
|
816
|
-
expect(jabraService.isSupported()).toBe(true);
|
|
817
|
-
});
|
|
818
|
-
it('should return false if proper values are not met', () => {
|
|
819
|
-
Object.defineProperty(window, '_HostedContextFunctions', { get: () => true });
|
|
820
|
-
expect(jabraService.isSupported()).toBe(false);
|
|
821
|
-
});
|
|
822
|
-
});
|
|
823
|
-
describe('isDeviceInList', () => {
|
|
824
|
-
it('should return false if device is undefined', () => {
|
|
825
|
-
expect(jabraService.isDeviceInList(undefined, 'Test Label 123')).toBe(false);
|
|
826
|
-
});
|
|
827
|
-
it('should return false if name within device is undefined', () => {
|
|
828
|
-
const testDevice = {
|
|
829
|
-
type: "Test",
|
|
830
|
-
id: '123'
|
|
831
|
-
};
|
|
832
|
-
expect(jabraService.isDeviceInList(testDevice, 'Test Label 123')).toBe(false);
|
|
833
|
-
});
|
|
834
|
-
it('should return true if all expected values are present and the label matches', () => {
|
|
835
|
-
const testDevice = {
|
|
836
|
-
type: "Test",
|
|
837
|
-
id: '123',
|
|
838
|
-
name: 'Test Label 123'
|
|
839
|
-
};
|
|
840
|
-
expect(jabraService.isDeviceInList(testDevice, 'test label 123')).toBe(true);
|
|
841
|
-
});
|
|
842
|
-
});
|
|
843
|
-
});
|
|
844
|
-
//# sourceMappingURL=jabra.test.js.map
|