


























@@ -156,6 +156,16 @@ function requireRecord(value: unknown, label: string): Record<string, unknown> {
156156return value;
157157}
158158159+function requireSetupCheck(checks: unknown[] | undefined, id: string): Record<string, unknown> {
160+const check = checks
161+?.map((item) => requireRecord(item, "setup check"))
162+.find((item) => item.id === id);
163+if (!check) {
164+throw new Error(`Expected setup check ${id}`);
165+}
166+return check;
167+}
168+159169function requireFetchGuardCall(auditContext: string): Record<string, unknown> {
160170const call = (
161171fetchGuardMocks.fetchWithSsrFGuard.mock.calls as Array<[Record<string, unknown>]>
@@ -1739,21 +1749,12 @@ describe("google-meet plugin", () => {
17391749const result = await tool.execute("id", { action: "setup_status" });
1740175017411751expect(result.details.ok).toBe(false);
1742-expect(result.details.checks).toEqual(
1743-expect.arrayContaining([
1744-expect.objectContaining({
1745-id: "chrome-node-connected",
1746-ok: false,
1747-message: expect.stringContaining("parallels-macos"),
1748-}),
1749-]),
1750-);
1751-const check = result.details.checks?.find(
1752-(item) => (item as { id?: unknown }).id === "chrome-node-connected",
1753-) as { message?: string } | undefined;
1754-expect(check?.message).toContain("offline");
1755-expect(check?.message).toContain("missing googlemeet.chrome");
1756-expect(check?.message).toContain("missing browser.proxy/browser capability");
1752+const check = requireSetupCheck(result.details.checks, "chrome-node-connected");
1753+expect(check.ok).toBe(false);
1754+expect(check.message).toContain("parallels-macos");
1755+expect(check.message).toContain("offline");
1756+expect(check.message).toContain("missing googlemeet.chrome");
1757+expect(check.message).toContain("missing browser.proxy/browser capability");
17571758});
1758175917591760it("reports missing local Chrome audio prerequisites in setup status", async () => {
@@ -1781,15 +1782,9 @@ describe("google-meet plugin", () => {
17811782const result = await tool.execute("id", { action: "setup_status", transport: "chrome" });
1782178317831784expect(result.details.ok).toBe(false);
1784-expect(result.details.checks).toEqual(
1785-expect.arrayContaining([
1786-expect.objectContaining({
1787-id: "chrome-local-audio-device",
1788-ok: false,
1789-message: expect.stringContaining("BlackHole 2ch audio device not found"),
1790-}),
1791-]),
1792-);
1785+const check = requireSetupCheck(result.details.checks, "chrome-local-audio-device");
1786+expect(check.ok).toBe(false);
1787+expect(check.message).toContain("BlackHole 2ch audio device not found");
17931788} finally {
17941789Object.defineProperty(process, "platform", { value: originalPlatform });
17951790}
@@ -1823,15 +1818,9 @@ describe("google-meet plugin", () => {
18231818const result = await tool.execute("id", { action: "setup_status", transport: "chrome" });
1824181918251820expect(result.details.ok).toBe(false);
1826-expect(result.details.checks).toEqual(
1827-expect.arrayContaining([
1828-expect.objectContaining({
1829-id: "chrome-local-audio-commands",
1830-ok: false,
1831-message: "Chrome audio command missing: sox",
1832-}),
1833-]),
1834-);
1821+const check = requireSetupCheck(result.details.checks, "chrome-local-audio-commands");
1822+expect(check.ok).toBe(false);
1823+expect(check.message).toBe("Chrome audio command missing: sox");
18351824} finally {
18361825Object.defineProperty(process, "platform", { value: originalPlatform });
18371826}
@@ -1870,15 +1859,9 @@ describe("google-meet plugin", () => {
18701859const result = await tool.execute("id", { action: "setup_status", transport: "chrome" });
1871186018721861expect(result.details.ok).toBe(false);
1873-expect(result.details.checks).toEqual(
1874-expect.arrayContaining([
1875-expect.objectContaining({
1876-id: "chrome-local-audio-commands",
1877-ok: false,
1878-message: "Chrome audio command missing: missing-barge-capture",
1879-}),
1880-]),
1881-);
1862+const check = requireSetupCheck(result.details.checks, "chrome-local-audio-commands");
1863+expect(check.ok).toBe(false);
1864+expect(check.message).toBe("Chrome audio command missing: missing-barge-capture");
18821865} finally {
18831866Object.defineProperty(process, "platform", { value: originalPlatform });
18841867}
@@ -1912,14 +1895,10 @@ describe("google-meet plugin", () => {
19121895});
1913189619141897expect(result.details.ok).toBe(true);
1915-expect(result.details.checks).toEqual(
1916-expect.arrayContaining([
1917-expect.objectContaining({
1918-id: "audio-bridge",
1919-ok: true,
1920-message: "Chrome observe-only mode does not require a realtime audio bridge",
1921-}),
1922-]),
1898+const check = requireSetupCheck(result.details.checks, "audio-bridge");
1899+expect(check.ok).toBe(true);
1900+expect(check.message).toBe(
1901+"Chrome observe-only mode does not require a realtime audio bridge",
19231902);
19241903expect(
19251904result.details.checks?.filter((check) => check.id === "chrome-local-audio-device"),
@@ -1966,22 +1945,9 @@ describe("google-meet plugin", () => {
19661945const result = await tool.execute("id", { action: "setup_status" });
1967194619681947expect(result.details.ok).toBe(true);
1969-expect(result.details.checks).toEqual(
1970-expect.arrayContaining([
1971-expect.objectContaining({
1972-id: "twilio-voice-call-plugin",
1973-ok: true,
1974-}),
1975-expect.objectContaining({
1976-id: "twilio-voice-call-credentials",
1977-ok: true,
1978-}),
1979-expect.objectContaining({
1980-id: "twilio-voice-call-webhook",
1981-ok: true,
1982-}),
1983-]),
1984-);
1948+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-plugin").ok).toBe(true);
1949+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-credentials").ok).toBe(true);
1950+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-webhook").ok).toBe(true);
19851951});
1986195219871953it("reports missing voice-call wiring for explicit Twilio transport", async () => {
@@ -2011,17 +1977,9 @@ describe("google-meet plugin", () => {
20111977const result = await tool.execute("id", { action: "setup_status", transport: "twilio" });
2012197820131979expect(result.details.ok).toBe(false);
2014-expect(result.details.checks).toEqual(
2015-expect.arrayContaining([
2016-expect.objectContaining({
2017-id: "twilio-voice-call-plugin",
2018-ok: false,
2019-}),
2020-expect.objectContaining({
2021-id: "twilio-voice-call-credentials",
2022-ok: false,
2023-}),
2024-]),
1980+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-plugin").ok).toBe(false);
1981+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-credentials").ok).toBe(
1982+false,
20251983);
20261984});
20271985@@ -2050,14 +2008,7 @@ describe("google-meet plugin", () => {
20502008const result = await tool.execute("id", { action: "setup_status", transport: "twilio" });
2051200920522010expect(result.details.ok).toBe(false);
2053-expect(result.details.checks).toEqual(
2054-expect.arrayContaining([
2055-expect.objectContaining({
2056-id: "twilio-voice-call-plugin",
2057-ok: false,
2058-}),
2059-]),
2060-);
2011+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-plugin").ok).toBe(false);
20612012});
2062201320632014it("reports missing Twilio dial plan for explicit Twilio setup", async () => {
@@ -2093,15 +2044,9 @@ describe("google-meet plugin", () => {
20932044const result = await tool.execute("id", { action: "setup_status", transport: "twilio" });
2094204520952046expect(result.details.ok).toBe(false);
2096-expect(result.details.checks).toEqual(
2097-expect.arrayContaining([
2098-expect.objectContaining({
2099-id: "twilio-dial-plan",
2100-ok: false,
2101-message: expect.stringContaining("dial-in phone number"),
2102-}),
2103-]),
2104-);
2047+const check = requireSetupCheck(result.details.checks, "twilio-dial-plan");
2048+expect(check.ok).toBe(false);
2049+expect(check.message).toContain("dial-in phone number");
21052050});
2106205121072052it("accepts request-provided Twilio dial-in details during setup", async () => {
@@ -2141,15 +2086,9 @@ describe("google-meet plugin", () => {
21412086});
2142208721432088expect(result.details.ok).toBe(true);
2144-expect(result.details.checks).toEqual(
2145-expect.arrayContaining([
2146-expect.objectContaining({
2147-id: "twilio-dial-plan",
2148-ok: true,
2149-message: expect.stringContaining("request includes"),
2150-}),
2151-]),
2152-);
2089+const check = requireSetupCheck(result.details.checks, "twilio-dial-plan");
2090+expect(check.ok).toBe(true);
2091+expect(check.message).toContain("request includes");
21532092});
2154209321552094it.each([
@@ -2191,14 +2130,7 @@ describe("google-meet plugin", () => {
21912130const result = await tool.execute("id", { action: "setup_status" });
2192213121932132expect(result.details.ok).toBe(false);
2194-expect(result.details.checks).toEqual(
2195-expect.arrayContaining([
2196-expect.objectContaining({
2197-id: "twilio-voice-call-webhook",
2198-ok: false,
2199-}),
2200-]),
2201-);
2133+expect(requireSetupCheck(result.details.checks, "twilio-voice-call-webhook").ok).toBe(false);
22022134},
22032135);
22042136此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。