Skip to content

Commit 40add25

Browse files
authored
Selenium test for Issue 51979 and 52961 (#2431)
1 parent 682c795 commit 40add25

2 files changed

Lines changed: 61 additions & 5 deletions

File tree

src/org/labkey/test/tests/DataClassFolderExportImportTest.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.labkey.test.tests;
22

3+
import org.assertj.core.api.Assertions;
34
import org.junit.Before;
45
import org.junit.BeforeClass;
56
import org.junit.Test;
@@ -17,10 +18,12 @@
1718
import org.labkey.test.util.PortalHelper;
1819
import org.labkey.test.util.TestDataGenerator;
1920
import org.labkey.test.util.exp.DataClassAPIHelper;
21+
import org.labkey.test.util.search.SearchAdminAPIHelper;
2022
import org.openqa.selenium.WebElement;
2123
import org.openqa.selenium.support.ui.ExpectedConditions;
2224

2325
import java.io.File;
26+
import java.time.Duration;
2427
import java.util.ArrayList;
2528
import java.util.Arrays;
2629
import java.util.List;
@@ -99,11 +102,11 @@ public void testExportImportSimpleDataClass() throws Exception
99102

100103
TestDataGenerator testDgen = DataClassAPIHelper.createEmptyDataClass(subfolderPath, testType);
101104

102-
testDgen.addCustomRow(Map.of("Name", "class1", "intColumn", 1, "decimalColumn", 1.1, "stringColumn", "one"));
103-
testDgen.addCustomRow(Map.of("Name", "class2", "intColumn", 2, "decimalColumn", 2.2, "stringColumn", "two"));
104-
testDgen.addCustomRow(Map.of("Name", "class3", "intColumn", 3, "decimalColumn", 3.3, "stringColumn", "three"));
105-
testDgen.addCustomRow(Map.of("Name", "class4", "intColumn", 4, "decimalColumn", 4.4, "stringColumn", "four"));
106-
testDgen.addCustomRow(Map.of("Name", "class5", "intColumn", 5, "decimalColumn", 5.5, "stringColumn", "five"));
105+
testDgen.addCustomRow(Map.of("Name", "class1", "intColumn", 7771, "decimalColumn", 1.1, "stringColumn", "one"));
106+
testDgen.addCustomRow(Map.of("Name", "class2", "intColumn", 7772, "decimalColumn", 2.2, "stringColumn", "two"));
107+
testDgen.addCustomRow(Map.of("Name", "class3", "intColumn", 7773, "decimalColumn", 3.3, "stringColumn", "three"));
108+
testDgen.addCustomRow(Map.of("Name", "class4", "intColumn", 7774, "decimalColumn", 4.4, "stringColumn", "four"));
109+
testDgen.addCustomRow(Map.of("Name", "class5", "intColumn", 7775, "decimalColumn", 5.5, "stringColumn", "five"));
107110
testDgen.insertRows();
108111

109112
PortalHelper portalHelper = new PortalHelper(this);
@@ -158,6 +161,14 @@ public void testExportImportSimpleDataClass() throws Exception
158161
assertNotNull("expect all matching rows to come through", matchingMap);
159162
assertEquals("Expect imported rows to be equivalent to exported ones", exportedRow, matchingMap);
160163
}
164+
165+
SearchAdminAPIHelper.waitForIndexer();
166+
167+
var searchResultPage = navBar().search("7774");
168+
// Issue 52961: DataClass: Integer fields are not index for data class, unlike sample types
169+
checker().withScreenshot("Search by int value after folder import").awaiting(Duration.ofSeconds(2),
170+
()-> Assertions.assertThat(searchResultPage.getResultCount() >= 2).isTrue());
171+
161172
}
162173

163174
@Test

src/org/labkey/test/tests/SampleTypeRenameTest.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.labkey.test.tests;
22

3+
import org.assertj.core.api.Assertions;
34
import org.junit.BeforeClass;
45
import org.junit.Test;
56
import org.junit.experimental.categories.Category;
@@ -18,9 +19,11 @@
1819
import org.labkey.test.util.SampleTypeHelper;
1920
import org.labkey.test.util.TestDataGenerator;
2021
import org.labkey.test.util.exp.SampleTypeAPIHelper;
22+
import org.labkey.test.util.search.SearchAdminAPIHelper;
2123
import org.openqa.selenium.WebElement;
2224

2325
import java.io.IOException;
26+
import java.time.Duration;
2427
import java.util.Arrays;
2528
import java.util.List;
2629
import java.util.Map;
@@ -83,6 +86,48 @@ private void doSetup() throws IOException, CommandException
8386
testDataGenerator.insertRows();
8487
}
8588

89+
// Issue 51979: BadSqlGrammarException indexing sample types immediately after a field rename
90+
@Test
91+
public void testSampleTypeFieldRename() throws IOException, CommandException
92+
{
93+
final String sampleTypeName = "SampleTypeWithFieldRename" + FieldDefinition.DOMAIN_TRICKY_CHARACTERS;
94+
SampleTypeDefinition sampleTypeDefinition = new SampleTypeDefinition(sampleTypeName);
95+
sampleTypeDefinition.setNameExpression("S-FieldRename-${int}");
96+
sampleTypeDefinition.addField(new FieldDefinition(FIELD_INT, FieldDefinition.ColumnType.Integer));
97+
98+
log("Give the sample type some data, will be used to create a chart.");
99+
TestDataGenerator testDataGenerator = SampleTypeAPIHelper.createEmptySampleType(getCurrentContainerPath(), sampleTypeDefinition);
100+
int intVal = 1000;
101+
for (int i = 0; i < 1000; i++)
102+
testDataGenerator.addCustomRow(Map.of(FIELD_INT, intVal++));
103+
testDataGenerator.insertRows();
104+
105+
goToProjectHome();
106+
SampleTypeHelper sampleHelper = new SampleTypeHelper(this);
107+
UpdateSampleTypePage updatePage = sampleHelper.goToEditSampleType(sampleTypeName);
108+
updatePage.getFieldsPanel().getField(FIELD_INT).setName(FIELD_INT + " Updated");
109+
updatePage.setNameExpression("S-${genId}");
110+
updatePage.clickSave();
111+
goToProjectHome();
112+
updatePage = sampleHelper.goToEditSampleType(sampleTypeName);
113+
updatePage.getFieldsPanel().getField(FIELD_INT + " Updated").setName(FIELD_INT + " 2nd update");
114+
updatePage.clickSave();
115+
goToProjectHome();
116+
updatePage = sampleHelper.goToEditSampleType(sampleTypeName);
117+
updatePage.getFieldsPanel().getField(FIELD_INT + " 2nd update").setName(FIELD_INT + " 3rd");
118+
updatePage.clickSave();
119+
120+
SearchAdminAPIHelper.waitForIndexer();
121+
122+
var searchResultPage = navBar().search("S-FieldRename-1999");
123+
checker().withScreenshot("Search by sample name after field renaming").awaiting(Duration.ofSeconds(2),
124+
()-> Assertions.assertThat(searchResultPage.hasResultLocatedBy(Locator.linkWithText("Sample - S-FieldRename-1999"))).isTrue());
125+
126+
var searchResultPage2 = navBar().search("1599");
127+
checker().withScreenshot("Search by int value after field renaming").awaiting(Duration.ofSeconds(2),
128+
()-> Assertions.assertThat(searchResultPage2.hasResultLocatedBy(Locator.linkWithText("Sample - S-FieldRename-1599"))).isTrue());
129+
}
130+
86131
@Test
87132
public void testCustomViewWithSampleTypeRename()
88133
{

0 commit comments

Comments
 (0)