Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/ecommerce/node_modules/pusher-js/spec/javascripts/unit/core/channels/ |
var Channels = require('core/channels/channels').default;
var Channel = require('core/channels/channel').default;
var PrivateChannel = require('core/channels/private_channel').default;
var PresenceChannel = require('core/channels/presence_channel').default;
var EncryptedChannel = require('core/channels/encrypted_channel').default;
var Factory = require('core/utils/factory').default;
var Mocks = require("mocks");
describe("Channels", function() {
var channels;
beforeEach(function() {
channels = new Channels(Factory);
});
describe("#add", function() {
it("should create two different channels for different names", function() {
var channel1 = channels.add("test1", {});
var channel2 = channels.add("test2", {});
expect(channel1).not.toEqual(channel2);
});
it("should create a channel only once", function() {
var channel = channels.add("test", {});
expect(channels.add("test", {})).toEqual(channel);
});
it("should create a regular channel when name doesn't have known prefix", function() {
expect(channels.add("test", {})).toEqual(jasmine.any(Channel));
});
it("should create a private channel when name starts with 'private-'", function() {
expect(channels.add("private-test", {})).toEqual(jasmine.any(PrivateChannel));
});
it("should create a presence channel when name starts with 'presence-'", function() {
expect(channels.add("presence-test", {})).toEqual(jasmine.any(PresenceChannel));
});
describe("Subscribing to channel with name starting 'private-encrypted-'", function() {
it("should create an encrypted channel when nacl is available", function() {
var pusher = Mocks.getPusher({ nacl: {} })
expect(channels.add("private-encrypted-test", pusher))
.toEqual(jasmine.any(EncryptedChannel));
});
it("should throw an error if nacl is not available", function() {
var pusher = Mocks.getPusher({})
var fn = () => channels.add("private-encrypted-test", pusher)
expect(fn).toThrow();
});
})
});
describe("#find", function() {
it("should return previously inserted channels", function() {
var channel1 = channels.add("test1", {});
var channel2 = channels.add("test2", {});
expect(channels.find("test1")).toEqual(channel1);
expect(channels.find("test2")).toEqual(channel2);
});
it("should return undefined if channel doesn't exist", function() {
expect(channels.find("idontexist")).toBe(undefined);
});
});
describe("#remove", function() {
it("should remove previously inserted channel", function() {
var channel1 = channels.add("test1", {});
var channel2 = channels.add("test2", {});
channels.remove("test1");
expect(channels.find("test1")).toBe(undefined);
expect(channels.find("test2")).toEqual(channel2);
});
});
describe("#disconnect", function() {
it("should call disconnect on all channels", function() {
var channel1 = channels.add("test1", {});
var channel2 = channels.add("test2", {});
spyOn(channel1, "disconnect");
spyOn(channel2, "disconnect");
channels.disconnect();
expect(channel1.disconnect).toHaveBeenCalled();
expect(channel2.disconnect).toHaveBeenCalled();
});
});
});