fix: inspections bugs (#3277)
* fix: environment add bug in inspection * chore: add 127.0.0.1 in url inspection * chore: update browserextension inspection help url * fix: team env not showing bug in selector * chore: rework inspector systems to be reactive * chore: handling tab changes gracefully * refactor: move out url interceptor from the platform * chore: add view function in inspector service to get views into the list * fix: interceptors not kicking in on initial load * fix: don't show no internet connection error unless browser deems so * chore: fix tests --------- Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
This commit is contained in:
@@ -2,9 +2,11 @@ import { Service } from "dioc"
|
||||
import { InspectionService, Inspector, InspectorResult } from ".."
|
||||
import { getI18n } from "~/modules/i18n"
|
||||
import { HoppRESTRequest } from "@hoppscotch/data"
|
||||
import { markRaw, ref } from "vue"
|
||||
import { markRaw } from "vue"
|
||||
import IconAlertTriangle from "~icons/lucide/alert-triangle"
|
||||
import { HoppRESTResponse } from "~/helpers/types/HoppRESTResponse"
|
||||
import { Ref } from "vue"
|
||||
import { computed } from "vue"
|
||||
|
||||
/**
|
||||
* This inspector is responsible for inspecting the response of a request.
|
||||
@@ -27,47 +29,50 @@ export class ResponseInspectorService extends Service implements Inspector {
|
||||
this.inspection.registerInspector(this)
|
||||
}
|
||||
|
||||
getInspectorFor(
|
||||
req: HoppRESTRequest,
|
||||
res: HoppRESTResponse | undefined
|
||||
): InspectorResult[] {
|
||||
const results = ref<InspectorResult[]>([])
|
||||
if (!res) return results.value
|
||||
getInspections(
|
||||
_req: Readonly<Ref<HoppRESTRequest>>,
|
||||
res: Readonly<Ref<HoppRESTResponse | null | undefined>>
|
||||
) {
|
||||
return computed(() => {
|
||||
const results: InspectorResult[] = []
|
||||
if (!res.value) return results
|
||||
|
||||
const hasErrors = res && (res.type !== "success" || res.statusCode !== 200)
|
||||
const hasErrors =
|
||||
res && (res.value.type !== "success" || res.value.statusCode !== 200)
|
||||
|
||||
let text
|
||||
let text: string | undefined = undefined
|
||||
|
||||
if (res.type === "network_fail") {
|
||||
text = this.t("inspections.response.network_error")
|
||||
} else if (res.type === "fail") {
|
||||
text = this.t("inspections.response.default_error")
|
||||
} else if (res.type === "success" && res.statusCode === 404) {
|
||||
text = this.t("inspections.response.404_error")
|
||||
} else if (res.type === "success" && res.statusCode === 401) {
|
||||
text = this.t("inspections.response.401_error")
|
||||
}
|
||||
if (res.value.type === "network_fail" && !navigator.onLine) {
|
||||
text = this.t("inspections.response.network_error")
|
||||
} else if (res.value.type === "fail") {
|
||||
text = this.t("inspections.response.default_error")
|
||||
} else if (res.value.type === "success" && res.value.statusCode === 404) {
|
||||
text = this.t("inspections.response.404_error")
|
||||
} else if (res.value.type === "success" && res.value.statusCode === 401) {
|
||||
text = this.t("inspections.response.401_error")
|
||||
}
|
||||
|
||||
if (hasErrors && text) {
|
||||
results.value.push({
|
||||
id: "url",
|
||||
icon: markRaw(IconAlertTriangle),
|
||||
text: {
|
||||
type: "text",
|
||||
text: text,
|
||||
},
|
||||
severity: 2,
|
||||
isApplicable: true,
|
||||
locations: {
|
||||
type: "response",
|
||||
},
|
||||
doc: {
|
||||
text: this.t("action.learn_more"),
|
||||
link: "https://docs.hoppscotch.io/",
|
||||
},
|
||||
})
|
||||
}
|
||||
if (hasErrors && text) {
|
||||
results.push({
|
||||
id: "url",
|
||||
icon: markRaw(IconAlertTriangle),
|
||||
text: {
|
||||
type: "text",
|
||||
text: text,
|
||||
},
|
||||
severity: 2,
|
||||
isApplicable: true,
|
||||
locations: {
|
||||
type: "response",
|
||||
},
|
||||
doc: {
|
||||
text: this.t("action.learn_more"),
|
||||
link: "https://docs.hoppscotch.io/",
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return results.value
|
||||
return results
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user