From 8414acffc6b1f99e21e19020369343906298a6c1 Mon Sep 17 00:00:00 2001 From: Lum Date: Tue, 17 Jun 2025 16:12:45 -0700 Subject: [PATCH 1/2] Don't allow unsupported MVFK XML overrides --- .../test/tests/query/QueryMetadataTest.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/org/labkey/test/tests/query/QueryMetadataTest.java b/src/org/labkey/test/tests/query/QueryMetadataTest.java index 3d4f914daa..6a92fc49ca 100644 --- a/src/org/labkey/test/tests/query/QueryMetadataTest.java +++ b/src/org/labkey/test/tests/query/QueryMetadataTest.java @@ -9,6 +9,7 @@ import org.labkey.test.components.domain.DomainFieldRow; import org.labkey.test.pages.core.admin.BaseSettingsPage.DATE_FORMAT; import org.labkey.test.pages.query.QueryMetadataEditorPage; +import org.labkey.test.pages.query.SourceQueryPage; import org.labkey.test.params.FieldDefinition; import org.labkey.test.params.experiment.SampleTypeDefinition; import org.labkey.test.params.list.IntListDefinition; @@ -288,6 +289,39 @@ private void verifyMetadataXMLAfterResave(String schemaName, String queryName, S .contains(expectedColumnXml); } + /** + * Validation for issue : 51695 + */ + @Test + public void testMultiValueJunctionType() + { + QueryMetadataEditorPage page = QueryMetadataEditorPage.beginAt(this, getProjectName(), "assay.General." + TEST_ASSAY, "Data"); + page.resetToDefault(); + + SourceQueryPage sourcePage = page.clickEditSource(); + // introduce a MVFK with an unsupported multi-value type, this should fail to save + String xml = "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " lists\n" + + " queryMetadataTestList\n" + + " key\n" + + " unsupported\n" + + " entityId\n" + + " \n" + + " \n" + + " \n" + + "
\n" + + "
"; + + sourcePage.setMetadataXml(xml); + checker().withScreenshot("validation-error") + .verifyEquals("expecting a validation error for the unsupported multi value type", + "Failed to Save: Non-junction multi value column type : \"unsupported\" is not supported.", sourcePage.clickSaveExpectingError()); + } + @Override protected String getProjectName() { From 90fba5739048eeff3285b4dccc759423f2bdfe31 Mon Sep 17 00:00:00 2001 From: Lum Date: Wed, 25 Jun 2025 17:01:12 -0700 Subject: [PATCH 2/2] code review feedback --- src/org/labkey/test/tests/query/QueryMetadataTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/query/QueryMetadataTest.java b/src/org/labkey/test/tests/query/QueryMetadataTest.java index 6a92fc49ca..468fe583db 100644 --- a/src/org/labkey/test/tests/query/QueryMetadataTest.java +++ b/src/org/labkey/test/tests/query/QueryMetadataTest.java @@ -319,7 +319,7 @@ public void testMultiValueJunctionType() sourcePage.setMetadataXml(xml); checker().withScreenshot("validation-error") .verifyEquals("expecting a validation error for the unsupported multi value type", - "Failed to Save: Non-junction multi value column type : \"unsupported\" is not supported.", sourcePage.clickSaveExpectingError()); + "Failed to Save: Column : \"fakeMVFK\" has an invalid fkMultiValued value : \"unsupported\" is not supported.", sourcePage.clickSaveExpectingError()); } @Override