import ava from "ava";
import {
parseXmlDeclaration,
decodeEntities,
parseXml,
} from "../lib/xml-parser";
ava("parseXmlDeclaration", (t) => {
const buf = Buffer.from(
'\n'
);
const attrs = parseXmlDeclaration(buf);
t.deepEqual(attrs, [
{
name: "version",
namespace: "",
localName: "version",
value: "1.0",
},
{
name: "encoding",
namespace: "",
localName: "encoding",
value: "UTF-8",
},
]);
});
ava("decodeEntities", (t) => {
t.is(
decodeEntities("&&<>"'>§;"),
"&&<>\"'>§𠮷;"
);
});
ava("parse", (t) => {
const xml =
'\ni';
const parsed = parseXml(xml);
t.deepEqual(parsed, {
name: "root",
namespace: "",
localName: "root",
attrs: "",
text: "",
bodyIndex: 0,
children: [
{
name: "a-b:c",
namespace: "a-b",
localName: "c",
attrs: "",
text: "",
bodyIndex: 29,
children: [
{
name: "d",
namespace: "",
localName: "d",
attrs: 'f="1"',
text: "",
bodyIndex: 42,
children: [],
},
{
name: "h",
namespace: "",
localName: "h",
attrs: "",
text: "i",
bodyIndex: 62,
children: [],
},
],
},
],
});
});