UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

333 lines (238 loc) 10.1 kB
import {LablebClient } from '../../core/lableb-client/lableb-client'; import { MESSAGES } from '../../config/messages'; describe('Test Auth', () => { test('autocomplete at lableb cloud without api key', async () => { try { const lablebClient = LablebClient({ platformName: process.env.PLATFORM_NAME, }); await lablebClient.autocomplete({ query: '*', }); } catch (error) { expect(error.message).toEqual(MESSAGES.API_KEY_IS_REQUIRED); } }); }); describe('Test Autocomplete Request', () => { test('Autocomplete at lableb cloud', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello' }); 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('Autocomplete 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.autocomplete({ query: 'hello', limit: 2, sessionId: '92492mfa', sort: 'title asc', userId: '42', userIp: '172.65.23.22', userCountry: 'AE', }); 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('Autocomplete at lableb cloud with global feedback options', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionId: '92492mfa', userId: '42', userIp: '172.65.23.22', userCountry: 'AE', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', limit: 2, sort: 'title asc', }); 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('Autocomplete at lableb cloud with global feedback options | session generator', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', }); 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'); } }); test('Autocomplete at lableb cloud with global feedback options | session generator 2', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', sessionIdGenerator: () => 'ABABABA', }); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('ABABABA'); } }); test('Autocomplete at lableb cloud with global feedback options | session generator 3', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', sessionIdGenerator: () => 'ABABABA', sessionId: 'CCC' }); if (response.results.length) { expect(response.results[0].feedback.sessionId).toEqual('CCC'); } }); test('Autocomplete at lableb cloud with global feedback options | session generator 2', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => '92492mfa', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', sessionId: 'ABABABA' }); 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('ABABABA'); } }); test('Autocomplete at lableb cloud with global feedback options overridden', async () => { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionId: '92492mfa', userId: '42', userIp: '172.65.23.22', userCountry: 'AE', }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', limit: 2, sort: 'title asc', userCountry: 'SA', }); 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('SA'); } }); test('Autocomplete 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.autocomplete({ query: 'hello' }); 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.itemId).toEqual(response.results[0].id); const feedbackResponse = await lablebClient.feedback.autocomplete.single({ documentFeedback: response.results[0].feedback, }); expect(feedbackResponse.code).toBe(200); expect(feedbackResponse.time).toBeGreaterThan(0); expect(feedbackResponse.response).toBeNull(); } }); }); describe('Bad Inputs', () => { test('Autocomplete at lableb cloud with no query', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, }); await lablebClient.search({ query: '', }); } catch (error) { expect(error.message).toEqual(MESSAGES.QUERY_IS_REQUIRED); } }); test('test bad session generator', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: () => 424 as any, }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', }); } catch (error) { expect(error.message).toEqual(MESSAGES.SESSION_ID_GENERATOR_TYPE_ERROR); } }); test('test bad session generator 2', async () => { try { const lablebClient = LablebClient({ APIKey: process.env.API_KEY, platformName: process.env.PLATFORM_NAME, sessionIdGenerator: '24284' as any, }); const { code, response, time } = await lablebClient.autocomplete({ query: 'hello', }); } catch (error) { expect(error.message).toEqual(MESSAGES.SESSION_ID_GENERATOR_TYPE_ERROR); } }); });