diff --git a/src/org/labkey/test/tests/SampleTypeLineageTest.java b/src/org/labkey/test/tests/SampleTypeLineageTest.java index e05aec6a32..bcb0380753 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; @@ -14,6 +15,7 @@ import org.labkey.test.Locator; 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; @@ -55,7 +57,7 @@ public class SampleTypeLineageTest extends BaseWebDriverTest @Override public List getAssociatedModules() { - return Arrays.asList("experiment"); + return List.of("experiment"); } @Override @@ -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,19 @@ 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")); + assertEquals("CheckEdgesAction should find no cycle edges", List.of(), response.get("result")); + } }