diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java index c8f919d1feaeddd63d189daa3b0e01653c736f97..9733de8366e42c88ee2daa52c8cf949e56fd07a9 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionController.java @@ -390,7 +390,7 @@ public class TransactionController extends BaseController Transaction newTransaction = new Transaction(existingTransaction); newTransaction.setID(null); - newTransaction.setDate(date); + newTransaction.setDate(null); if(newTransaction.getAccount().getAccountState() != AccountState.FULL_ACCESS) { diff --git a/BudgetMasterServer/src/main/resources/languages/base_de.properties b/BudgetMasterServer/src/main/resources/languages/base_de.properties index 32adf22bfcfb6dec74359beb93436292a2ea3bb0..319edb0d8aa0e10c26285ef9c6cd74a0b37c9535 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_de.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_de.properties @@ -230,7 +230,8 @@ warning.settings.password.confirmation.wrong=Passwort und Passwort Wiederholung warning.empty.chart.name=Bitte gib einen Namen ein. warning.empty.chart.script=Bitte gib ein Script ein. warning.duplicate.template.name=Es existiert bereits eine Vorlage mit diesem Namen. -warning.transaction.date=Das angegebene Datum entspricht nicht dem erlaubten Format. Erwartetes Format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. +warning.transaction.date.simple=Das angegebene Datum entspricht nicht dem erlaubten Format. Erwartetes Format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. +warning.transaction.date=Bitte wähle ein Datum aus. warning.empty.git.url=Bitte gib die URL zum git-Server ein. warning.empty.git.branch.name=Bitte gib den Namen des git-Branches ein. warning.empty.git.user.name=Bitte gib deinen git-Nutzernamen ein. diff --git a/BudgetMasterServer/src/main/resources/languages/base_en.properties b/BudgetMasterServer/src/main/resources/languages/base_en.properties index c660b5d9d8a5d7ce3cc2c94c0ded65bd50d58681..752c0c9a07355d5b13b694183d1f01233e4e96b0 100644 --- a/BudgetMasterServer/src/main/resources/languages/base_en.properties +++ b/BudgetMasterServer/src/main/resources/languages/base_en.properties @@ -231,7 +231,8 @@ warning.settings.password.confirmation.wrong=Password and password confirmation warning.empty.chart.name=Please insert a name. warning.empty.chart.script=Please insert a script. warning.duplicate.template.name=A template with this name is already existing. -warning.transaction.date=The specified date does not correspond to the allowed format. Expected format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. +warning.transaction.date.simple=The specified date does not correspond to the allowed format. Expected format: DD.MM.YY, DDMMYY, DD.MM.YYYY, DDMMYYYY. +warning.transaction.date=Please select a date. warning.empty.git.url=Please insert the git server's URL. warning.empty.git.branch.name=Please insert the git branch name. warning.empty.git.user.name=Please insert your git username. diff --git a/BudgetMasterServer/src/main/resources/static/js/transactions.js b/BudgetMasterServer/src/main/resources/static/js/transactions.js index e8ffaac88eec513f67163c98864a505257de4426..498265c0b45eb3f7f5f27fe9c244377a898e659d 100644 --- a/BudgetMasterServer/src/main/resources/static/js/transactions.js +++ b/BudgetMasterServer/src/main/resources/static/js/transactions.js @@ -1,5 +1,7 @@ $(document).ready(function() { + let pickerEndDate; + // open filter modal if corresponding anchor is in url (originating from hotkeys.js) if(window.location.href.endsWith('#modalFilter')) { @@ -48,7 +50,6 @@ $(document).ready(function() yearRange: 25, firstDay: 1, showClearBtn: false, - setDefaultDate: true, defaultDate: startDate, autoClose: true, @@ -86,12 +87,14 @@ $(document).ready(function() // picker end date if(typeof endDate !== "undefined") { - let pickerEndDate = createDatePickerEnd(pickerStartDate.date, endDate); + pickerEndDate = createDatePickerEnd(pickerStartDate.date, endDate); } } function createDatePickerEnd(minDate, selectedDate) { + console.log(minDate, selectedDate); + if(selectedDate < minDate) { selectedDate = minDate; diff --git a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl index 43aae2ff4b64dcd99466377da89ffb779f99ae23..65dc7c6fb47f9130dd7ff215fe87ce55d7b605d7 100644 --- a/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl +++ b/BudgetMasterServer/src/main/resources/templates/transactions/newTransactionMacros.ftl @@ -84,7 +84,12 @@ <script> amountValidationMessage = "${locale.getString("warning.transaction.amount")}"; numberValidationMessage = "${locale.getString("warning.empty.number")}"; - dateValidationMessage = "${locale.getString("warning.transaction.date")}"; + + <#if helpers.isUseSimpleDatepickerForTransactions()> + dateValidationMessage = "${locale.getString("warning.transaction.date.simple")}"; + <#else> + dateValidationMessage = "${locale.getString("warning.transaction.date")}"; + </#if> </script> </#macro> @@ -93,12 +98,14 @@ <div class="input-field col s12 m12 l8 offset-l2"> <#if transaction.getDate?? && transaction.getDate()??> <#assign startDate = dateService.getLongDateString(transaction.getDate())/> + <#assign transactionDate = dateService.getLongDateString(transaction.getDate())/> <#else> <#assign startDate = dateService.getLongDateString(currentDate)/> + <#assign transactionDate = ""/> </#if> <i class="material-icons prefix">event</i> - <input id="transaction-datepicker" type="text" class="datepicker<#if helpers.isUseSimpleDatepickerForTransactions()>-simple</#if>" name="date" value="${startDate}"> + <input id="transaction-datepicker" type="text" class="datepicker<#if helpers.isUseSimpleDatepickerForTransactions()>-simple</#if>" name="date" value="${transactionDate}"> <label class="input-label" for="transaction-datepicker">${locale.getString("transaction.new.label.date")}</label> </div> </div> diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/helpers/TransactionTestHelper.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/helpers/TransactionTestHelper.java index eeef3ef96eb71e469ed90f58a13975a098d2318c..9e489fe653682ad804c30aae0a78345c3383f98e 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/helpers/TransactionTestHelper.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/helpers/TransactionTestHelper.java @@ -7,7 +7,9 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; +import java.text.SimpleDateFormat; import java.time.Duration; +import java.util.Date; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; @@ -94,6 +96,20 @@ public class TransactionTestHelper .findFirst().orElseThrow().click(); } + public static void selectDayInTransactionDatePicker(WebDriver driver, int day) + { + driver.findElement(By.cssSelector(".input-label[for='transaction-datepicker']")).click(); + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("datepicker-modal"))); + driver.findElement(By.cssSelector("button[data-day='" + day + "']")).click(); + wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("datepicker-modal"))); + } + + public static String getDateString(int day) + { + return String.format("%02d.%s", day, new SimpleDateFormat("MM.").format(new Date())); + } + public static void selectGlobalAccountByName(WebDriver driver, String accountName) { final WebElement globalAccountSelect = driver.findElement(By.id("globalAccountSelect")); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionFromExistingOneTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionFromExistingOneTest.java index b18fe4a4b4601a632c2a277a170acdf61090ad73..bd9c0ed8d020692696ef55262abb40abe97da06c 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionFromExistingOneTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionFromExistingOneTest.java @@ -58,7 +58,7 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase assertThat(driver.findElement(By.className("buttonExpenditure")).getAttribute("class")).contains("background-red"); assertThat(driver.findElement(By.id("transaction-name")).getAttribute("value")).isEqualTo("Full normal"); assertThat(driver.findElement(By.id("transaction-amount")).getAttribute("value")).isEqualTo("12.00"); - assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEqualTo("01.10.2021"); + assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEmpty(); assertThat(driver.findElement(By.id("transaction-description")).getAttribute("value")).isEqualTo("lorem ipsum"); assertThat(driver.findElement(By.cssSelector(".category-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("3"); @@ -68,6 +68,8 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase assertThat(driver.findElement(By.cssSelector(".account-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("3"); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, 20); + // submit form driver.findElement(By.id("button-save-transaction")).click(); @@ -93,7 +95,7 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase // assert assertThat(driver.findElement(By.id("transaction-name")).getAttribute("value")).isEqualTo("Full transfer"); assertThat(driver.findElement(By.id("transaction-amount")).getAttribute("value")).isEqualTo("15.00"); - assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEqualTo("01.09.2021"); + assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEmpty(); assertThat(driver.findElement(By.id("transaction-description")).getAttribute("value")).isEqualTo("dolor sit amet"); assertThat(driver.findElement(By.cssSelector(".category-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("3"); @@ -104,6 +106,8 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase assertThat(driver.findElement(By.cssSelector(".account-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("3"); assertThat(driver.findElement(By.cssSelector(".transfer-account-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("4"); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, 20); + // submit form driver.findElement(By.id("button-save-transaction")).click(); @@ -134,6 +138,8 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase assertThat(driver.findElement(By.id("repeating-end-after-x-times")).isSelected()).isTrue(); assertThat(driver.findElement(By.id("transaction-repeating-end-after-x-times-input")).getAttribute("value")).isEqualTo("1"); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, 20); + // submit form driver.findElement(By.id("button-save-transaction")).click(); @@ -166,6 +172,8 @@ class NewTransactionFromExistingOneTest extends SeleniumTestBase // should fall back to default account as the readonly account will not allow new transactions assertThat(driver.findElement(By.cssSelector(".account-select-wrapper .custom-select-selected-item .category-circle")).getAttribute("data-value")).isEqualTo("2"); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, 20); + // submit form driver.findElement(By.id("button-save-transaction")).click(); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionNormalTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionNormalTest.java index c4fe8f7c9887f3a313126f1b04917aeae37cc22c..166a67895195f02c0c7dbd17aa465033c6229b13 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionNormalTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionNormalTest.java @@ -12,6 +12,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import java.io.File; +import java.text.MessageFormat; import java.text.SimpleDateFormat; import java.time.Duration; import java.util.Date; @@ -87,15 +88,17 @@ class NewTransactionNormalTest extends SeleniumTestBase openNewTransactionPage(); - String name = "My normal transaction"; - String amount = "15.00"; - String description = "Lorem Ipsum dolor sit amet"; - String categoryName = "sdfdsf"; + final String name = "My normal transaction"; + final String amount = "15.00"; + final String description = "Lorem Ipsum dolor sit amet"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonIncome")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); driver.findElement(By.id("transaction-description")).sendKeys(description); TransactionTestHelper.selectCategoryByName(driver, categoryName); @@ -116,8 +119,7 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("dd.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", false, false, name, description, amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", false, false, name, description, amount); } @Test @@ -128,15 +130,17 @@ class NewTransactionNormalTest extends SeleniumTestBase openNewTransactionPage(); - String name = "My normal transaction"; - String amount = "15.00"; - String description = "Lorem Ipsum dolor sit amet"; - String categoryName = "sdfdsf"; + final String name = "My normal transaction"; + final String amount = "15.00"; + final String description = "Lorem Ipsum dolor sit amet"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); driver.findElement(By.id("transaction-description")).sendKeys(description); TransactionTestHelper.selectCategoryByName(driver, categoryName); @@ -157,8 +161,7 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("dd.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", false, false, name, description, "-" + amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", false, false, name, description, "-" + amount); } @Test @@ -185,13 +188,15 @@ class NewTransactionNormalTest extends SeleniumTestBase { openNewTransactionPage(); - String name = "Save and continue transaction"; - String amount = "15.00"; + final String name = "Save and continue transaction"; + final String amount = "15.00"; + final int day = 20; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); // submit form driver.findElement(By.id("button-save-transaction-and-continue")).click(); @@ -205,6 +210,7 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(driver.findElement(By.className("buttonExpenditure")).getAttribute("class")).contains("background-red"); assertThat(driver.findElement(By.id("transaction-name")).getAttribute("value")).isEmpty(); assertThat(driver.findElement(By.id("transaction-amount")).getAttribute("value")).isEmpty(); + assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEmpty(); } @Test @@ -214,12 +220,14 @@ class NewTransactionNormalTest extends SeleniumTestBase final String name = "special income transaction"; final String amount = "15.00"; - String categoryName = "sdfdsf"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); // submit form @@ -249,12 +257,14 @@ class NewTransactionNormalTest extends SeleniumTestBase final String name = "special income transaction"; final String amount = "15.00"; - String categoryName = "sdfdsf"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); // submit form @@ -277,26 +287,24 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("dd.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", false, false, name, null, "-" + amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", false, false, name, null, "-" + amount); } @Test void test_newTransaction_keywordInName_clickOnButtonToIgnoreWarning_saveAndContinueClickedBefore() { - List<WebElement> transactionsRows = driver.findElements(By.cssSelector(".transaction-container .hide-on-med-and-down.transaction-row-top")); - final int numberOfTransactionsBefore = transactionsRows.size(); - openNewTransactionPage(); final String name = "special income transaction"; final String amount = "15.00"; - String categoryName = "sdfdsf"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); // submit form @@ -316,6 +324,7 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(driver.findElement(By.className("buttonExpenditure")).getAttribute("class")).contains("background-red"); assertThat(driver.findElement(By.id("transaction-name")).getAttribute("value")).isEmpty(); assertThat(driver.findElement(By.id("transaction-amount")).getAttribute("value")).isEmpty(); + assertThat(driver.findElement(By.id("transaction-datepicker")).getAttribute("value")).isEmpty(); } @Test @@ -328,12 +337,14 @@ class NewTransactionNormalTest extends SeleniumTestBase final String name = "special income transaction"; final String amount = "15.00"; - String categoryName = "sdfdsf"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.className("buttonIncome")).click(); driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, 20); TransactionTestHelper.selectCategoryByName(driver, categoryName); // submit form @@ -352,7 +363,6 @@ class NewTransactionNormalTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("dd.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", false, false, name, null, amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", false, false, name, null, amount); } } \ No newline at end of file diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionRecurringTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionRecurringTest.java index a4eb15f032f6c0ef94cb0225b6b4307b1f7a7876..f8c293d0ece5326891520160a109137de8097d3b 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionRecurringTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionRecurringTest.java @@ -93,17 +93,19 @@ class NewTransactionRecurringTest extends SeleniumTestBase @Test void test_newTransaction_income() { - String amount = "25.00"; - String description = "Lorem Ipsum dolor sit amet"; - String categoryName = "sdfdsf"; - String repeatingModifier = "1"; - String repeatingModifierType = "Days"; + final String amount = "25.00"; + final String description = "Lorem Ipsum dolor sit amet"; + final String categoryName = "sdfdsf"; + final int day = 3; + final String repeatingModifier = "1"; + final String repeatingModifierType = "Days"; // fill form driver.findElement(By.className("buttonIncome")).click(); driver.findElement(By.id("transaction-name")).sendKeys(TRANSACTION_NAME); driver.findElement(By.id("transaction-amount")).sendKeys(amount); driver.findElement(By.id("transaction-description")).sendKeys(description); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); driver.findElement(By.id("button-transaction-add-repeating-option")).click(); @@ -114,19 +116,6 @@ class NewTransactionRecurringTest extends SeleniumTestBase driver.findElement(By.id("transaction-repeating-modifier")).sendKeys(repeatingModifier); TransactionTestHelper.selectOptionFromDropdown(driver, By.cssSelector("#transaction-repeating-modifier-row"), repeatingModifierType); - // fill date - driver.findElement(By.id("transaction-datepicker")).click(); - List<WebElement> datePickerCells = driver.findElements(By.cssSelector(".datepicker-table td")); - for(WebElement cell : datePickerCells) - { - if(cell.getText().equals("3")) - { - cell.click(); - driver.findElement(By.cssSelector(".datepicker-done")).click(); - break; - } - } - wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.cssSelector(".modal-overlay")))); @@ -150,24 +139,25 @@ class NewTransactionRecurringTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("03.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", true, false, TRANSACTION_NAME, description, amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", true, false, TRANSACTION_NAME, description, amount); } @Test void test_newTransaction_expenditure() { - String amount = "15.00"; - String description = "Lorem Ipsum dolor sit amet"; - String categoryName = "sdfdsf"; - String repeatingModifier = "1"; - String repeatingModifierType = "Days"; + final String amount = "15.00"; + final String description = "Lorem Ipsum dolor sit amet"; + final String categoryName = "sdfdsf"; + final int day = 3; + final String repeatingModifier = "1"; + final String repeatingModifierType = "Days"; // fill form driver.findElement(By.className("buttonExpenditure")).click(); driver.findElement(By.id("transaction-name")).sendKeys(TRANSACTION_NAME); driver.findElement(By.id("transaction-amount")).sendKeys(amount); driver.findElement(By.id("transaction-description")).sendKeys(description); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); driver.findElement(By.id("button-transaction-add-repeating-option")).click(); @@ -179,18 +169,6 @@ class NewTransactionRecurringTest extends SeleniumTestBase TransactionTestHelper.selectOptionFromDropdown(driver, By.cssSelector("#transaction-repeating-modifier-row"), repeatingModifierType); // fill date - driver.findElement(By.id("transaction-datepicker")).click(); - List<WebElement> datePickerCells = driver.findElements(By.cssSelector(".datepicker-table td")); - for(WebElement cell : datePickerCells) - { - if(cell.getText().equals("3")) - { - cell.click(); - driver.findElement(By.cssSelector(".datepicker-done")).click(); - break; - } - } - wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.cssSelector(".modal-overlay")))); @@ -217,8 +195,7 @@ class NewTransactionRecurringTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("03.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", true, false, TRANSACTION_NAME, description, "-" + amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", true, false, TRANSACTION_NAME, description, "-" + amount); } @Test @@ -227,17 +204,19 @@ class NewTransactionRecurringTest extends SeleniumTestBase final String type = "Transfer"; openNewTransactionPage(type); - String amount = "30.00"; - String description = "sit amet"; - String categoryName = "sdfdsf"; - String repeatingModifier = "1"; - String repeatingModifierType = "Days"; - String transferAccountName = "sfsdf"; + final String amount = "30.00"; + final String description = "sit amet"; + final String categoryName = "sdfdsf"; + final int day = 3; + final String repeatingModifier = "1"; + final String repeatingModifierType = "Days"; + final String transferAccountName = "sfsdf"; // fill form driver.findElement(By.id("transaction-name")).sendKeys(TRANSACTION_NAME); driver.findElement(By.id("transaction-amount")).sendKeys(amount); driver.findElement(By.id("transaction-description")).sendKeys(description); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); TransactionTestHelper.selectTransferAccountByName(driver, transferAccountName); @@ -249,19 +228,6 @@ class NewTransactionRecurringTest extends SeleniumTestBase driver.findElement(By.id("transaction-repeating-modifier")).sendKeys(repeatingModifier); TransactionTestHelper.selectOptionFromDropdown(driver, By.cssSelector("#transaction-repeating-modifier-row"), repeatingModifierType); - // fill date - driver.findElement(By.id("transaction-datepicker")).click(); - List<WebElement> datePickerCells = driver.findElements(By.cssSelector(".datepicker-table td")); - for(WebElement cell : datePickerCells) - { - if(cell.getText().equals("3")) - { - cell.click(); - driver.findElement(By.cssSelector(".datepicker-done")).click(); - break; - } - } - wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.invisibilityOfAllElements(driver.findElements(By.cssSelector(".modal-overlay")))); @@ -285,8 +251,7 @@ class NewTransactionRecurringTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("03.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", true, true, TRANSACTION_NAME, description, amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", true, true, TRANSACTION_NAME, description, amount); // open transaction in edit view again columns.get(5).findElement(By.cssSelector("a")).click(); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionTransferTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionTransferTest.java index c343f65a8e5ed7e608c5d56f4f58bcebb9647973..9fcddb36a154ffb7e9d3788f8419141d175ec5d5 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionTransferTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/NewTransactionTransferTest.java @@ -90,15 +90,17 @@ class NewTransactionTransferTest extends SeleniumTestBase { openNewTransactionPage(); - String name = "My transfer transaction"; - String amount = "15.00"; - String description = "Lorem Ipsum dolor sit amet"; - String categoryName = "sdfdsf"; + final String name = "My transfer transaction"; + final String amount = "15.00"; + final String description = "Lorem Ipsum dolor sit amet"; + final String categoryName = "sdfdsf"; + final int day = 20; // fill form driver.findElement(By.id("transaction-name")).sendKeys(name); driver.findElement(By.id("transaction-amount")).sendKeys(amount); driver.findElement(By.id("transaction-description")).sendKeys(description); + TransactionTestHelper.selectDayInTransactionDatePicker(driver, day); TransactionTestHelper.selectCategoryByName(driver, categoryName); // submit form @@ -118,8 +120,7 @@ class NewTransactionTransferTest extends SeleniumTestBase assertThat(columns).hasSize(6); // check columns - final String dateString = new SimpleDateFormat("dd.MM.").format(new Date()); - TransactionTestHelper.assertTransactionColumns(columns, dateString, categoryName, "rgb(46, 124, 43)", false, true, name, description, amount); + TransactionTestHelper.assertTransactionColumns(columns, TransactionTestHelper.getDateString(day), categoryName, "rgb(46, 124, 43)", false, true, name, description, amount); } @Test