describe("hx-ws attribute", function() { function mockWebsocket() { var listener; var lastSent; var wasClosed = false; var mockSocket = { addEventListener : function(message, l) { listener = l; }, write : function(content) { return listener({data:content}); }, send : function(data) { lastSent = data; }, getLastSent : function() { return lastSent; }, close : function() { wasClosed = true; }, wasClosed : function () { return wasClosed; } }; return mockSocket; } beforeEach(function () { this.server = makeServer(); var socket = mockWebsocket(); this.socket = socket; clearWorkArea(); this.oldCreateWebSocket = htmx.createWebSocket; htmx.createWebSocket = function(){ return socket }; }); afterEach(function () { this.server.restore(); clearWorkArea(); htmx.createWebSocket = this.oldCreateWebSocket; }); it('handles a basic call back', function () { var div = make('