From 85b080365313437f646070ca214fef433c06db6a Mon Sep 17 00:00:00 2001 From: rmacklin <1863540+rmacklin@users.noreply.github.com> Date: Mon, 26 Nov 2018 14:16:02 -0800 Subject: Convert ActionCable tests from CoffeeScript to ES2015 and replace Blade with Karma and Rollup (#34440) * Rename .coffee files in ActionCable test suite in prep for decaffeination * Decaffeinate ActionCable tests * Replace Blade with Karma and Rollup to run ActionCable JS tests - Add karma and qunit devDependencies - Add test script to ActionCable package - Use rollup to bundle ActionCable tests - Use karma as the ActionCable JS test runner * Replace vendored mock-socket with package devDependency in ActionCable * Move ActionCable yarn install to TravisCI before_install config * Clean up decaffeinated ActionCable tests to use consistent formatting --- .../test/javascript/src/unit/action_cable_test.js | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 actioncable/test/javascript/src/unit/action_cable_test.js (limited to 'actioncable/test/javascript/src/unit/action_cable_test.js') diff --git a/actioncable/test/javascript/src/unit/action_cable_test.js b/actioncable/test/javascript/src/unit/action_cable_test.js new file mode 100644 index 0000000000..8847d87545 --- /dev/null +++ b/actioncable/test/javascript/src/unit/action_cable_test.js @@ -0,0 +1,55 @@ +import ActionCable from "../../../../app/javascript/action_cable/index" +import {testURL} from "../test_helpers/index" + +const {module, test} = QUnit + +module("ActionCable", () => { + module("Adapters", () => { + module("WebSocket", () => { + test("default is window.WebSocket", assert => { + assert.equal(ActionCable.WebSocket, window.WebSocket) + }) + + test("configurable", assert => { + ActionCable.WebSocket = "" + assert.equal(ActionCable.WebSocket, "") + }) + }) + + module("logger", () => { + test("default is window.console", assert => { + assert.equal(ActionCable.logger, window.console) + }) + + test("configurable", assert => { + ActionCable.logger = "" + assert.equal(ActionCable.logger, "") + }) + }) + }) + + module("#createConsumer", () => { + test("uses specified URL", assert => { + const consumer = ActionCable.createConsumer(testURL) + assert.equal(consumer.url, testURL) + }) + + test("uses default URL", assert => { + const pattern = new RegExp(`${ActionCable.INTERNAL.default_mount_path}$`) + const consumer = ActionCable.createConsumer() + assert.ok(pattern.test(consumer.url), `Expected ${consumer.url} to match ${pattern}`) + }) + + test("uses URL from meta tag", assert => { + const element = document.createElement("meta") + element.setAttribute("name", "action-cable-url") + element.setAttribute("content", testURL) + + document.head.appendChild(element) + const consumer = ActionCable.createConsumer() + document.head.removeChild(element) + + assert.equal(consumer.url, testURL) + }) + }) +}) -- cgit v1.2.3