diff --git a/packages/spanner/src/codec.js b/packages/spanner/src/codec.js index 9d4f2627677..2c2ed904331 100644 --- a/packages/spanner/src/codec.js +++ b/packages/spanner/src/codec.js @@ -26,6 +26,13 @@ var commonGrpc = require('@google-cloud/common-grpc'); var is = require('is'); function SpannerDate(value) { + if (arguments.length > 1) { + throw new TypeError([ + 'The spanner.date function accepts a Date object or a', + 'single argument parseable by Date\'s constructor.' + ].join(' ')); + } + if (is.undefined(value)) { value = new Date(); } diff --git a/packages/spanner/test/codec.js b/packages/spanner/test/codec.js index 625e7f5e27b..940b132bde0 100644 --- a/packages/spanner/test/codec.js +++ b/packages/spanner/test/codec.js @@ -43,6 +43,17 @@ describe('codec', function() { }); describe('SpannerDate', function() { + it('should choke on multiple arguments', function() { + var expectedErrorMessage = [ + 'The spanner.date function accepts a Date object or a', + 'single argument parseable by Date\'s constructor.' + ].join(' '); + + assert.throws(function() { + new codec.SpannerDate(2012, 3, 21); + }, new RegExp(expectedErrorMessage)); + }); + it('should create an instance from a string', function() { var spannerDate = new codec.SpannerDate('08-20-1969'); assert.strictEqual(spannerDate.value, '1969-08-20');