import fs from "fs"; import "mocha"; import should from "should"; import stream from "stream"; import zlib from "zlib"; import { XmlParser } from "../src/parser"; describe("wrong resourcePath", () => { it("should be able to detect the wrong resourcePath at root level.", (done) => { const xmlStream = fs.createReadStream("./test/TestFiles/item.xml"); const parser = new XmlParser({ resourcePath: "/wrong/noNodes", emitOnNodeName: true }); const actualData : string[] = []; const itemData : string[] = []; let dataEventCount = 0; let itemCount = 0; parser.on("data", (data) => { actualData.push(data); dataEventCount++; }); parser.on("item", (item) => { itemData.push(item); itemCount++; }); parser.on("error", (err) => { done(err); }); parser.on("end", () => { // console.log('actualData=', actualData) // console.log('dataEventCount=', dataEventCount) should(actualData.length).equal(0); should(dataEventCount).equal(0); should(itemData.length).equal(0); should(itemCount).equal(0); done(); }); xmlStream.pipe(parser); }); it("should be able to detect wrong resourcePath while parsing xml", (done) => { const xmlStream = fs.createReadStream("./test/TestFiles/manyItems.xml"); const parser = new XmlParser({ resourcePath: "/wrong/noNodes", emitOnNodeName: true }); let dataEventCount = 0; let itemCount = 0; parser.on("data", (data) => { dataEventCount++; }); parser.on("item", (data) => { itemCount++; }); parser.on("error", (err) => { done(err); }); parser.on("end", () => { // console.log('dataEventCount=', dataEventCount) should(dataEventCount).equal(0); should(itemCount).equal(0); done(); }); xmlStream.pipe(parser); }); it("should properly parse a huge file.", (done) => { const xmlStream = fs.createReadStream("./test/TestFiles/hugeFile.xml"); const parser = new XmlParser({ resourcePath: "/wrong/path", emitOnNodeName: true }); let dataEventCount = 0; let itemCount = 0; parser.on("data", (data) => { dataEventCount++; }); parser.on("item", (item) => { itemCount++; }); parser.on("error", (err) => { done(err); }); parser.on("end", () => { // console.log('dataEventCount=', dataEventCount) should(dataEventCount).equal(0); should(itemCount).equal(0); done(); }); xmlStream.pipe(parser); }); });