Add Websocket Test v2

This commit is contained in:
Your Name
2025-02-17 17:04:58 -08:00
parent fc628e3bea
commit 587699d7b3
8 changed files with 163 additions and 31 deletions
+1
View File
@@ -86,6 +86,7 @@
"ignoreTLSError": "Ignore TLS/SSL errors for HTTPS websites",
"ignoreTLSErrorGeneral": "Ignore TLS/SSL error for connection",
"upsideDownModeDescription": "Flip the status upside down. If the service is reachable, it is DOWN.",
"wsIgnoreHeadersDescription": "Test non compliant Websocket servers that don't respond with correct headers.",
"maxRedirectDescription": "Maximum number of redirects to follow. Set to 0 to disable redirects.",
"Upside Down Mode": "Upside Down Mode",
"Max. Redirects": "Max. Redirects",
+23 -1
View File
@@ -117,11 +117,17 @@
</div>
<!-- URL -->
<div v-if="monitor.type === 'websocket' || monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'json-query' || monitor.type === 'real-browser' " class="my-3">
<div v-if="monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'json-query' || monitor.type === 'real-browser' " class="my-3">
<label for="url" class="form-label">{{ $t("URL") }}</label>
<input id="url" v-model="monitor.url" type="url" class="form-control" pattern="https?://.+" required data-testid="url-input">
</div>
<!-- Websocket -->
<div v-if="monitor.type === 'websocket'" class="my-3">
<label for="wsurl" class="form-label">{{ $t("URL") }}</label>
<input id="wsurl" v-model="monitor.wsurl" type="wsurl" class="form-control" pattern="wss?://.+" required data-testid="url-input">
</div>
<!-- gRPC URL -->
<div v-if="monitor.type === 'grpc-keyword' " class="my-3">
<label for="grpc-url" class="form-label">{{ $t("URL") }}</label>
@@ -625,6 +631,16 @@
</div>
</div>
<div v-if="monitor.type === 'websocket' " class="my-3 form-check">
<input id="ws-ignore-headers" v-model="monitor.wsIgnoreHeaders" class="form-check-input" type="checkbox">
<label class="form-check-label" for="ws-ignore-headers">
{{ $t("Ignore Server Headers") }}
</label>
<div class="form-text">
{{ $t("wsIgnoreHeadersDescription") }}
</div>
</div>
<div v-if="monitor.type === 'http' || monitor.type === 'keyword' || monitor.type === 'json-query' || monitor.type === 'redis' " class="my-3 form-check">
<input id="ignore-tls" v-model="monitor.ignoreTls" class="form-check-input" type="checkbox" value="">
<label class="form-check-label" for="ignore-tls">
@@ -1078,6 +1094,8 @@ const monitorDefaults = {
name: "",
parent: null,
url: "https://",
wsurl: "wss://",
wsIgnoreHeaders: false,
method: "GET",
interval: 60,
retryInterval: 60,
@@ -1731,6 +1749,10 @@ message HealthCheckResponse {
this.monitor.url = this.monitor.url.trim();
}
if (this.monitor.wsurl) {
this.monitor.wsurl = this.monitor.wsurl.trim();
}
let createdNewParent = false;
if (this.draftGroupName && this.monitor.parent === -1) {