import { HostName } from "../src/Independents/DNS/HostName.js" import { Resolve } from "../src/Independents/DNS/Resolve.js"; import { GetRouteAction, newBurpaPersistent, getLocalGateway } from "../src/Independents/DNS/datagram-router.js"; import { Datagram } from "../src/Independents/Datagram/datagram-types.js"; describe("burpanet", function () { it("should route", async () => { expect("test").toEqual("test"); }); }); // describe("burpanet", function () { // it("should route", async () => { // let browser = newBrowser(); // let datagram: Datagram = { // from: "me", // to: "bar.heads.com", // port: "default", // headers: {}, // body: null, // trail: [] // } // let action = GetRouteAction(browser, datagram); // expect(action.action).toEqual("connect"); // getLocalGateway(browser).upstream = ["gw.heads.com"]; // action = GetRouteAction(browser, datagram); // expect(action.action).toEqual("route"); // expect(action.transit).toEqual("gw.heads.com"); // let node = newNode(); // action = GetRouteAction(node, datagram); // expect(action.action).toEqual("inbox") // let parent = new HostName(datagram.to).parent; // node.hosts[parent].owned[datagram.to] = { // name: datagram.to, // type: "vagrant", // secret: "", // remoteInbox: [datagram], // registred: true, // gateway: "lina-gw.heads.com" // } // action = GetRouteAction(node, datagram); // expect(action.action).toEqual("route"); // expect(action.transit).toEqual("lina-gw.heads.com"); // }); // }); function newBrowser() { let state = newBurpaPersistent(); state.localGateway = "gw551"; state.hosts = { "gw551": { type: "gateway", nextReqno: 0, owned: {}, burpaport: ["burpasys", "default"], upstream: [], } } return state; } function newNode() { let state = newBurpaPersistent(); state.localGateway = "gw.heads.com"; state.rootGateway = "gw.heads.com"; state.rootHost = "heads.com"; state.hosts = { "gw.heads.com": { type: "gateway", nextReqno: 0, owned: {}, burpaport: ["burpasys", "default"], upstream: [], }, "heads.com": { type: "vagrant", nextReqno: 0, owned: { "gw.heads.com": { type: "gateway", registred: true, name: "gw.heads.com", secret: "", } }, burpaport: ["burpasys"], }, } return state; }