|
25 | 25 | import org.labkey.test.BaseWebDriverTest; |
26 | 26 | import org.labkey.test.Locator; |
27 | 27 | import org.labkey.test.categories.Daily; |
| 28 | +import org.labkey.test.components.ext4.Window; |
28 | 29 | import org.labkey.test.pages.ReactAssayDesignerPage; |
29 | 30 | import org.labkey.test.pages.signaldata.SignalDataAssayBeginPage; |
30 | 31 | import org.labkey.test.pages.signaldata.SignalDataRunViewerPage; |
31 | 32 | import org.labkey.test.pages.signaldata.SignalDataUploadPage; |
32 | 33 | import org.labkey.test.params.FieldDefinition; |
33 | 34 | import org.labkey.test.util.DataRegionTable; |
34 | 35 | import org.labkey.test.util.Ext4Helper; |
35 | | -import org.labkey.test.components.ext4.Window; |
36 | 36 | import org.labkey.test.util.PostgresOnlyTest; |
37 | 37 | import org.labkey.test.util.data.TestDataUtils; |
38 | 38 | import org.labkey.test.util.signaldata.SignalDataInitializer; |
|
47 | 47 |
|
48 | 48 | import static org.junit.Assert.assertArrayEquals; |
49 | 49 | import static org.junit.Assert.assertEquals; |
| 50 | +import static org.junit.Assert.assertTrue; |
50 | 51 |
|
51 | 52 | @Category({Daily.class}) |
52 | 53 | public class SignalDataRawTest extends BaseWebDriverTest implements PostgresOnlyTest |
@@ -128,6 +129,40 @@ public void testRunViewer() |
128 | 129 | assertEquals("Wrong number of lines in plot", 2, plotLines.size()); |
129 | 130 | } |
130 | 131 |
|
| 132 | + @Test |
| 133 | + public void testSpectrumPlotLegend() |
| 134 | + { |
| 135 | + List<String> filenames = List.of(RESULT_FILENAME_1, RESULT_FILENAME_2, RESULT_FILENAME_3); |
| 136 | + List<String> expectedRunNames = filenames.stream().map(this::resultNameFromFilename).toList(); |
| 137 | + |
| 138 | + log("Select " + filenames.size() + " runs for the spectrum plot"); |
| 139 | + SignalDataAssayBeginPage beginPage = navigateToAssayLandingPage(SignalDataInitializer.RAW_SignalData_ASSAY); |
| 140 | + for (String filename : filenames) |
| 141 | + beginPage.selectData(filename, DEFAULT_RUN); |
| 142 | + |
| 143 | + SignalDataRunViewerPage runsPage = beginPage.viewRuns(); |
| 144 | + for (String runName : expectedRunNames) |
| 145 | + runsPage.checkRunViewerCheckbox(runName); |
| 146 | + |
| 147 | + WebElement plotEl = runsPage.showPlot(); |
| 148 | + |
| 149 | + log("Verify one plotted line per run"); |
| 150 | + List<WebElement> plotLines = Locator.tagWithClass("path", "line").findElements(plotEl); |
| 151 | + assertEquals("Wrong number of lines in spectrum plot", filenames.size(), plotLines.size()); |
| 152 | + |
| 153 | + log("Verify legend renders with one item per run"); |
| 154 | + List<WebElement> legendItems = Locator.tagWithClass("g", "legend-item").findElements(plotEl); |
| 155 | + assertEquals("Wrong number of legend items in spectrum plot", filenames.size(), legendItems.size()); |
| 156 | + |
| 157 | + log("Verify legend labels match run names"); |
| 158 | + List<String> legendLabels = Locator.tag("tspan").findElements(plotEl).stream() |
| 159 | + .map(WebElement::getText) |
| 160 | + .filter(t -> !t.isBlank()) |
| 161 | + .toList(); |
| 162 | + assertTrue("Legend labels " + legendLabels + " do not contain all expected run names " + expectedRunNames, |
| 163 | + legendLabels.containsAll(expectedRunNames)); |
| 164 | + } |
| 165 | + |
131 | 166 | private String resultNameFromFilename(String filename) |
132 | 167 | { |
133 | 168 | //Trim extension |
|
0 commit comments