diff --git a/src/test-utils/widget-config.js b/src/test-utils/widget-config.js index 4f448f9da..a5e2492a4 100644 --- a/src/test-utils/widget-config.js +++ b/src/test-utils/widget-config.js @@ -6,8 +6,8 @@ export function expectWidgetConfigShape(widget) { if ("api" in widget) { expect(widget.api).toBeTypeOf("string"); - // Widget APIs are template strings that expand to a configured service URL. - expect(widget.api).toContain("{url}"); + // Widget APIs are either service-backed (`{url}` template) or third-party API URLs. + expect(widget.api.includes("{url}") || /^https?:\/\//.test(widget.api)).toBe(true); } if ("proxyHandler" in widget) { diff --git a/src/widgets/argocd/widget.test.js b/src/widgets/argocd/widget.test.js new file mode 100644 index 000000000..453c3a626 --- /dev/null +++ b/src/widgets/argocd/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("argocd widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/atsumeru/widget.test.js b/src/widgets/atsumeru/widget.test.js new file mode 100644 index 000000000..9810f2820 --- /dev/null +++ b/src/widgets/atsumeru/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("atsumeru widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/autobrr/widget.test.js b/src/widgets/autobrr/widget.test.js new file mode 100644 index 000000000..df55059a2 --- /dev/null +++ b/src/widgets/autobrr/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("autobrr widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/azuredevops/widget.test.js b/src/widgets/azuredevops/widget.test.js new file mode 100644 index 000000000..7c25c6a93 --- /dev/null +++ b/src/widgets/azuredevops/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("azuredevops widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/beszel/widget.test.js b/src/widgets/beszel/widget.test.js new file mode 100644 index 000000000..8e29895a1 --- /dev/null +++ b/src/widgets/beszel/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("beszel widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/booklore/widget.test.js b/src/widgets/booklore/widget.test.js new file mode 100644 index 000000000..ca91f0a0b --- /dev/null +++ b/src/widgets/booklore/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("booklore widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/caddy/widget.test.js b/src/widgets/caddy/widget.test.js new file mode 100644 index 000000000..0dec00975 --- /dev/null +++ b/src/widgets/caddy/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("caddy widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/calibreweb/widget.test.js b/src/widgets/calibreweb/widget.test.js new file mode 100644 index 000000000..c0880b60b --- /dev/null +++ b/src/widgets/calibreweb/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("calibreweb widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/changedetectionio/widget.test.js b/src/widgets/changedetectionio/widget.test.js new file mode 100644 index 000000000..46ef65770 --- /dev/null +++ b/src/widgets/changedetectionio/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("changedetectionio widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/channelsdvrserver/widget.test.js b/src/widgets/channelsdvrserver/widget.test.js new file mode 100644 index 000000000..5e0b11c94 --- /dev/null +++ b/src/widgets/channelsdvrserver/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("channelsdvrserver widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/checkmk/widget.test.js b/src/widgets/checkmk/widget.test.js new file mode 100644 index 000000000..080d853ec --- /dev/null +++ b/src/widgets/checkmk/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("checkmk widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/cloudflared/widget.test.js b/src/widgets/cloudflared/widget.test.js new file mode 100644 index 000000000..cd2f38327 --- /dev/null +++ b/src/widgets/cloudflared/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("cloudflared widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/coinmarketcap/widget.test.js b/src/widgets/coinmarketcap/widget.test.js new file mode 100644 index 000000000..5fa4a94b0 --- /dev/null +++ b/src/widgets/coinmarketcap/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("coinmarketcap widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/crowdsec/widget.test.js b/src/widgets/crowdsec/widget.test.js new file mode 100644 index 000000000..d6cb4fb28 --- /dev/null +++ b/src/widgets/crowdsec/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("crowdsec widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/customapi/widget.test.js b/src/widgets/customapi/widget.test.js new file mode 100644 index 000000000..de6a2ecdf --- /dev/null +++ b/src/widgets/customapi/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("customapi widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/deluge/widget.test.js b/src/widgets/deluge/widget.test.js new file mode 100644 index 000000000..f97d32ef2 --- /dev/null +++ b/src/widgets/deluge/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("deluge widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/develancacheui/widget.test.js b/src/widgets/develancacheui/widget.test.js new file mode 100644 index 000000000..6c23411e7 --- /dev/null +++ b/src/widgets/develancacheui/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("develancacheui widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/diskstation/widget.test.js b/src/widgets/diskstation/widget.test.js new file mode 100644 index 000000000..d253d43b4 --- /dev/null +++ b/src/widgets/diskstation/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("diskstation widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/dispatcharr/widget.test.js b/src/widgets/dispatcharr/widget.test.js new file mode 100644 index 000000000..8be93e177 --- /dev/null +++ b/src/widgets/dispatcharr/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("dispatcharr widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +}); diff --git a/src/widgets/dockhand/widget.test.js b/src/widgets/dockhand/widget.test.js new file mode 100644 index 000000000..2974d2d79 --- /dev/null +++ b/src/widgets/dockhand/widget.test.js @@ -0,0 +1,11 @@ +import { describe, it } from "vitest"; + +import { expectWidgetConfigShape } from "test-utils/widget-config"; + +import widget from "./widget"; + +describe("dockhand widget config", () => { + it("exports a valid widget config", () => { + expectWidgetConfigShape(widget); + }); +});