From 7f7c56435e4bab88c0f1df5ab349e8285b6f631d Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Tue, 5 May 2026 12:09:42 -0700 Subject: [PATCH] Check for errors after saving query definition --- .../test/pages/query/SourceQueryPage.java | 18 +++++++++++++++--- src/org/labkey/test/tests/PivotQueryTest.java | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/org/labkey/test/pages/query/SourceQueryPage.java b/src/org/labkey/test/pages/query/SourceQueryPage.java index 0bcc1117e9..66aec2b4fe 100644 --- a/src/org/labkey/test/pages/query/SourceQueryPage.java +++ b/src/org/labkey/test/pages/query/SourceQueryPage.java @@ -1,6 +1,7 @@ package org.labkey.test.pages.query; import org.labkey.test.Locator; +import org.labkey.test.Locators; import org.labkey.test.WebDriverWrapper; import org.labkey.test.WebTestHelper; import org.labkey.test.pages.LabKeyPage; @@ -8,6 +9,7 @@ import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.Ext4Helper; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.WebDriverWait; import java.time.Duration; @@ -88,7 +90,7 @@ public String getMetadataXml() public SourceQueryPage clickSave() { - Ext4Helper.Locators.ext4Button("Save").findElement(getDriver()).click(); + elementCache().saveButton.click(); waitForElement(Locator.id("status").withText("Saved"), WAIT_FOR_JAVASCRIPT); waitForElementToDisappear(Locator.id("status").withText("Saved"), WAIT_FOR_JAVASCRIPT); @@ -97,16 +99,24 @@ public SourceQueryPage clickSave() public ExecuteQueryPage clickSaveAndFinish() { - clickAndWait(Ext4Helper.Locators.ext4Button("Save & Finish").findElement(getDriver())); + clickAndWait(elementCache().saveAndFinishButton); + assertNoLabKeyErrors(); return new ExecuteQueryPage(getDriver()); } public String clickSaveExpectingError() { - Ext4Helper.Locators.ext4Button("Save").findElement(getDriver()).click(); + elementCache().saveButton.click(); return waitForElement(Locator.tagWithId("div","status")).getText(); } + public String clickSaveAndFinishExpectingError() + { + clickAndWait(elementCache().saveAndFinishButton); + clearCache(); + return waitForElement(Locators.labkeyError).getText(); + } + @Override protected ElementCache newElementCache() { @@ -115,5 +125,7 @@ protected ElementCache newElementCache() protected class ElementCache extends LabKeyPage.ElementCache { + private final WebElement saveButton = Ext4Helper.Locators.ext4Button("Save").findWhenNeeded(this); + private final WebElement saveAndFinishButton = Ext4Helper.Locators.ext4Button("Save & Finish").findWhenNeeded(this); } } diff --git a/src/org/labkey/test/tests/PivotQueryTest.java b/src/org/labkey/test/tests/PivotQueryTest.java index 500cfd2712..a00b6f33d3 100644 --- a/src/org/labkey/test/tests/PivotQueryTest.java +++ b/src/org/labkey/test/tests/PivotQueryTest.java @@ -228,7 +228,7 @@ SELECT ParticipantId, SequenceNum, MAX([F1]) AS I1Max FROM study.[D2] createQueryPage.setName(queryName); var sourceQueryPage = createQueryPage.clickCreate(); sourceQueryPage.setSource(queryText); - sourceQueryPage.clickSaveAndFinish(); + sourceQueryPage.clickSaveAndFinishExpectingError(); // expect query error waitForText("Query 'Q1' has errors", "Error on line 3: Can not find pivot column:");