@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
333 lines (238 loc) • 10.1 kB
text/typescript
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);
}
});
});