import XMPPError from "@xmpp/error";
import SASLError from "./SASLError.js";
// https://xmpp.org/rfcs/rfc6120.html#rfc.section.6.4.5
// https://xmpp.org/rfcs/rfc6120.html#rfc.section.A.4
test("SASL", () => {
const nonza = (
);
const error = SASLError.fromElement(nonza);
expect(error instanceof Error).toBe(true);
expect(error instanceof XMPPError).toBe(true);
expect(error instanceof SASLError).toBe(true);
expect(error.name).toBe("SASLError");
expect(error.condition).toBe("not-authorized");
expect(error.text).toBe("");
});
test("SASL with text", () => {
const nonza = (
foo
);
expect(SASLError.fromElement(nonza).text).toBe("foo");
});
// https://xmpp.org/extensions/xep-0388.html#failure
// https://github.com/xsf/xeps/pull/1411
// https://xmpp.org/extensions/xep-0388.html#sect-idm46365286031040
test("SASL2", () => {
const nonza = (
);
const error = SASLError.fromElement(nonza);
expect(error instanceof Error).toBe(true);
expect(error instanceof XMPPError).toBe(true);
expect(error instanceof SASLError).toBe(true);
expect(error.name).toBe("SASLError");
expect(error.condition).toBe("aborted");
});
test("SASL2 with text and application", () => {
const application = (
);
const nonza = (
This is a terrible example.
{application}
);
const error = SASLError.fromElement(nonza);
expect(error.text).toBe("This is a terrible example.");
expect(error.application).toBe(application);
});