UNPKG

xml2o

Version:

Helps you convert XML into an object for easy reading.

51 lines 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const fs_1 = require("fs"); const index_1 = require("./index"); const test = require("tape"); const index_2 = require("./node/index"); const testXMLFile = (0, path_1.join)((0, path_1.dirname)(__dirname), '/index.spec.xml'); const trim = (t) => t.replace(/(^\s*|\s*$)/g, ''); test('Convert string', async (assert) => { assert.plan(3); const node = await (0, index_1.convertString)((0, fs_1.readFileSync)(testXMLFile, 'utf-8')); assert.ok(node instanceof index_2.Node); assert.ok(node[0] instanceof index_2.Node); assert.equal(node.length, 5); }); test('Convert stream', async (assert) => { assert.plan(3); const node = await (0, index_1.convertStream)((0, fs_1.createReadStream)(testXMLFile)); assert.ok(node instanceof index_2.Node); assert.ok(node[0] instanceof index_2.Node); assert.equal(node.length, 5); }); test('Query', async (assert) => { assert.plan(8); const node = await (0, index_1.convertStream)((0, fs_1.createReadStream)(testXMLFile)); assert.equal(node.query('Foo').length, 3); assert.equal(node.query('ListTest')[0].query('Foo').length, 3); assert.equal(node.query('/QueryTest').length, 1); assert.equal(node.query('/QueryTest/A').length, 2); assert.equal(node.query('/Unknown').length, 0); assert.equal(node.query('B/A').length, 1); assert.equal(node.query('B/C').length, 2); assert.equal(node.query('A').length, 3); }); test('Text', async (assert) => { assert.plan(2); const node = await (0, index_1.convertStream)((0, fs_1.createReadStream)(testXMLFile)); assert.equal(trim(node.query('TextNodeTest')[0].text), 'Hello, Bob!'); assert.equal(trim(node.query('TextNodeInnerTest')[0].text), 'Hello, inner Bob!'); }); test('Attributes', async (assert) => { assert.plan(5); const node = await (0, index_1.convertStream)((0, fs_1.createReadStream)(testXMLFile)); assert.ok(node.query('Foo')[0].getAttributeNode('id') instanceof index_2.Attribute); assert.equal(node.query('Foo')[0].getAttribute('id'), "1"); assert.equal(node.query('Foo')[1].getAttribute('id'), "2"); assert.equal(node.query('Foo')[2].getAttribute('id'), "3"); assert.same(node.getAttributes(), { type: 'thing', bool: 'true' }); }); //# sourceMappingURL=index.spec.js.map