|
13 | 13 |
|
14 | 14 | 'use strict'; |
15 | 15 |
|
| 16 | +var ISO6391 = require('iso-639-1'); |
16 | 17 | var program = require('../translate'); |
17 | | -var apiKey = process.env.TRANSLATE_API_KEY; |
| 18 | + |
18 | 19 | var text = 'Hello world!'; |
| 20 | +var toLang = 'ru'; |
19 | 21 |
|
20 | 22 | describe('translate:translate', function () { |
21 | 23 | if (!process.env.TRANSLATE_API_KEY) { |
22 | 24 | process.stdout.write('Skipping Translate API tests...\n'); |
23 | 25 | return; |
24 | 26 | } |
| 27 | + |
25 | 28 | describe('detectLanguage', function () { |
26 | 29 | it('should detect language', function (done) { |
27 | | - program.detectLanguage(text, apiKey, function (err, result) { |
28 | | - assert.ifError(err); |
29 | | - assert(result, 'should have received a result'); |
| 30 | + program.detectLanguage(text, function (err, result, apiResponse) { |
| 31 | + assert.equal(err, null); |
| 32 | + assert.notEqual(result, undefined); |
30 | 33 | assert.equal(result.language, 'en', 'should have detected english'); |
31 | | - assert(console.log.calledWith('Detected %s (%s) with confidence %d', 'English', 'en', result.confidence)); |
| 34 | + assert.equal(console.log.calledOnce, true); |
| 35 | + assert.deepEqual(console.log.firstCall.args, ['Detected language(s):', result]); |
| 36 | + assert.notEqual(apiResponse, undefined); |
32 | 37 | done(); |
33 | 38 | }); |
34 | 39 | }); |
35 | 40 | }); |
36 | 41 |
|
37 | 42 | describe('listLanguages', function () { |
38 | 43 | it('should list languages', function (done) { |
39 | | - program.listLanguages(apiKey, function (err, languages) { |
40 | | - assert.ifError(err); |
41 | | - assert(Array.isArray(languages)); |
42 | | - assert(languages.length > 0); |
43 | | - assert(console.log.calledWith('Found %d language(s)!', languages.length)); |
| 44 | + program.listLanguages(function (err, languages, apiResponse) { |
| 45 | + assert.equal(err, null); |
| 46 | + assert.equal(Array.isArray(languages), true); |
| 47 | + assert.equal(languages.length > 0, true); |
| 48 | + var matchingLanguages = languages.filter(function (language) { |
| 49 | + return language.code === 'af' && language.name === 'Afrikaans'; |
| 50 | + }); |
| 51 | + assert.equal(matchingLanguages.length, 1, 'found language with name in English'); |
| 52 | + assert.equal(console.log.calledOnce, true); |
| 53 | + assert.deepEqual(console.log.firstCall.args, ['Found %d language(s)!', languages.length]); |
| 54 | + assert.notEqual(apiResponse, undefined); |
| 55 | + done(); |
| 56 | + }); |
| 57 | + }); |
| 58 | + }); |
| 59 | + |
| 60 | + describe('listLanguagesWithTarget', function () { |
| 61 | + it('should list languages with a target', function (done) { |
| 62 | + program.listLanguagesWithTarget('es', function (err, languages, apiResponse) { |
| 63 | + assert.equal(err, null); |
| 64 | + assert.equal(Array.isArray(languages), true); |
| 65 | + assert.equal(languages.length > 0, true); |
| 66 | + var matchingLanguages = languages.filter(function (language) { |
| 67 | + return language.code === 'af' && language.name === 'afrikáans'; |
| 68 | + }); |
| 69 | + assert.equal(matchingLanguages.length, 1, 'found language with name in Spanish'); |
| 70 | + assert.equal(console.log.calledOnce, true); |
| 71 | + assert.deepEqual(console.log.firstCall.args, ['Found %d language(s)!', languages.length]); |
| 72 | + assert.notEqual(apiResponse, undefined); |
44 | 73 | done(); |
45 | 74 | }); |
46 | 75 | }); |
47 | 76 | }); |
48 | 77 |
|
49 | 78 | describe('translateText', function () { |
50 | 79 | it('should translate text', function (done) { |
51 | | - var options = { |
52 | | - text: text, |
53 | | - apiKey: apiKey, |
54 | | - to: 'ru' |
55 | | - }; |
56 | 80 | var expected = 'Привет мир!'; |
57 | 81 |
|
58 | | - program.translateText(options, function (err, translation) { |
59 | | - assert.ifError(err); |
| 82 | + program.translateText(text, toLang, undefined, function (err, translation, apiResponse) { |
| 83 | + assert.equal(err, null); |
60 | 84 | assert.equal(translation, expected); |
61 | | - assert(console.log.calledWith('Translated text to %s:', 'Russian')); |
| 85 | + assert.equal(console.log.calledOnce, true); |
| 86 | + assert.deepEqual(console.log.firstCall.args, ['Translated to %s:', ISO6391.getName(toLang)]); |
| 87 | + assert.notEqual(apiResponse, undefined); |
62 | 88 | done(); |
63 | 89 | }); |
64 | 90 | }); |
|
0 commit comments