diff --git a/apps/web/public/i18n/locales/en/dialog.json b/apps/web/public/i18n/locales/en/dialog.json
index 5d8e36b4..84540471 100644
--- a/apps/web/public/i18n/locales/en/dialog.json
+++ b/apps/web/public/i18n/locales/en/dialog.json
@@ -79,6 +79,7 @@
"inputPlaceholder": "192.168.1.10 or meshtastic.local",
"heading": "URL or IP",
"useHttps": "Use HTTPS",
+ "mixedContentWarning": "This page is loaded over HTTPS. Your browser may block connections to an HTTP node.",
"invalidUrl": {
"title": "Invalid URL",
"description": "Please enter a valid HTTP or HTTPS URL."
diff --git a/apps/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.test.tsx b/apps/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.test.tsx
new file mode 100644
index 00000000..f5512c27
--- /dev/null
+++ b/apps/web/src/components/Dialog/AddConnectionDialog/AddConnectionDialog.test.tsx
@@ -0,0 +1,53 @@
+import { fireEvent, render, screen } from "@testing-library/react";
+import { beforeEach, describe, expect, it, vi } from "vitest";
+import AddConnectionDialog from "./AddConnectionDialog.tsx";
+
+vi.mock("@core/hooks/useToast.ts", () => ({
+ useToast: () => ({ toast: vi.fn() }),
+}));
+
+vi.mock("@app/pages/Connections/utils", () => ({
+ testHttpReachable: vi.fn(() => Promise.resolve(true)),
+}));
+
+const getSwitch = () => screen.getByRole("switch");
+
+describe("AddConnectionDialog HTTPS toggle", () => {
+ beforeEach(() => {
+ vi.clearAllMocks();
+ });
+
+ it("toggles between http and https when the app is served over http", () => {
+ render(
+ {t( + "addConnection.httpConnection.mixedContentWarning", + "This page is loaded over HTTPS. Your browser may block connections to an HTTP node.", + )} +
+ )}