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();