Bonjour,

Avec les test unitaires en JS -> Jasmine,

Je voudrait tester ma fonction qui fait des requêtes sur l'api de google.

Je sais pas trop comment mocker cette partie là?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
function translate() {
return translate
            .translate(input,lang)
            .then(results => {
                const translation = results[0];
                console.log(`Text: ${input}`);
                console.log(`Translation: ${translation}`);
                return translation;
            })
            .catch(err => {
                console.log('ERROR:',err);
            })
        ;
}
avec comme import:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
import * as Translate from '@google-cloud/translate';
voici ce que je fait mais ca ne teste pas le type et la valeur de retour
absence total de mocker sur cette partie là:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
describe('getTranslate function', () => {
        let input = 'Hello World';
        let lang = 'fr';
        let projectId = "my-project-id";
        let googleTrans = null;
 
        beforeEach(function() {
            googleTrans = new GoogleTranslate({
                projectId: projectId
            });
            spyOn(translation, 'getTranslation').and.callFake((args, action) => {
                //je ne sais pas quoi retourner à cet endroit
                return;
            });
        });
        it('should be called', () => {
            translation.getTranslation(input, lang, googleTrans);
            expect(translation.getTranslation).toHaveBeenCalled();
        })
 
    });
Merci.