From 942a0b8834a7dd939a205bdccf92b84ec6c9e3d3 Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Mon, 6 Apr 2026 15:35:07 -0700 Subject: [PATCH 1/2] regression test for change in https://github.com/LabKey/platform/pull/7549 --- src/org/labkey/test/tests/list/ListTest.java | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/org/labkey/test/tests/list/ListTest.java b/src/org/labkey/test/tests/list/ListTest.java index 418b3cbfc0..427a40154b 100644 --- a/src/org/labkey/test/tests/list/ListTest.java +++ b/src/org/labkey/test/tests/list/ListTest.java @@ -1396,6 +1396,45 @@ public void doRenameFieldsTest() assertTextBefore(newFieldName, origFieldName); } + + @Test + public void requiredFieldsTest() + { + log("Test changing required property of field"); + String listName = "requiredColList"; + String fieldA = "c$a"; + String fieldB = "c_b"; + + _listHelper.createList(PROJECT_VERIFY, listName, "key", + new FieldDefinition(fieldA, ColumnType.String).setDescription("first column").setRequired(false), + new FieldDefinition(fieldB, ColumnType.String).setDescription("second column").setRequired(false) + ); + + // insert a row with a NULL value and NON-NULL value + Map row = new HashMap<>(); + row.put(fieldA, "not null"); + row.put(fieldB, ""); + _listHelper.insertNewRow(row, false); + + // fieldA can be set to required==true + EditListDefinitionPage listDefinitionPage = _listHelper.goToEditDesign(listName); + listDefinitionPage.getFieldsPanel() + .getField(fieldA) + .setRequiredField(true); + listDefinitionPage.clickSave(); + + // fieldB can not be set to required==true + listDefinitionPage = _listHelper.goToEditDesign(listName); + listDefinitionPage.getFieldsPanel() + .getField(fieldB) + .setRequiredField(true); + List errors = listDefinitionPage.clickSaveExpectingErrors(); + assertEquals(2, errors.size()); + assertEquals("The property \"" + fieldB + "\" cannot be required when it contains rows with blank values.", errors.get(0)); + assertEquals("Please correct errors in " + listName + " before saving.", errors.get(1)); + } + + @Test public void exportPhiFileColumn() throws Exception { From d96a852b2365ad38b2dc3e1de7cf539ed44fa6bb Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Mon, 6 Apr 2026 16:13:55 -0700 Subject: [PATCH 2/2] add a 2nd row --- src/org/labkey/test/tests/list/ListTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/org/labkey/test/tests/list/ListTest.java b/src/org/labkey/test/tests/list/ListTest.java index 427a40154b..cd51c7f9de 100644 --- a/src/org/labkey/test/tests/list/ListTest.java +++ b/src/org/labkey/test/tests/list/ListTest.java @@ -1415,6 +1415,9 @@ public void requiredFieldsTest() row.put(fieldA, "not null"); row.put(fieldB, ""); _listHelper.insertNewRow(row, false); + row.put(fieldA, "still not null"); + row.put(fieldB, "also not null"); + _listHelper.insertNewRow(row, false); // fieldA can be set to required==true EditListDefinitionPage listDefinitionPage = _listHelper.goToEditDesign(listName); @@ -1432,6 +1435,10 @@ public void requiredFieldsTest() assertEquals(2, errors.size()); assertEquals("The property \"" + fieldB + "\" cannot be required when it contains rows with blank values.", errors.get(0)); assertEquals("Please correct errors in " + listName + " before saving.", errors.get(1)); + + goToProjectHome(); + clickAndWait(Locator.linkWithText(listName)); + _listHelper.deleteList(); }