




























11// Bonjour tests cover ciao plugin behavior.
22import { describe, expect, it } from "vitest";
334-const { classifyCiaoUnhandledRejection, ignoreCiaoUnhandledRejection } = await import("./ciao.js");
4+const { classifyCiaoProcessError } = await import("./ciao.js");
5566describe("bonjour-ciao", () => {
77it("classifies ciao cancellation rejections separately from side effects", () => {
8-expect(classifyCiaoUnhandledRejection(new Error("CIAO PROBING CANCELLED"))).toEqual({
8+expect(classifyCiaoProcessError(new Error("CIAO PROBING CANCELLED"))).toEqual({
99kind: "cancellation",
1010formatted: "CIAO PROBING CANCELLED",
1111});
1212});
13131414it("classifies ciao interface assertions separately from side effects", () => {
1515expect(
16-classifyCiaoUnhandledRejection(
16+classifyCiaoProcessError(
1717new Error("Reached illegal state! IPV4 address change from defined to undefined!"),
1818),
1919).toEqual({
@@ -24,7 +24,7 @@ describe("bonjour-ciao", () => {
24242525it("classifies ciao interface assertions using changed wording", () => {
2626expect(
27-classifyCiaoUnhandledRejection(
27+classifyCiaoProcessError(
2828new Error("Reached illegal state! IPv4 address changed from undefined to defined!"),
2929),
3030).toEqual({
@@ -35,7 +35,7 @@ describe("bonjour-ciao", () => {
35353636it("classifies ciao netmask assertions separately from side effects", () => {
3737expect(
38-classifyCiaoUnhandledRejection(
38+classifyCiaoProcessError(
3939Object.assign(
4040new Error(
4141"IP address version must match. Netmask cannot have a version different from the address!",
@@ -52,7 +52,7 @@ describe("bonjour-ciao", () => {
52525353it("classifies ciao self-probe races separately from side effects", () => {
5454expect(
55-classifyCiaoUnhandledRejection(
55+classifyCiaoProcessError(
5656new Error(
5757"Can't probe for a service which is announced already. Received announcing for service OpenClaw Gateway._openclaw._tcp.local.",
5858),
@@ -65,18 +65,18 @@ describe("bonjour-ciao", () => {
6565});
66666767it("suppresses ciao announcement cancellation rejections", () => {
68-expect(ignoreCiaoUnhandledRejection(new Error("Ciao announcement cancelled by shutdown"))).toBe(
69-true,
68+expect(classifyCiaoProcessError(new Error("Ciao announcement cancelled by shutdown"))).not.toBe(
69+null,
7070);
7171});
72727373it("suppresses ciao probing cancellation rejections", () => {
74-expect(ignoreCiaoUnhandledRejection(new Error("CIAO PROBING CANCELLED"))).toBe(true);
74+expect(classifyCiaoProcessError(new Error("CIAO PROBING CANCELLED"))).not.toBe(null);
7575});
76767777it("suppresses wrapped ciao cancellation rejections", () => {
7878expect(
79-classifyCiaoUnhandledRejection({
79+classifyCiaoProcessError({
8080reason: new Error("CIAO ANNOUNCEMENT CANCELLED"),
8181}),
8282).toEqual({
@@ -87,7 +87,7 @@ describe("bonjour-ciao", () => {
87878888it("suppresses aggregate ciao assertion rejections", () => {
8989expect(
90-classifyCiaoUnhandledRejection(
90+classifyCiaoProcessError(
9191new AggregateError([
9292Object.assign(
9393new Error("Reached illegal state! IPV4 address change from defined to undefined!"),
@@ -103,7 +103,7 @@ describe("bonjour-ciao", () => {
103103});
104104105105it("suppresses lower-case string cancellation reasons too", () => {
106-expect(ignoreCiaoUnhandledRejection("ciao announcement cancelled during cleanup")).toBe(true);
106+expect(classifyCiaoProcessError("ciao announcement cancelled during cleanup")).not.toBe(null);
107107});
108108109109it("suppresses ciao interface assertion rejections as non-fatal", () => {
@@ -112,7 +112,7 @@ describe("bonjour-ciao", () => {
112112{ name: "AssertionError" },
113113);
114114115-expect(ignoreCiaoUnhandledRejection(error)).toBe(true);
115+expect(classifyCiaoProcessError(error)).not.toBe(null);
116116});
117117118118it("suppresses ciao netmask assertion errors as non-fatal", () => {
@@ -123,15 +123,15 @@ describe("bonjour-ciao", () => {
123123{ name: "AssertionError" },
124124);
125125126-expect(ignoreCiaoUnhandledRejection(error)).toBe(true);
126+expect(classifyCiaoProcessError(error)).not.toBe(null);
127127});
128128129129it("classifies networkInterfaces SystemError failures (restricted sandboxes)", () => {
130130const err = Object.assign(
131131new Error("A system error occurred: uv_interface_addresses returned Unknown system error 1"),
132132{ name: "SystemError" },
133133);
134-expect(classifyCiaoUnhandledRejection(err)).toEqual({
134+expect(classifyCiaoProcessError(err)).toEqual({
135135kind: "interface-enumeration-failure",
136136formatted:
137137"SystemError: A system error occurred: uv_interface_addresses returned Unknown system error 1",
@@ -144,10 +144,10 @@ describe("bonjour-ciao", () => {
144144{ name: "SystemError" },
145145);
146146const wrapper = new Error("ciao NetworkManager init failed", { cause: inner });
147-expect(ignoreCiaoUnhandledRejection(wrapper)).toBe(true);
147+expect(classifyCiaoProcessError(wrapper)).not.toBe(null);
148148});
149149150150it("keeps unrelated rejections visible", () => {
151-expect(ignoreCiaoUnhandledRejection(new Error("boom"))).toBe(false);
151+expect(classifyCiaoProcessError(new Error("boom"))).toBe(null);
152152});
153153});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。