Skip to content

Commit fa7a873

Browse files
Merge pull request #448 from hendrikheil/feat/allow-checking-echo-configured
feat(vue): allow checking if echo is configured
2 parents fb3253e + aa720f3 commit fa7a873

File tree

6 files changed

+42
-5
lines changed

6 files changed

+42
-5
lines changed

packages/react/src/config/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,5 @@ export const configureEcho = <T extends BroadcastDriver>(
8282

8383
export const echo = <T extends BroadcastDriver>(): Echo<T> =>
8484
getEchoInstance<T>();
85+
86+
export const echoIsConfigured = () => echoConfig !== null;

packages/react/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export { configureEcho, echo } from "./config/index";
1+
export { configureEcho, echo, echoIsConfigured } from "./config/index";
22
export {
33
useEcho,
44
useEchoModel,

packages/react/tests/config.test.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,38 @@
11
import { beforeEach, describe, expect, it, vi } from "vitest";
2-
import { configureEcho, echo } from "../src";
32

4-
describe("echo helper", async () => {
3+
describe("echo helper", () => {
54
beforeEach(() => {
65
vi.resetModules();
76
});
87

98
it("throws error when Echo is not configured", async () => {
9+
const { echo } = await import("../src/config");
10+
1011
expect(() => echo()).toThrow("Echo has not been configured");
1112
});
1213

1314
it("creates Echo instance with proper configuration", async () => {
15+
const { configureEcho, echo } = await import("../src/config");
16+
1417
configureEcho({
1518
broadcaster: "null",
1619
});
1720

1821
expect(echo()).toBeDefined();
1922
expect(echo().options.broadcaster).toBe("null");
2023
});
24+
25+
it("checks if Echo is configured", async () => {
26+
const { configureEcho, echoIsConfigured } = await import(
27+
"../src/config"
28+
);
29+
30+
expect(echoIsConfigured()).toBe(false);
31+
32+
configureEcho({
33+
broadcaster: "null",
34+
});
35+
36+
expect(echoIsConfigured()).toBe(true);
37+
});
2138
});

packages/vue/src/config/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ const getEchoInstance = <T extends BroadcastDriver>(): Echo<T> => {
2323
return echoInstance as Echo<T>;
2424
};
2525

26+
export const echoIsConfigured = () => echoConfig !== null;
27+
2628
/**
2729
* Configure the Echo instance with sensible defaults.
2830
*

packages/vue/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ export {
55
useEchoPresence,
66
useEchoPublic,
77
} from "./composables/useEcho";
8-
export { configureEcho, echo } from "./config/index";
8+
export { configureEcho, echo, echoIsConfigured } from "./config/index";

packages/vue/tests/config.test.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2-
import { configureEcho, echo } from "../src/config";
32

43
describe("echo helper", async () => {
54
beforeEach(() => {
@@ -11,14 +10,31 @@ describe("echo helper", async () => {
1110
});
1211

1312
it("throws error when Echo is not configured", async () => {
13+
const { echo } = await import("../src/config");
14+
1415
expect(() => echo()).toThrow("Echo has not been configured");
1516
});
1617

1718
it("creates Echo instance with proper configuration", async () => {
19+
const { configureEcho, echo } = await import("../src/config");
20+
1821
configureEcho({
1922
broadcaster: "null",
2023
});
2124

2225
expect(echo()).toBeDefined();
2326
});
27+
28+
it("checks if Echo is configured", async () => {
29+
const { configureEcho, echoIsConfigured: echoIsConfigured } =
30+
await import("../src/config");
31+
32+
expect(echoIsConfigured()).toBe(false);
33+
34+
configureEcho({
35+
broadcaster: "null",
36+
});
37+
38+
expect(echoIsConfigured()).toBe(true);
39+
});
2440
});

0 commit comments

Comments
 (0)