diff --git a/src/__tests__/pusher-js-mock.spec.ts b/src/__tests__/pusher-js-mock.spec.ts index bc9209e..aa3dc2d 100644 --- a/src/__tests__/pusher-js-mock.spec.ts +++ b/src/__tests__/pusher-js-mock.spec.ts @@ -53,6 +53,21 @@ describe("PusherMock", () => { }); }); + describe("#allChannels", () => { + beforeEach(() => { + pusherMock.channel("public-channel"); + pusherMock.channel("presence-channel"); + }); + + it("returns an array of channel mock instances", () => { + const allChannels = pusherMock.allChannels(); + + expect(allChannels).toHaveLength(2); + expect(allChannels[0]).toBeInstanceOf(PusherChannelMock); + expect(allChannels[1]).toBeInstanceOf(PusherPresenceChannelMock); + }); + }); + describe("#connection", () => { it("returns instance of connection", () => { expect(pusherMock.connection).toBeDefined(); diff --git a/src/pusher-js-mock.ts b/src/pusher-js-mock.ts index 0ba4be5..4eebf53 100644 --- a/src/pusher-js-mock.ts +++ b/src/pusher-js-mock.ts @@ -119,6 +119,13 @@ class PusherMock { this.channel(channelName).unbind(name, callback); }); } + + /** + * Returns a list of all channels + */ + public allChannels() { + return Object.values(this.channels); + } } export default PusherMock;