Selenium test for displaying workflows with problems in pages.

This commit is contained in:
John Chilton
2023-05-12 16:57:46 -04:00
parent f98794d8cd
commit ea2eb316d1
5 changed files with 52 additions and 12 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
<template>
<div class="toolTitle">
<a v-if="tool.disabled" class="title-link name text-muted">
<a v-if="tool.disabled" :data-tool-id="tool.id" class="title-link name text-muted">
<span v-if="!hideName">{{ tool.name }}</span>
<span class="description">{{ tool.description }}</span>
</a>
<a v-else :class="targetClass" :href="tool.link" :target="tool.target" @click="onClick">
<a v-else :class="targetClass" :data-tool-id="tool.id" :href="tool.link" :target="tool.target" @click="onClick">
<img v-if="tool.logo" class="logo" :src="tool.logo" :alt="tool.name" />
<span class="labels">
<span
@@ -11,6 +11,7 @@
:per-page="perPage"
:current-page="currentPage"
:busy.sync="isBusy"
primary-key="id"
@row-clicked="clicked"
@filtered="filtered">
<template v-slot:head(select_icon)="">
+3 -3
View File
@@ -489,12 +489,12 @@ pages:
editor:
selectors:
save: '#save-button'
embed_dataset:
type: xpath
selector: '//span[text() = "Embedded Dataset"]'
embed_dataset: '.toolTitle .title-link[data-tool-id="history_dataset_embedded"]'
embed_workflow_display: '.toolTitle .title-link[data-tool-id="workflow_display"]'
dataset_selector:
type: xpath
selector: '//span[text() = "1: 1.fasta"]'
workflow_selection: .selection-dialog-modal [role="row"][data-pk="${id}"]
embed_dialog_add_button: '.pages-embed .buttons #button-0'
markdown_editor: '.markdown-textarea'
+8
View File
@@ -1159,6 +1159,14 @@ class NavigatesGalaxy(HasDriver):
self.libraries_index_search_for(name)
self.libraries_index_table_elements()[0].find_element(By.CSS_SELECTOR, "td a").click()
def page_open_with_name(self, name, screenshot_name):
self.home()
self.navigate_to_pages()
self.click_grid_popup_option(name, "View")
if screenshot_name:
self.sleep_for(self.wait_types.UX_RENDER)
self.screenshot(screenshot_name)
@retry_during_transitions
def libraries_index_table_elements(self):
container = self.components.libraries._.wait_for_visible()
+38 -7
View File
@@ -1,3 +1,7 @@
from galaxy_test.base.workflow_fixtures import (
WORKFLOW_WITH_BAD_COLUMN_PARAMETER,
WORKFLOW_WITH_OLD_TOOL_VERSION,
)
from .framework import (
managed_history,
selenium_test,
@@ -19,14 +23,41 @@ class TestPages(SeleniumTestCase):
self.screenshot("pages_grid")
name = self.create_page_and_edit(screenshot_name="pages_create_form")
self.screenshot("pages_editor_new")
self.components.pages.editor.markdown_editor.wait_for_and_send_keys("moo\n\n\ncow\n\n")
self.components.pages.editor.embed_dataset.wait_for_and_click()
editor = self._page_editor
editor.markdown_editor.wait_for_and_send_keys("moo\n\n\ncow\n\n")
editor.embed_dataset.wait_for_and_click()
self.screenshot("pages_editor_embed_dataset_dialog")
self.components.pages.editor.dataset_selector.wait_for_and_click()
editor.dataset_selector.wait_for_and_click()
self.sleep_for(self.wait_types.UX_RENDER)
self.components.pages.editor.save.wait_for_and_click()
editor.save.wait_for_and_click()
self.screenshot("pages_editor_saved")
self.home()
self.page_open_with_name(name, "page_view_with_embedded_dataset")
@selenium_test
@managed_history
def test_workflow_problem_display(self):
workflow_populator = self.workflow_populator
problem_workflow_1_id = workflow_populator.upload_yaml_workflow(
WORKFLOW_WITH_OLD_TOOL_VERSION, exact_tools=True
)
problem_workflow_2_id = workflow_populator.upload_yaml_workflow(
WORKFLOW_WITH_BAD_COLUMN_PARAMETER, exact_tools=True
)
self.navigate_to_pages()
self.click_grid_popup_option(name, "View")
self.screenshot("pages_view_simple")
name = self.create_page_and_edit()
editor = self._page_editor
editor.markdown_editor.wait_for_and_send_keys("moo\n\n\ncow\n\n")
editor.embed_workflow_display.wait_for_and_click()
self.screenshot("pages_editor_embed_workflow_dialog")
editor.workflow_selection(id=problem_workflow_1_id).wait_for_and_click()
self.sleep_for(self.wait_types.UX_RENDER)
editor.embed_workflow_display.wait_for_and_click()
editor.workflow_selection(id=problem_workflow_2_id).wait_for_and_click()
self.sleep_for(self.wait_types.UX_RENDER)
editor.save.wait_for_and_click()
self.page_open_with_name(name, "page_view_with_workflow_problems")
@property
def _page_editor(self):
return self.components.pages.editor