From 800053516fddcd82cfcd741cf8baeddb71fee47b Mon Sep 17 00:00:00 2001 From: Jason Dobry Date: Fri, 21 Oct 2016 10:37:36 -0700 Subject: [PATCH] Bug fix - stop promisifying Job#promise and Operation#promise (#1732) --- packages/bigquery/system-test/bigquery.js | 11 +++++++++++ packages/common/src/util.js | 2 +- packages/common/test/util.js | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/bigquery/system-test/bigquery.js b/packages/bigquery/system-test/bigquery.js index f2e1a12653f..a61182ab274 100644 --- a/packages/bigquery/system-test/bigquery.js +++ b/packages/bigquery/system-test/bigquery.js @@ -471,6 +471,17 @@ describe('BigQuery', function() { }); }); + it('should import data from a file via promises', function() { + return table.import(file) + .then(function(results) { + return results[0].promise(); + }) + .then(function(results) { + var metadata = results[0]; + assert.strictEqual(metadata.status.state, 'DONE'); + }); + }); + it('should convert values to their schema types', function(done) { var data = { name: 'dave', diff --git a/packages/common/src/util.js b/packages/common/src/util.js index 3c33b784a1a..5df587c4b47 100644 --- a/packages/common/src/util.js +++ b/packages/common/src/util.js @@ -699,7 +699,7 @@ function promisifyAll(Class, options) { .keys(Class.prototype) .filter(function(methodName) { return is.fn(Class.prototype[methodName]) && // is it a function? - !/(^\_|(Stream|\_)$)/.test(methodName) && // is it public/non-stream? + !/(^\_|(Stream|\_)|promise$)/.test(methodName) && // is it promisable? exclude.indexOf(methodName) === -1; // is it blacklisted? }); diff --git a/packages/common/test/util.js b/packages/common/test/util.js index d670db02342..06c0076740d 100644 --- a/packages/common/test/util.js +++ b/packages/common/test/util.js @@ -1407,6 +1407,7 @@ describe('common/util', function() { FakeClass.prototype.method_ = util.noop; FakeClass.prototype._method = util.noop; FakeClass.prototype.methodStream = util.noop; + FakeClass.prototype.promise = util.noop; util.promisifyAll(FakeClass); instance = new FakeClass(); @@ -1420,6 +1421,7 @@ describe('common/util', function() { assert.strictEqual(FakeClass.prototype.method_, util.noop); assert.strictEqual(FakeClass.prototype._method, util.noop); assert.strictEqual(FakeClass.prototype.methodStream, util.noop); + assert.strictEqual(FakeClass.prototype.promise, util.noop); }); it('should optionally except an exclude list', function() {