Skip to content
This repository was archived by the owner on Jan 7, 2021. It is now read-only.

Commit 9f7e2ed

Browse files
committed
convert coerce tests to lab
1 parent 426b1d2 commit 9f7e2ed

File tree

2 files changed

+44
-36
lines changed

2 files changed

+44
-36
lines changed

test/test-coerce.js

Lines changed: 0 additions & 36 deletions
This file was deleted.

test/test.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,50 @@ describe('xml2json', function () {
106106
expect(throws).to.throw();
107107
done();
108108
});
109+
110+
describe('coercion', function () {
111+
112+
var file = __dirname + '/fixtures/coerce.xml';
113+
var data = fs.readFileSync(file);
114+
115+
it('works with coercion', function(done) {
116+
117+
// With coercion
118+
var result = parser.toJson(data, {reversible: true, coerce: true, object: true});
119+
expect(result.itemRecord.value[0].longValue['$t']).to.equal(12345);
120+
expect(result.itemRecord.value[1].stringValue.number).to.equal(false);
121+
expect(result.itemRecord.value[2].moneyValue.number).to.equal(true);
122+
expect(result.itemRecord.value[2].moneyValue['$t']).to.equal(104.95);
123+
expect(result.itemRecord.value[2].moneyValue.text).to.equal(123.45);
124+
expect(result.itemRecord.value[8].text['$t']).to.equal(42.42);
125+
done();
126+
});
127+
128+
it('works without coercion', function(done) {
129+
130+
var result = parser.toJson(data, {reversible: true, coerce: false, object: true});
131+
expect(result.itemRecord.value[0].longValue['$t']).to.equal('12345');
132+
expect(result.itemRecord.value[1].stringValue.number).to.equal('false');
133+
expect(result.itemRecord.value[2].moneyValue.number).to.equal('true');
134+
expect(result.itemRecord.value[2].moneyValue['$t']).to.equal('104.95');
135+
expect(result.itemRecord.value[2].moneyValue.text).to.equal('123.45');
136+
expect(result.itemRecord.value[8].text['$t']).to.equal('42.42');
137+
done();
138+
});
139+
140+
it('works with coercion as an optional object', function(done) {
141+
142+
var result = parser.toJson(data, {reversible: true, coerce: {text:String}, object: true});
143+
expect(result.itemRecord.value[0].longValue['$t']).to.equal(12345);
144+
expect(result.itemRecord.value[1].stringValue.number).to.equal(false);
145+
expect(result.itemRecord.value[2].moneyValue.number).to.equal(true);
146+
expect(result.itemRecord.value[2].moneyValue['$t']).to.equal(104.95);
147+
expect(result.itemRecord.value[2].moneyValue.text).to.equal('123.45');
148+
expect(result.itemRecord.value[8].text['$t']).to.equal('42.42');
149+
done();
150+
});
151+
})
152+
109153
});
110154

111155

0 commit comments

Comments
 (0)