import { expect } from "chai"; import "mocha"; import { ResponseParser } from "../src/responseparser.ts"; import { ResponseTemplateManager } from "../src/responsetemplatemanager.ts"; const rtm = ResponseTemplateManager.getInstance(); before(() => { rtm.addTemplate( "OK", rtm.generateTemplate("200", "Command completed successfully"), ); }); describe("ResponseParser namespace", function () { this.slow(1000); describe("#.serialize", () => { it("check return value [w/ PROPERTY]", () => { const r = rtm.getTemplate("OK").getHash(); r.PROPERTY = { DOMAIN: ["mydomain1.com", "mydomain2.com", "mydomain3.com"], RATING: ["1", "2", "3"], SUM: [3], }; expect(ResponseParser.serialize(r)).to.equal( "[RESPONSE]\r\nPROPERTY[DOMAIN][0]=mydomain1.com\r\nPROPERTY[DOMAIN][1]=mydomain2.com\r\nPROPERTY[DOMAIN][2]=mydomain3.com\r\nPROPERTY[RATING][0]=1\r\nPROPERTY[RATING][1]=2\r\nPROPERTY[RATING][2]=3\r\nPROPERTY[SUM][0]=3\r\nCODE=200\r\nDESCRIPTION=Command completed successfully\r\nEOF\r\n", ); }); it("check return value [w/o PROPERTY]", () => { const tpl = rtm.getTemplate("OK"); expect(ResponseParser.serialize(tpl.getHash())).to.equal(tpl.getPlain()); }); it("check return value [w/o CODE, w/o DESCRIPTION]", () => { // this case shouldn"t happen, otherwise we have an API-side issue const h = rtm.getTemplate("OK").getHash(); delete h.CODE; delete h.DESCRIPTION; expect(ResponseParser.serialize(h)).to.equal("[RESPONSE]\r\nEOF\r\n"); }); it("check return value [w/ QUEUETIME, w/ RUNTIME]", () => { const h = rtm.getTemplate("OK").getHash(); h.QUEUETIME = "0"; h.RUNTIME = "0.12"; expect(ResponseParser.serialize(h)).to.equal( "[RESPONSE]\r\nCODE=200\r\nDESCRIPTION=Command completed successfully\r\nQUEUETIME=0\r\nRUNTIME=0.12\r\nEOF\r\n", ); }); }); });