From eb2b55d966dcaab86f51e2c5286fc41aca6d75cf Mon Sep 17 00:00:00 2001 From: cnathe Date: Mon, 3 Aug 2026 16:02:47 -0500 Subject: [PATCH] AssayExportImportTest to upload transform script to @script dir using assay designer UI --- .../labkey/test/tests/AssayExportImportTest.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/tests/AssayExportImportTest.java b/src/org/labkey/test/tests/AssayExportImportTest.java index eddb39b2a1..05bf4b5416 100644 --- a/src/org/labkey/test/tests/AssayExportImportTest.java +++ b/src/org/labkey/test/tests/AssayExportImportTest.java @@ -166,7 +166,6 @@ private Integer createSimpleProjectAndAssay(String projectName, String assayName Connection cn = createDefaultConnection(); Protocol protocol = new GetProtocolCommand("General").execute(cn, projectName).getProtocol(); protocol.setName(assayName); - protocol.setProtocolTransformScripts(List.of(new File(SAMPLE_DATA_LOCATION, PERL_SCRIPT).getAbsolutePath())); protocol.setSaveScriptFiles(true); protocol.setEditableResults(true); protocol.setEditableRuns(true); @@ -199,7 +198,17 @@ private Integer createSimpleProjectAndAssay(String projectName, String assayName resultsFields.add(new FieldDefinition("resultFileField", ColumnType.File)); domains.get("Data Fields").setFields(resultsFields); - return new SaveProtocolCommand(protocol).execute(cn, projectName).getProtocol().getProtocolId(); + Integer protocolId = new SaveProtocolCommand(protocol).execute(cn, projectName).getProtocol().getProtocolId(); + + // GitHub Issue #159: The transform script must live in the assay's "@scripts" directory, so add it through the + // designer's file upload rather than setting an absolute path on the protocol via the API. + log("Add the transform script '" + PERL_SCRIPT + "' to the assay design using the designer's file upload."); + goToProjectHome(projectName); + ReactAssayDesignerPage assayDesignerPage = ReactAssayDesignerPage.beginAt(this, projectName, protocolId, "General", getURL().toString()); + assayDesignerPage.addTransformScript(new File(SAMPLE_DATA_LOCATION, PERL_SCRIPT)); + assayDesignerPage.clickFinish(); + + return protocolId; } public void addNewField(String projectName, String assayName, FieldDefinition newField)