Skip to content

Commit 61ee61f

Browse files
authored
Allow 0 (zero) and "" (empty string) to be returned as string. (#39)
* Allow 0 (zero) and "" (empty string) to be returned as a string. * Add unit tests for Record
1 parent 389e9fa commit 61ee61f

File tree

2 files changed

+60
-2
lines changed

2 files changed

+60
-2
lines changed

src/record.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ class Record {
3838
index = this._header.indexOf(key);
3939
}
4040

41-
if (this._values[index]) {
42-
return this._values[index].toString();
41+
let value = this._values[index];
42+
if (value !== undefined && value !== null) {
43+
return value.toString();
4344
}
4445

4546
return null;

test/recordTest.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
"use strict";
2+
const assert = require("assert"),
3+
Record = require("../src/record");
4+
5+
describe("Record Test", () => {
6+
describe('getString()', () => {
7+
const recordUnderTest = new Record([
8+
"key",
9+
"keyForEmptyString",
10+
"keyForZero",
11+
"keyForTwelve",
12+
"keyForNullValue"
13+
], [
14+
"valueForKey",
15+
"",
16+
0,
17+
12,
18+
null
19+
]);
20+
21+
context('key is not given', () => {
22+
it('returns null', () => {
23+
assert.equal(recordUnderTest.getString(), null);
24+
});
25+
});
26+
context('key is undefined', () => {
27+
it('returns null', () => {
28+
assert.equal(recordUnderTest.getString(undefined), null);
29+
});
30+
});
31+
context('value is empty string', () => {
32+
it('returns empty string', () => {
33+
assert.equal(recordUnderTest.getString('keyForEmptyString'), '');
34+
});
35+
});
36+
context('value is zero (0)', () => {
37+
it('returns zero (0) as string', () => {
38+
assert.equal(recordUnderTest.getString('keyForZero'), '0');
39+
});
40+
});
41+
context('value is non-zero integer', () => {
42+
it('returns non-zero integer as string', () => {
43+
assert.equal(recordUnderTest.getString('keyForTwelve'), '12');
44+
});
45+
});
46+
context('value is string', () => {
47+
it('returns value', () => {
48+
assert.equal(recordUnderTest.getString('key'), 'valueForKey');
49+
});
50+
});
51+
context('value is null', () => {
52+
it('returns null', () => {
53+
assert.equal(recordUnderTest.getString('keyForNullValue'), null);
54+
});
55+
});
56+
});
57+
});

0 commit comments

Comments
 (0)