From 2dfdbb5f460682efabd8e06b965afc53003a406b Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 26 May 2026 20:23:59 -0700 Subject: [PATCH 1/2] Add test coverage for CycleCheckAction and CheckEdgesAction --- .../test/tests/SampleTypeLineageTest.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index e05aec6a32..a4c648a1c3 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -4,6 +4,7 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.labkey.remoteapi.CommandException; +import org.labkey.remoteapi.SimpleGetCommand; import org.labkey.remoteapi.experiment.LineageCommand; import org.labkey.remoteapi.experiment.LineageNode; import org.labkey.remoteapi.experiment.LineageResponse; @@ -12,6 +13,7 @@ import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; +import org.labkey.test.WebTestHelper; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; import org.labkey.test.categories.Daily; @@ -842,7 +844,7 @@ public void testDeleteLineageParent() throws IOException, CommandException // create a sample type with the following explicit domain columns SampleTypeDefinition sampleType = new SampleTypeDefinition("Family"); TestDataGenerator sampleGenerator = sampleType.create(createDefaultConnection(), getProjectName()); - + sampleGenerator.addRow(List.of("A")); sampleGenerator.addRow(List.of("B")); sampleGenerator.addCustomRow(Map.of("name", "C", "MaterialInputs/Family", "A,B")); @@ -1216,4 +1218,20 @@ public void testDeleteSamplesSomeWithDerivedSamples() } + @Test + public void testDiagnosticActions() throws IOException, CommandException + { + // CycleCheckAction: confirm the page loads and the acyclic test data reports no cycles + beginAt(WebTestHelper.buildURL("experiment", PROJECT_NAME, "cycleCheck")); + assertTextPresent("This operation can use a lot of memory."); + clickButton("Continue"); + assertTextPresent("No cycles found"); + + // CheckEdgesAction: confirm the API returns success with an empty cycle list + var cmd = new SimpleGetCommand("experiment", "checkEdges"); + Map response = cmd.execute(createDefaultConnection(), "/" + PROJECT_NAME).getParsedData(); + assertEquals("CheckEdgesAction should report success", Boolean.TRUE, response.get("success")); + assertTrue("CheckEdgesAction should find no cycle edges", ((List) response.get("result")).isEmpty()); + } + } From 8d3faf078022697239cf4d68b07ce768138c47aa Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 26 May 2026 20:43:48 -0700 Subject: [PATCH 2/2] Cleanup --- src/org/labkey/test/tests/SampleTypeLineageTest.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index a4c648a1c3..bcb0380753 100644 --- a/src/org/labkey/test/tests/SampleTypeLineageTest.java +++ b/src/org/labkey/test/tests/SampleTypeLineageTest.java @@ -13,9 +13,9 @@ import org.labkey.remoteapi.query.SelectRowsResponse; import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; -import org.labkey.test.WebTestHelper; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; +import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Daily; import org.labkey.test.components.ext4.Window; import org.labkey.test.params.FieldDefinition; @@ -57,7 +57,7 @@ public class SampleTypeLineageTest extends BaseWebDriverTest @Override public List getAssociatedModules() { - return Arrays.asList("experiment"); + return List.of("experiment"); } @Override @@ -1231,7 +1231,6 @@ public void testDiagnosticActions() throws IOException, CommandException var cmd = new SimpleGetCommand("experiment", "checkEdges"); Map response = cmd.execute(createDefaultConnection(), "/" + PROJECT_NAME).getParsedData(); assertEquals("CheckEdgesAction should report success", Boolean.TRUE, response.get("success")); - assertTrue("CheckEdgesAction should find no cycle edges", ((List) response.get("result")).isEmpty()); + assertEquals("CheckEdgesAction should find no cycle edges", List.of(), response.get("result")); } - }