UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

266 lines (193 loc) 7.96 kB
import { MESSAGES } from "../../config/messages"; import { LablebClient } from "../lableb-client/lableb-client"; describe('Test Auth', () => { test('recommend at lableb cloud without api key', async () => { try { const lablebClient = LablebClient({ platformName: process.env.PLATFORM_NAME, }); await lablebClient.recommend({ id: '1' }); } catch (error) { expect(error.message).toEqual(MESSAGES.API_KEY_IS_REQUIRED); } }); }); describe('Test Recommend Request', () => { test('Recommend at lableb cloud', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); const { code, response, time } = await lablebClient.recommend({ id: 1, }); expect(code).toBe(200); expect(time).toBeGreaterThan(0); expect(response.results.length).toBeGreaterThanOrEqual(0); expect(response.found_documents).toBeGreaterThanOrEqual(0); expect(typeof response.facets).toEqual('object'); }); test('Recommend at lableb cloud with all optional options', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); const { code, response, time } = await lablebClient.recommend({ id: 1, limit: 2, sessionId: '92492mfa', sort: 'title asc', userId: '42', userIp: '172.65.23.22', userCountry: 'AE', title: 'title', url: 'https://example.com' }); expect(code).toBe(200); expect(time).toBeGreaterThan(0); expect(response.results.length).toBeGreaterThanOrEqual(0); expect(response.found_documents).toBeGreaterThanOrEqual(0); expect(typeof response.facets).toEqual('object'); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('92492mfa'); expect(response.results[0].feedback.userId).toEqual('42'); expect(response.results[0].feedback.userIp).toEqual('172.65.23.22'); expect(response.results[0].feedback.userCountry).toEqual('AE'); } }); test('Recommend at lableb cloud with all optional options Overridden', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, userCountry: 'AE', userIp: '172.65.23.22', }); const { code, response, time } = await lablebClient.recommend({ id: 1, limit: 2, sessionId: '92492mfa', sort: 'title asc', userId: '42', userCountry: 'US', title: 'title', url: 'https://example.com' }); expect(code).toBe(200); expect(time).toBeGreaterThan(0); expect(response.results.length).toBeGreaterThanOrEqual(0); expect(response.found_documents).toBeGreaterThanOrEqual(0); expect(typeof response.facets).toEqual('object'); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('92492mfa'); expect(response.results[0].feedback.userId).toEqual('42'); expect(response.results[0].feedback.userIp).toEqual('172.65.23.22'); expect(response.results[0].feedback.userCountry).toEqual('US'); } }); test('Recommend at lableb cloud with session id generator 1', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.recommend({ id: 1, }); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('92492mfa'); } }); test('Recommend at lableb cloud with session id generator 2', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.recommend({ id: 1, sessionIdGenerator: () => 'AAA' }); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('AAA'); } }); test('Recommend at lableb cloud with session id generator 3', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.recommend({ id: 1, sessionIdGenerator: () => 'AAA', sessionId: 'BBB' }); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('BBB'); } }); test('Recommend at lableb cloud with feedback', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); const { code, response, time } = await lablebClient.recommend({ id: 3, }); expect(code).toBe(200); expect(time).toBeGreaterThan(0); expect(response.results.length).toBeGreaterThanOrEqual(0); expect(response.found_documents).toBeGreaterThanOrEqual(0); expect(typeof response.facets).toEqual('object'); if (response.results.length) { expect(response.results[0]).toHaveProperty('feedback'); expect(response.results[0].feedback.sourceId).toEqual(3); expect(response.results[0].feedback.targetId).toEqual(response.results[0].id); const feedbackResponse = await lablebClient.feedback.recommend.single({ documentFeedback: response.results[0].feedback, }); expect(feedbackResponse.code).toBe(200); expect(feedbackResponse.time).toBeGreaterThan(0); expect(feedbackResponse.response).toBeNull(); } }); }); describe('Bad Inputs', () => { test('Recommend at lableb cloud with no query', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); await lablebClient.recommend({ id: '', }); } catch (error) { expect(error.message).toEqual(MESSAGES.DOCUMENT_ID_IS_REQUIRED); } }); test('Recommend at lableb cloud with bad session id generator 1', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => 35535 as any, }); } catch (error) { expect(error.message).toEqual(MESSAGES.SESSION_ID_GENERATOR_TYPE_ERROR); } }); test('Recommend at lableb cloud with bad session id generator 2', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: 'AAA' as any, }); } catch (error) { expect(error.message).toEqual(MESSAGES.SESSION_ID_GENERATOR_TYPE_ERROR); } }); });