emilepharand/Babilonia

View on GitHub
tests/api/search.ts

Summary

Maintainability
A
0 mins
Test Coverage
/* 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',
            },
        ]);
    });
});