@securecall/client-component
Version:
SecureCall Core Web Component
75 lines (74 loc) • 2.38 kB
JavaScript
export class MockSecureCallClientAPI {
apiLocation;
eventListeners = {};
debug = false;
constructor(apiLocation) {
this.apiLocation = apiLocation;
}
addEventListener(event, callback) {
if (!this.eventListeners[event]) {
this.eventListeners[event] = [];
}
this.eventListeners[event].push(callback);
}
removeEventListener(event, callback) {
if (this.eventListeners[event]) {
this.eventListeners[event] = this.eventListeners[event].filter(cb => cb !== callback);
}
}
dispatchEvent(event, data) {
if (this.eventListeners[event]) {
this.eventListeners[event].forEach(callback => callback(data));
}
}
async authenticate(username, password, useCookie) {
console.log('authenticate', username, password, useCookie);
if (username === 'testuser' && password === 'password') {
this.dispatchEvent('authentication', { success: true });
return Promise.resolve();
}
else if (username === 'throw' && password === 'error') {
throw new Error('test error');
}
else if (username === undefined && password === undefined && useCookie === undefined) {
throw new Error('bad parameters');
}
else {
this.dispatchEvent('authentication', {
success: false,
reason: 'Invalid credentials',
code: 401
});
return Promise.resolve();
}
}
async logout() {
return Promise.resolve();
}
async secure() {
this.dispatchEvent('session', { state: 'securing' });
setTimeout(() => {
this.dispatchEvent('session', {
state: 'collection',
call_data: { state: 'secured' },
secure_data: {}
});
}, 100);
}
async telephony(_data) {
return Promise.resolve();
}
async connect() {
return Promise.resolve();
}
async reset(v) {
console.log('%%%%%%%%%%% reset', v);
if (Array.isArray(v) && v.includes('expiry'))
throw new Error('Reset failed');
}
async submit(_data) {
return Promise.resolve();
}
disconnect() { }
}
//# sourceMappingURL=secure-call-client-api.mock.js.map