tests/api/search.ts
/* eslint-disable no-unused-vars */
import {ExpressionForAdding} from '../../server/model/ideas/expression';
import * as ApiUtils from '../utils/api-utils';
beforeEach(async () => {
await ApiUtils.changeDatabaseToMemoryAndDeleteEverything();
});
describe('searching expressions', () => {
test('searching for expressions in a language', async () => {
const fr = await ApiUtils.addLanguage('français');
const en = await ApiUtils.addLanguage('anglais');
const es = await ApiUtils.addLanguage('español');
const fr1: ExpressionForAdding = {text: 'fr lorem ipsum', languageId: fr.id, known: true};
const en1: ExpressionForAdding = {text: 'en lorem ipsum', languageId: en.id};
const es1: ExpressionForAdding = {text: 'es lorem ipsum', languageId: es.id};
const fr2: ExpressionForAdding = {text: 'fr ipsum sed', languageId: fr.id};
const en2: ExpressionForAdding = {text: 'en ipsum sed', languageId: en.id};
const fr3: ExpressionForAdding = {text: 'fr ipsum sed dolor', languageId: fr.id};
const i1 = await ApiUtils.addIdea({ee: [fr1, en1, es1]});
const i2 = await ApiUtils.addIdea({ee: [fr2, en2]});
const i3 = await ApiUtils.addIdea({ee: [fr3]});
const results = await ApiUtils.getExpressions();
expect(results).toHaveLength(6);
expect(results).toEqual([
{
ideaId: 1,
languageName: 'français',
text: 'fr lorem ipsum',
known: 'Known',
},
{
ideaId: 1,
languageName: 'anglais',
text: 'en lorem ipsum',
known: 'Unknown',
},
{
ideaId: 1,
languageName: 'español',
text: 'es lorem ipsum',
known: 'Unknown',
},
{
ideaId: 2,
languageName: 'français',
text: 'fr ipsum sed',
known: 'Unknown',
},
{
ideaId: 2,
languageName: 'anglais',
text: 'en ipsum sed',
known: 'Unknown',
},
{
ideaId: 3,
languageName: 'français',
text: 'fr ipsum sed dolor',
known: 'Unknown',
},
]);
});
});