Skip to content

Commit 36cdfd7

Browse files
authored
Misc assay issues fixes for 25.7 (#2497)
- DomainFieldTypeChangeTest update to use field names with special chars
1 parent 630851e commit 36cdfd7

1 file changed

Lines changed: 51 additions & 36 deletions

File tree

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

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
import org.labkey.test.components.DomainDesignerPage;
1515
import org.labkey.test.components.domain.DomainFormPanel;
1616
import org.labkey.test.pages.ReactAssayDesignerPage;
17+
import org.labkey.test.pages.query.UpdateQueryRowPage;
1718
import org.labkey.test.params.FieldDefinition;
19+
import org.labkey.test.params.FieldInfo;
1820
import org.labkey.test.util.APIAssayHelper;
1921
import org.labkey.test.util.DataRegionTable;
2022
import org.labkey.test.util.PortalHelper;
@@ -58,76 +60,89 @@ public void preTest() throws Exception
5860
@Test
5961
public void testProvisionedDomainFieldChanges() throws IOException, CommandException
6062
{
61-
String listName = "SampleListWithAllDataTypes";
62-
6363
log("Creating list with variety of data fields");
64+
String listName = TestDataGenerator.randomDomainName("SampleListWithAllDataTypes");
65+
FieldInfo stringField = new FieldInfo(TestDataGenerator.randomFieldName("name"), FieldDefinition.ColumnType.String);
66+
FieldInfo integerField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Integer"), FieldDefinition.ColumnType.Integer);
67+
FieldInfo decimalField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Decimal"), FieldDefinition.ColumnType.Decimal);
68+
FieldInfo dateField = new FieldInfo(TestDataGenerator.randomFieldName("Test/Date"), FieldDefinition.ColumnType.DateAndTime);
69+
FieldInfo booleanField = new FieldInfo(TestDataGenerator.randomFieldName("Test'/\"Boolean"), FieldDefinition.ColumnType.Boolean); // GH Issue #755
6470
TestDataGenerator dgen = new TestDataGenerator("lists", listName, getProjectName())
6571
.withColumns(List.of(
66-
new FieldDefinition("name", FieldDefinition.ColumnType.String),
67-
new FieldDefinition("testInteger", FieldDefinition.ColumnType.Integer),
68-
new FieldDefinition("testDecimal", FieldDefinition.ColumnType.Decimal),
69-
new FieldDefinition("testDate", FieldDefinition.ColumnType.DateAndTime),
70-
new FieldDefinition("testBoolean", FieldDefinition.ColumnType.Boolean)));
72+
stringField.getFieldDefinition(),
73+
integerField.getFieldDefinition(),
74+
decimalField.getFieldDefinition(),
75+
dateField.getFieldDefinition(),
76+
booleanField.getFieldDefinition()));
7177
dgen.createDomain(createDefaultConnection(), "IntList", Map.of("keyName", "id"));
7278

7379
log("Inserting sample rows in the list");
74-
dgen.addCustomRow(Map.of("name", "first", "testInteger", "1",
75-
"testDecimal", "1.10", "testDate", "01-01-2022",
76-
"testBoolean", "true"));
77-
dgen.addCustomRow(Map.of("name", "Second", "testInteger", "2",
78-
"testDecimal", "2.20", "testDate", "01-02-2022",
79-
"testBoolean", "false"));
80-
dgen.addCustomRow(Map.of("name", "Third", "testInteger", "3",
81-
"testDecimal", "3.30", "testDate", "01-03-2022",
82-
"testBoolean", "true"));
80+
dgen.addCustomRow(Map.of(
81+
stringField.getName(), "first",
82+
integerField.getName(), "1",
83+
decimalField.getName(), "1.10",
84+
dateField.getName(), "01-01-2022",
85+
booleanField.getName(), "true"));
86+
dgen.addCustomRow(Map.of(
87+
stringField.getName(), "Second",
88+
integerField.getName(), "2",
89+
decimalField.getName(), "2.20",
90+
dateField.getName(), "01-02-2022",
91+
booleanField.getName(), "false"));
92+
dgen.addCustomRow(Map.of(
93+
stringField.getName(), "Third",
94+
integerField.getName(), "3",
95+
decimalField.getName(), "3.30",
96+
dateField.getName(), "01-03-2022",
97+
booleanField.getName(), "true"));
8398
dgen.insertRows(createDefaultConnection(), dgen.getRows());
8499

85100
log("Verifying Integer to Decimal change");
86101
DomainDesignerPage domainDesignerPage = DomainDesignerPage.beginAt(this, getProjectName(), "lists", listName);
87102
DomainFormPanel domainFormPanel = domainDesignerPage.fieldsPanel();
88-
domainFormPanel.getField("testInteger").setType(FieldDefinition.ColumnType.Decimal, true);
89-
domainFormPanel.getField("testBoolean").setNumberFormat("yes;no");
103+
domainFormPanel.getField(integerField.getName()).setType(FieldDefinition.ColumnType.Decimal, true);
104+
domainFormPanel.getField(booleanField.getName()).setNumberFormat("yes;no");
90105
domainDesignerPage.clickFinish();
91106

