@@ -92,10 +114,25 @@
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/e2e/specs/status-page.spec.js b/test/e2e/specs/status-page.spec.js
index f525dfc6f5..43c5d43a6c 100644
--- a/test/e2e/specs/status-page.spec.js
+++ b/test/e2e/specs/status-page.spec.js
@@ -18,6 +18,10 @@ test.describe("Status Page", () => {
const refreshInterval = 30;
const theme = "dark";
const googleAnalyticsId = "G-123";
+ const umamiAnalyticsDomainUrl = "example.com";
+ const umamiAnalyticsWebsiteId = "606487e2-bc25-45f9-9132-fa8b065aad46";
+ const plausibleAnalyticsDomainUrl = "example.com";
+ const plausibleAnalyticsDomainsUrls = "one.com,two.com";
const customCss = "body { background: rgb(0, 128, 128) !important; }";
const descriptionText = "This is an example status page.";
const incidentTitle = "Example Outage Incident";
@@ -57,7 +61,8 @@ test.describe("Status Page", () => {
await page.getByTestId("show-tags-checkbox").uncheck();
await page.getByTestId("show-powered-by-checkbox").uncheck();
await page.getByTestId("show-certificate-expiry-checkbox").uncheck();
- await page.getByTestId("google-analytics-input").fill(googleAnalyticsId);
+ await page.getByTestId("analytics-type-select").selectOption("google");
+ await page.getByTestId("analytics-id-input").fill(googleAnalyticsId);
await page.getByTestId("custom-css-input").getByTestId("textarea").fill(customCss); // Prism
await expect(page.getByTestId("description-editable")).toHaveText(descriptionText);
await expect(page.getByTestId("custom-footer-editable")).toHaveText(footerText);
@@ -100,12 +105,12 @@ test.describe("Status Page", () => {
expect(updateCountdown).toBeLessThanOrEqual(refreshInterval + 10);
await expect(page.locator("body")).toHaveClass(theme);
- expect(await page.locator("head").innerHTML()).toContain(googleAnalyticsId);
const backgroundColor = await page.evaluate(() => window.getComputedStyle(document.body).backgroundColor);
expect(backgroundColor).toEqual("rgb(0, 128, 128)");
await screenshot(testInfo, page);
+ expect(await page.locator("head").innerHTML()).toContain(googleAnalyticsId);
// Flip the "Show Tags" and "Show Powered By" switches:
await page.getByTestId("edit-button").click();
@@ -114,6 +119,11 @@ test.describe("Status Page", () => {
await page.getByTestId("show-powered-by-checkbox").setChecked(true);
await screenshot(testInfo, page);
+
+ // Fill in umami analytics after editing
+ await page.getByTestId("analytics-type-select").selectOption("umami");
+ await page.getByTestId("analytics-domain-url-input").fill(umamiAnalyticsDomainUrl);
+ await page.getByTestId("analytics-id-input").fill(umamiAnalyticsWebsiteId);
await page.getByTestId("save-button").click();
await expect(page.getByTestId("edit-sidebar")).toHaveCount(0);
@@ -121,6 +131,19 @@ test.describe("Status Page", () => {
await expect(page.getByTestId("monitor-tag")).toContainText(tagValue);
await screenshot(testInfo, page);
+
+ expect(await page.locator("head").innerHTML()).toContain(umamiAnalyticsDomainUrl);
+ expect(await page.locator("head").innerHTML()).toContain(umamiAnalyticsWebsiteId);
+
+ await page.getByTestId("edit-button").click();
+ // Fill in plausible analytics after editing
+ await page.getByTestId("analytics-type-select").selectOption("plausible");
+ await page.getByTestId("analytics-domain-url-input").fill(plausibleAnalyticsDomainUrl);
+ await page.getByTestId("analytics-id-input").fill(plausibleAnalyticsDomainsUrls);
+ await page.getByTestId("save-button").click();
+ await screenshot(testInfo, page);
+ expect(await page.locator("head").innerHTML()).toContain(plausibleAnalyticsDomainUrl);
+ expect(await page.locator("head").innerHTML()).toContain(plausibleAnalyticsDomainsUrls);
});
// @todo Test certificate expiry