diff --git a/.gitignore b/.gitignore index db0ff2e..cefaee9 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,7 @@ typings/ # NightwatchJS tests output tests_output/ + +# build output +dist/ +.DS_Store diff --git a/src/panel/css/panel.css b/src/panel/css/panel.css index 34559be..83986a1 100644 --- a/src/panel/css/panel.css +++ b/src/panel/css/panel.css @@ -11,8 +11,9 @@ body { margin: 0px; } -.explore-container { - align-items: center; +#socket-status { + display: flex; + flex-direction: row; } header { @@ -33,6 +34,12 @@ header { padding-right: 10px; } +.explore-container { + justify-content: space-between; + flex-direction: row; + align-items: center; +} + .container1 { display: flex; flex-direction: row; @@ -215,4 +222,20 @@ footer .heading2 { font-style: normal; font-weight: 400; font-size: 16px; -} \ No newline at end of file +} + +#socket-status .socket { + display: flex; + flex-direction: row; + align-items: center; + gap: 8px; + border-radius: 81px; + border: 1px solid hsl(23,35%,55%); + background: hsla(0,55%,94%,0.5); + padding: 8px; + box-sizing: border-box; +} + +#socket-disconnected { + display: none; +} diff --git a/src/panel/icons/check.svg b/src/panel/icons/check.svg new file mode 100644 index 0000000..e9b880a --- /dev/null +++ b/src/panel/icons/check.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/panel/icons/not-check.svg b/src/panel/icons/not-check.svg new file mode 100644 index 0000000..0fc5cff --- /dev/null +++ b/src/panel/icons/not-check.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/panel/index.html b/src/panel/index.html index 702a10c..9c64578 100644 --- a/src/panel/index.html +++ b/src/panel/index.html @@ -17,6 +17,16 @@
Explore Mode
+
+
+ +
Connected
+
+
+ +
Disconnected
+
+
diff --git a/src/panel/js/websocket.js b/src/panel/js/websocket.js index e7ea1f7..2455783 100644 --- a/src/panel/js/websocket.js +++ b/src/panel/js/websocket.js @@ -11,7 +11,8 @@ function connectWebSocket(port) { const socket = new WebSocket(`ws://localhost:${port}`); socket.onopen = () => { resolve(socket); - + document.getElementById('socket-connected').style.display = 'flex'; + document.getElementById('socket-disconnected').style.display = 'none'; // eslint-disable-next-line no-console console.log(`Hurray, Connected to Nightwatch Server localhost:${port}`); socket.send('commandlist'); @@ -19,6 +20,8 @@ function connectWebSocket(port) { }; socket.onclose = () => { + document.getElementById('socket-connected').style.display = 'none'; + document.getElementById('socket-disconnected').style.display = 'flex'; // eslint-disable-next-line no-console console.log(`Disconnected from Nightwatch Server localhost:${port}`); }; @@ -46,8 +49,14 @@ function connectWebSocket(port) { socket.onerror = (err) => { console.error(`WebSocket error: ${err}`); + document.getElementById('socket-connected').style.display = 'none'; + document.getElementById('socket-disconnected').style.display = 'flex'; socket.close(); + if (port > portNumber + 15) { + return; + } + connectWebSocket(port + 1) .then(resolve) .catch(reject); diff --git a/tests/basic.js b/tests/basic.js index 2bb8779..d560e42 100644 --- a/tests/basic.js +++ b/tests/basic.js @@ -46,6 +46,11 @@ describe('Nightwatch Inspector Tests', function() { browser.expect.element('#exploreMode').to.not.be.selected; }); + it('should display socket connected', function(browser) { + browser.expect.element('#socket-disconnected').to.be.visible; + browser.expect.element('#socket-connected').to.not.be.visible; + }); + after(browser => { server.close(); browser.end();