92107
clickAndWait(Locator.linkWithText(listName));
93108
DataRegionTable table = new DataRegionTable("query", getDriver());
94109
checker().verifyEquals("Incorrect values after changing integer to decimal", Arrays.asList("1.0", "2.0", "3.0"),
95-
table.getColumnDataAsText("testInteger"));
110+
table.getColumnDataAsText(integerField.getLabel()));
96111

97112
log("Verifying changing data fields to string");
98113
domainDesignerPage = DomainDesignerPage.beginAt(this, getProjectName(), "lists", listName);
99114
domainFormPanel = domainDesignerPage.fieldsPanel();
100-
domainFormPanel.getField("testInteger").setType(FieldDefinition.ColumnType.String, true);
101-
domainFormPanel.getField("testDecimal").setType(FieldDefinition.ColumnType.String, true);
102-
domainFormPanel.getField("testDate").setType(FieldDefinition.ColumnType.String, true);
103-
domainFormPanel.getField("testBoolean").setType(FieldDefinition.ColumnType.String, true);
115+
domainFormPanel.getField(integerField.getName()).setType(FieldDefinition.ColumnType.String, true);
116+
domainFormPanel.getField(decimalField.getName()).setType(FieldDefinition.ColumnType.String, true);
117+
domainFormPanel.getField(dateField.getName()).setType(FieldDefinition.ColumnType.String, true);
118+
domainFormPanel.getField(booleanField.getName()).setType(FieldDefinition.ColumnType.String, true); // GH Issue #755
104119
domainDesignerPage.clickFinish();
105120

106121
clickAndWait(Locator.linkWithText(listName));
107122
table = new DataRegionTable("query", getDriver());
108123
log("Verifying inserting string values");
109-
table.clickInsertNewRow();
110-
setFormElement(Locator.name("quf_name"), "Fourth");
111-
setFormElement(Locator.name("quf_testInteger"), "New1");
112-
setFormElement(Locator.name("quf_testDecimal"), "New1.1");
113-
setFormElement(Locator.name("quf_testDate"), "New01-02-2022");
114-
setFormElement(Locator.name("quf_testBoolean"), "NewTrue");
124+
UpdateQueryRowPage updateQueryRowPage = table.clickInsertNewRow();
125+
updateQueryRowPage.setField(stringField.getName(), "Fourth");
126+
updateQueryRowPage.setField(integerField.getName(), "New1");
127+
updateQueryRowPage.setField(decimalField.getName(), "New1.1");
128+
updateQueryRowPage.setField(dateField.getName(), "New01-02-2022");
129+
updateQueryRowPage.setField(booleanField.getName(), "NewTrue");
115130
clickButton("Submit");
116-
table.clickEditRow(0);
117-
setFormElement(Locator.name("quf_testInteger"), "Edited1");
131+
updateQueryRowPage = table.clickEditRow(0);
132+
updateQueryRowPage.setField(integerField.getName(), "Edited1");
118133
clickButton("Submit");
119134
checker().verifyEquals("Incorrect values after changing integer to string", Arrays.asList("Edited1", "2", "3", "New1"),
120-
table.getColumnDataAsText("testInteger"));
135+
table.getColumnDataAsText(integerField.getName()));
121136
checker().verifyEquals("Incorrect values after changing decimal to string", Arrays.asList("1.1", "2.2", "3.3", "New1.1"),
122-
table.getColumnDataAsText("testDecimal"));
137+
table.getColumnDataAsText(decimalField.getName()));
123138
checker().verifyEquals("Incorrect values after changing boolean to string", Arrays.asList("yes", "no", "yes", "NewTrue"),
124-
table.getColumnDataAsText("testBoolean"));
139+
table.getColumnDataAsText(booleanField.getName()));
125140
if (WebTestHelper.getDatabaseType() == WebTestHelper.DatabaseType.MicrosoftSQLServer)
126141
checker().verifyEquals("Incorrect values after changing date to string", Arrays.asList("Jan 1 2022 12:00AM", "Jan 2 2022 12:00AM", "Jan 3 2022 12:00AM", "New01-02-2022"),
127-
table.getColumnDataAsText("testDate"));
142+
table.getColumnDataAsText(dateField.getName()));
128143
else
129144
checker().verifyEquals("Incorrect values after changing date to string", Arrays.asList("2022-01-01 00:00:00", "2022-01-02 00:00:00", "2022-01-03 00:00:00", "New01-02-2022"),
130-
table.getColumnDataAsText("testDate"));
145+
table.getColumnDataAsText(dateField.getName()));
131146
}
132147

133148
@Test

0 commit comments

Comments
 (0)