Skip to content

Commit 53423df

Browse files
author
Simon Tokumine
committed
stringArrayParser can parse empty arrays & stringArrayParser tests
1 parent caa2dce commit 53423df

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

lib/types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ var parseIntegerArray = function(val) {
6363

6464
var parseStringArray = function(val) {
6565
if (!val) return null;
66+
if (val === '{}') return [];
6667
if (val[0] !== '{' || val[val.length-1] !== '}')
6768
throw "Not postgresql array! (" + arrStr + ")";
6869

test/unit/client/query-tests.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var helper = require(__dirname + '/test-helper');
22
var q = {};
33
q.dateParser = require(__dirname + "/../../../lib/types").getStringTypeParser(1114);
4+
q.stringArrayParser = require(__dirname + "/../../../lib/types").getStringTypeParser(1009);
45

56
test("testing dateParser", function() {
67
assert.equal(q.dateParser("2010-12-11 09:09:04").toUTCString(),new Date("2010-12-11 09:09:04 GMT").toUTCString());
@@ -36,3 +37,32 @@ test("testing 2dateParser", function() {
3637
assert.equal(JSON.stringify(q.dateParser(actual)),expected);
3738
});
3839

40+
test("testing empty array", function(){
41+
var input = '{}';
42+
var expected = [];
43+
assert.deepEqual(q.stringArrayParser(input), expected);
44+
});
45+
46+
test("testing empty string array", function(){
47+
var input = '{""}';
48+
var expected = [""];
49+
assert.deepEqual(q.stringArrayParser(input), expected);
50+
});
51+
52+
test("testing numeric array", function(){
53+
var input = '{1,2,3,4}';
54+
var expected = [1,2,3,4];
55+
assert.deepEqual(q.stringArrayParser(input), expected);
56+
});
57+
58+
test("testing stringy array", function(){
59+
var input = '{a,b,c,d}';
60+
var expected = ['a','b','c','d'];
61+
assert.deepEqual(q.stringArrayParser(input), expected);
62+
});
63+
64+
test("testing NULL array", function(){
65+
var input = '{NULL,NULL}';
66+
var expected = [null,null];
67+
assert.deepEqual(q.stringArrayParser(input), expected);
68+
});

0 commit comments

Comments
 (0)