Skip to content

Commit

Permalink
Translate: Detect if array was used as input
Browse files Browse the repository at this point in the history
  • Loading branch information
landrito committed Aug 8, 2017
1 parent d0fe4db commit ca2adf8
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
6 changes: 4 additions & 2 deletions packages/translate/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ util.inherits(Translate, common.Service);
* });
*/
Translate.prototype.detect = function(input, callback) {
var inputIsArray = Array.isArray(input);
input = arrify(input);

this.request({
Expand All @@ -176,7 +177,7 @@ Translate.prototype.detect = function(input, callback) {
return result;
});

if (input.length === 1) {
if (input.length === 1 && !inputIsArray) {
results = results[0];
}

Expand Down Expand Up @@ -368,6 +369,7 @@ Translate.prototype.getLanguages = function(target, callback) {
* });
*/
Translate.prototype.translate = function(input, options, callback) {
var inputIsArray = Array.isArray(input);
input = arrify(input);

var body = {
Expand Down Expand Up @@ -407,7 +409,7 @@ Translate.prototype.translate = function(input, options, callback) {

var translations = resp.data.translations.map(prop('translatedText'));

if (body.q.length === 1) {
if (body.q.length === 1 && !inputIsArray) {
translations = translations[0];
}

Expand Down
18 changes: 18 additions & 0 deletions packages/translate/test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,16 @@ describe('Translate', function() {
done();
});
});

it('should return an array if input was an array', function(done) {
translate.detect([INPUT], function(err, results, apiResponse_) {
assert.ifError(err);
assert.deepEqual(results, [expectedResults]);
assert.strictEqual(apiResponse_, apiResponse);
assert.deepEqual(apiResponse_, originalApiResponse);
done();
});
});
});
});

Expand Down Expand Up @@ -494,6 +504,14 @@ describe('Translate', function() {
done();
});
});

it('should return an array if input was an array', function(done) {
translate.translate([INPUT], OPTIONS, function(err, translations) {
assert.ifError(err);
assert.deepEqual(translations, [expectedResults]);
done();
});
});
});
});

Expand Down

0 comments on commit ca2adf8

Please sign in to comment.