From 08c078b3728ac77db7ab7c4312a626a329631328 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Thu, 14 Oct 2021 23:09:44 +0200
Subject: [PATCH] Fixed #648 - chart page: fixed display behaviour of filter
 badge:

The filter badge is now correctly displayed if a chart is displayed with active filters and the button to show the chart settings is clicked.
---
 src/main/resources/static/js/charts.js        |  1 +
 .../integration/selenium/ChartTest.java       | 32 ++++++++++++++++++-
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/src/main/resources/static/js/charts.js b/src/main/resources/static/js/charts.js
index a1eddfc84..d2f1df785 100644
--- a/src/main/resources/static/js/charts.js
+++ b/src/main/resources/static/js/charts.js
@@ -115,6 +115,7 @@ $(document).ready(function()
         document.getElementsByName('NewChartSettings')[0].classList.toggle('hidden', false);
         document.getElementById('buttonShowChartSettings').classList.toggle('hidden', true);
 
+        applyFilter();
         checkShowChartButton();
     });
 
diff --git a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java
index 64f265744..df6006fa3 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java
@@ -267,6 +267,36 @@ class ChartTest extends SeleniumTestBase
 		assertThat(driver.findElement(By.id("filterActiveBadge")).isDisplayed()).isFalse();
 	}
 
+	@Test
+	void test_showFilterBadgeOnShowChartSettings()
+	{
+		driver.get(helper.getUrl() + "/charts");
+
+		final String chartPreviewSelector = ".chart-preview-column[data-id='6']";
+		driver.findElement(By.cssSelector(chartPreviewSelector)).click();
+
+		WebDriverWait wait = new WebDriverWait(driver, 5);
+		wait.until(ExpectedConditions.attributeContains(By.cssSelector(chartPreviewSelector + " .chart-preview"), "class", "active"));
+
+		driver.findElement(By.id("chart-filter-container")).click();
+		driver.findElement(By.id("section-type")).click();
+		final WebElement checkBox = driver.findElement(By.cssSelector("#section-type .text-default"));
+		((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", checkBox);
+		checkBox.click();
+
+		driver.findElement(By.name("buttonSave")).click();
+
+		wait = new WebDriverWait(driver, 5);
+		wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("chart-canvas")));
+
+		driver.findElement(By.id("buttonShowChartSettings")).click();
+
+		wait = new WebDriverWait(driver, 5);
+		wait.until(ExpectedConditions.attributeContains(By.cssSelector(chartPreviewSelector + " .chart-preview"), "class", "active"));
+
+		assertThat(driver.findElement(By.id("filterActiveBadge")).isDisplayed()).isTrue();
+	}
+
 	@Test
 	void test_showManageButtonForCustomCharts()
 	{
@@ -304,7 +334,7 @@ class ChartTest extends SeleniumTestBase
 	}
 
 	@Test
-	void test_EnabledButtonAfterShowChart()
+	void test_enabledButtonAfterShowChart()
 	{
 		driver.get(helper.getUrl() + "/charts");
 
-- 
GitLab