UNPKG

wa-chat-server

Version:

Watson Assistant powered chat server

131 lines (130 loc) 7.04 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SchemaValidatorTest = void 0; const index_1 = require("../../index"); const WAChatServerConfigMock_1 = require("../mock/WAChatServerConfigMock"); const ISessionConfig_1 = require("../../interface/ISessionConfig"); const SessionStorageFactoryMock_1 = require("../mock/SessionStorageFactoryMock"); class SchemaValidatorTest { constructor() { this.waChatServerConfig = new WAChatServerConfigMock_1.WAChatServerConfigMock(); } defaultStorageTest() { return __awaiter(this, void 0, void 0, function* () { const waChatServer = new index_1.WAChatServer(this.waChatServerConfig); it('default-no-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionA = yield waChatServer.startSession('A'); const storageName = sessionA.config.storageName; expect(storageName).toStrictEqual(ISessionConfig_1.SessionType.ProcessMemory); })); it('default-wrong-storage-name-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); try { yield waChatServer.startSession('A', { storageName: 'red' }); } catch (error) { expect(error).toBeInstanceOf(Error); } })); }); } oneCustomStorageTest() { return __awaiter(this, void 0, void 0, function* () { const mockStorage = 'mockStorage'; const waChatServer = new index_1.WAChatServer(this.waChatServerConfig); waChatServer.addSessionStorageFactory(mockStorage, new SessionStorageFactoryMock_1.SessionStorageFactoryMock()); it('one-storage-no-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionB = yield waChatServer.startSession('B'); const storageName = sessionB.config.storageName; expect(storageName).toStrictEqual(mockStorage); })); it('one-storage-wrong-storage-name-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); try { yield waChatServer.startSession('B', { storageName: 'red' }); } catch (error) { expect(error).toBeInstanceOf(Error); } })); it('one-storage-correct-storage-name-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionB = yield waChatServer.startSession('B', { storageName: mockStorage }); const storageName = sessionB.config.storageName; expect(storageName).toStrictEqual(mockStorage); })); }); } twoCustomStoragesTest() { return __awaiter(this, void 0, void 0, function* () { const mockStorageA = 'mockStorageA'; const mockStorageB = 'mockStorageB'; const waChatServer = new index_1.WAChatServer(this.waChatServerConfig); waChatServer.addSessionStorageFactory(mockStorageA, new SessionStorageFactoryMock_1.SessionStorageFactoryMock()); it('two-storages-same-name', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); try { waChatServer.addSessionStorageFactory(mockStorageA, new SessionStorageFactoryMock_1.SessionStorageFactoryMock()); } catch (error) { expect(error).toBeInstanceOf(Error); } })); waChatServer.addSessionStorageFactory(mockStorageB, new SessionStorageFactoryMock_1.SessionStorageFactoryMock(), true); it('two-storages-no-config', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionA = yield waChatServer.startSession('A'); const storageName = sessionA.config.storageName; expect(storageName).toStrictEqual(mockStorageB); })); it('two-storages-non-default', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionB = yield waChatServer.startSession('B', { storageName: mockStorageA }); const storageName = sessionB.config.storageName; expect(storageName).toStrictEqual(mockStorageA); })); }); } singleUseStoragesTest() { return __awaiter(this, void 0, void 0, function* () { const mockStorageA = 'mockStorageA'; const mockStorageB = 'mockStorageB'; const waChatServer = new index_1.WAChatServer(this.waChatServerConfig); waChatServer.addSessionStorageFactory(mockStorageA, new SessionStorageFactoryMock_1.SessionStorageFactoryMock({ allowForeignSessionIds: false })); it('disable-foreign-session-ids-on-storage', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionA = yield waChatServer.startSession('A'); const sessionId = sessionA.sessionId; expect(sessionId.length).toStrictEqual(16); })); waChatServer.addSessionStorageFactory(mockStorageB, new SessionStorageFactoryMock_1.SessionStorageFactoryMock(), true); it('disable-foreign-session-ids-on-session', () => __awaiter(this, void 0, void 0, function* () { expect.assertions(1); const sessionB = yield waChatServer.startSession('A', { allowForeignSessionIds: false }); const sessionId = sessionB.sessionId; expect(sessionId.length).toStrictEqual(16); })); }); } test() { return __awaiter(this, void 0, void 0, function* () { this.defaultStorageTest(); this.oneCustomStorageTest(); this.twoCustomStoragesTest(); this.singleUseStoragesTest(); }); } } exports.SchemaValidatorTest = SchemaValidatorTest; new SchemaValidatorTest().test();