From 0221877b1e104c05ed116cc92fdd3a9bb9e6ecff Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 30 Jul 2026 12:15:44 -0500 Subject: [PATCH 1/3] Luminex test fixes to add youtil.R file to @scripts dir --- .../test/tests/luminex/LuminexAsyncImportTest.java | 1 + .../org/labkey/test/tests/luminex/LuminexEC50Test.java | 1 + .../test/tests/luminex/LuminexExcludableWellsTest.java | 1 + .../tests/luminex/LuminexExclusionRetentionTest.java | 1 + .../test/tests/luminex/LuminexGuideSetDisablingTest.java | 1 + .../labkey/test/tests/luminex/LuminexGuideSetTest.java | 1 + .../labkey/test/tests/luminex/LuminexPositivityTest.java | 1 + .../labkey/test/tests/luminex/LuminexRTransformTest.java | 1 + .../src/org/labkey/test/tests/luminex/LuminexTest.java | 9 +++++++++ .../tests/luminex/LuminexValueBasedGuideSetTest.java | 1 + 10 files changed, 18 insertions(+) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 2df1f0f69..64eeda159 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -48,6 +48,7 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.setBackgroundImport(true); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Test diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java index 82ae65a84..ebcdd1a48 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java @@ -48,6 +48,7 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Test diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java index 358209f48..2413eaba5 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java @@ -57,6 +57,7 @@ public static void updateAssayDefinition() ReactAssayDesignerPage assayDesigner = init._assayHelper.clickEditAssayDesign(); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Before diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java index af82315ea..0027af63d 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java @@ -50,6 +50,7 @@ public static void updateAssayDefinition() ReactAssayDesignerPage assayDesigner = init._assayHelper.clickEditAssayDesign(); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Before diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java index 36eb9a805..93b5a72be 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java @@ -91,6 +91,7 @@ public void init() assayDesigner.expandFieldsPanel("Batch") .addField(new FieldDefinition("CustomProtocol", FieldDefinition.ColumnType.String).setLabel("CustomProtocol")); assayDesigner.clickFinish(); + addRTransformUtil(); for (int i = 0; i < GUIDE_SET_FILES.length; i++) _guideSetHelper.importGuideSetRun(TEST_ASSAY_LUM, GUIDE_SET_FILES[i]); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index 022997dde..f867bcc84 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -87,6 +87,7 @@ public void testGuideSet() assayDesigner.expandFieldsPanel("Batch") .addField(new FieldDefinition("CustomProtocol", FieldDefinition.ColumnType.String).setLabel("Protocol")); assayDesigner.clickFinish(); + addRTransformUtil(); // upload the first set of files (2 runs) for (int i = 0; i < 2; i++) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java index 50684d35d..b8d3bde2e 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java @@ -75,6 +75,7 @@ public static void updateAssayDesign() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Test (timeout = 16 * 60 * 1000) // Preferable to have the individual test time out rather than the class diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java index 3fc7a25d6..dff1b4cbf 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -57,6 +57,7 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); + init.addRTransformUtil(); } //requires drc and xtable packages installed in R diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index 24ce9ec0a..cd0874a30 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -39,6 +39,7 @@ import org.labkey.test.components.html.BootstrapMenu; import org.labkey.test.components.html.Checkbox; import org.labkey.test.pages.ReactAssayDesignerPage; +import org.labkey.test.pages.files.WebDavPage; import org.labkey.test.pages.luminex.LuminexImportWizard; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExtHelper; @@ -103,6 +104,7 @@ public abstract class LuminexTest extends BaseWebDriverTest public static final File RTRANSFORM_SCRIPT_FILE_LABKEY = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/labkey_luminex_transform.R"); public static final File RTRANSFORM_SCRIPT_FILE_LAB = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/tomaras_luminex_transform.R"); + public static final File RTRANSFORM_YOUTIL_FILE = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/youtil.R"); public static final File RTRANSFORM_SCRIPT_FILE_NOOP = TestFileUtils.getSampleData("qc/noopTransform.R"); public static final String ASSAY_DATA_FILE_LOCATION_MULTIPLE_FIELD = "__primaryFile__"; @@ -771,4 +773,11 @@ protected void cleanupPipelineJobs() clickButton("Confirm Delete"); } } + + protected void addRTransformUtil() + { + // need to upload youtil.R script as sibling in @scripts + WebDavPage webDavPage = WebDavPage.beginAt(this, getProjectName() + "/@scripts"); + webDavPage.getFileBrowserHelper().uploadFile(RTRANSFORM_YOUTIL_FILE); + } } diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java index ffe1a8234..57243a4ca 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java @@ -48,6 +48,7 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); + init.addRTransformUtil(); } @Test From 2dcee769c7df27a38239796ac608c17a5e210bc9 Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 3 Aug 2026 15:20:23 -0500 Subject: [PATCH 2/3] Remove individual calls to addRTransformUtil and just add utility file in doInit --- .../test/tests/luminex/LuminexAsyncImportTest.java | 1 - .../labkey/test/tests/luminex/LuminexEC50Test.java | 1 - .../tests/luminex/LuminexExcludableWellsTest.java | 1 - .../tests/luminex/LuminexExclusionRetentionTest.java | 1 - .../tests/luminex/LuminexGuideSetDisablingTest.java | 1 - .../test/tests/luminex/LuminexGuideSetTest.java | 1 - .../test/tests/luminex/LuminexPositivityTest.java | 1 - .../test/tests/luminex/LuminexRTransformTest.java | 1 - .../org/labkey/test/tests/luminex/LuminexTest.java | 12 +++++------- .../tests/luminex/LuminexValueBasedGuideSetTest.java | 1 - 10 files changed, 5 insertions(+), 16 deletions(-) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 64eeda159..2df1f0f69 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -48,7 +48,6 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.setBackgroundImport(true); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Test diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java index ebcdd1a48..82ae65a84 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexEC50Test.java @@ -48,7 +48,6 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Test diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java index 2413eaba5..358209f48 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludableWellsTest.java @@ -57,7 +57,6 @@ public static void updateAssayDefinition() ReactAssayDesignerPage assayDesigner = init._assayHelper.clickEditAssayDesign(); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Before diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java index 0027af63d..af82315ea 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExclusionRetentionTest.java @@ -50,7 +50,6 @@ public static void updateAssayDefinition() ReactAssayDesignerPage assayDesigner = init._assayHelper.clickEditAssayDesign(); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Before diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java index 93b5a72be..36eb9a805 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetDisablingTest.java @@ -91,7 +91,6 @@ public void init() assayDesigner.expandFieldsPanel("Batch") .addField(new FieldDefinition("CustomProtocol", FieldDefinition.ColumnType.String).setLabel("CustomProtocol")); assayDesigner.clickFinish(); - addRTransformUtil(); for (int i = 0; i < GUIDE_SET_FILES.length; i++) _guideSetHelper.importGuideSetRun(TEST_ASSAY_LUM, GUIDE_SET_FILES[i]); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index f867bcc84..022997dde 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -87,7 +87,6 @@ public void testGuideSet() assayDesigner.expandFieldsPanel("Batch") .addField(new FieldDefinition("CustomProtocol", FieldDefinition.ColumnType.String).setLabel("Protocol")); assayDesigner.clickFinish(); - addRTransformUtil(); // upload the first set of files (2 runs) for (int i = 0; i < 2; i++) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java index b8d3bde2e..50684d35d 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java @@ -75,7 +75,6 @@ public static void updateAssayDesign() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Test (timeout = 16 * 60 * 1000) // Preferable to have the individual test time out rather than the class diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java index dff1b4cbf..3fc7a25d6 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -57,7 +57,6 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LAB); assayDesigner.clickFinish(); - init.addRTransformUtil(); } //requires drc and xtable packages installed in R diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index cd0874a30..4ca5b8b07 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -281,6 +281,11 @@ private void doInit() throws Exception SaveProtocolCommand saveProtocolCommand = new SaveProtocolCommand(assayProtocol); saveProtocolCommand.execute(createDefaultConnection(), getProjectName()); } + + // Assay designs that use the luminex transform scripts need to upload youtil.R script as sibling in @scripts + // so just include it there now for all cases + WebDavPage webDavPage = WebDavPage.beginAt(this, getProjectName() + "/@scripts"); + webDavPage.getFileBrowserHelper().uploadFile(RTRANSFORM_YOUTIL_FILE); } private void setFieldsToDomain(List fields, Domain domain) @@ -773,11 +778,4 @@ protected void cleanupPipelineJobs() clickButton("Confirm Delete"); } } - - protected void addRTransformUtil() - { - // need to upload youtil.R script as sibling in @scripts - WebDavPage webDavPage = WebDavPage.beginAt(this, getProjectName() + "/@scripts"); - webDavPage.getFileBrowserHelper().uploadFile(RTRANSFORM_YOUTIL_FILE); - } } diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java index 57243a4ca..ffe1a8234 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexValueBasedGuideSetTest.java @@ -48,7 +48,6 @@ public static void updateAssayDefinition() assayDesigner.addTransformScript(RTRANSFORM_SCRIPT_FILE_LABKEY); assayDesigner.clickFinish(); - init.addRTransformUtil(); } @Test From 2da84c3d1aa0787e24ddb7bfcec6b02d06c2170b Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 3 Aug 2026 16:53:36 -0500 Subject: [PATCH 3/3] LuminexTest fix to goToProjectHome() after adding utility file --- .../test/src/org/labkey/test/tests/luminex/LuminexTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index 4ca5b8b07..ca8d29f65 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -285,7 +285,9 @@ private void doInit() throws Exception // Assay designs that use the luminex transform scripts need to upload youtil.R script as sibling in @scripts // so just include it there now for all cases WebDavPage webDavPage = WebDavPage.beginAt(this, getProjectName() + "/@scripts"); - webDavPage.getFileBrowserHelper().uploadFile(RTRANSFORM_YOUTIL_FILE); + if (!webDavPage.getFileBrowserHelper().getFileList().contains(RTRANSFORM_YOUTIL_FILE.getName())) + webDavPage.getFileBrowserHelper().uploadFile(RTRANSFORM_YOUTIL_FILE); + goToProjectHome(); } private void setFieldsToDomain(List fields, Domain domain)