graphdb-workbench-tests 3.4.0-TR4 → 3.4.0-TR5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/.editorconfig +17 -0
  2. package/.nycrc +10 -0
  3. package/cypress-flaky.config.js +20 -6
  4. package/cypress-legacy.config.js +47 -0
  5. package/cypress-security.config.js +36 -0
  6. package/cypress.config.js +45 -6
  7. package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
  8. package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +2 -2
  9. package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
  10. package/e2e-flaky/import/import-user-data-url.spec.js +63 -0
  11. package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +10 -18
  12. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +2 -12
  13. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.spec.js +1 -7
  14. package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +3 -7
  15. package/{integration → e2e-legacy}/cluster/cluster-states.spec.js +3 -3
  16. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +42 -0
  17. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +43 -0
  18. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +30 -0
  19. package/{integration/explore → e2e-legacy/explore/class-hierarchy}/class.hierarchy.spec.js +1 -1
  20. package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +42 -0
  21. package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +39 -0
  22. package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +21 -0
  23. package/{integration/explore/class.relationships.spec.js → e2e-legacy/explore/class-relationships/class-relationships.spec.js} +20 -50
  24. package/{integration/explore → e2e-legacy/explore/graphs-overview}/graphs.overview.spec.js +4 -4
  25. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +44 -0
  26. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +32 -0
  27. package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +38 -0
  28. package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +21 -0
  29. package/{integration → e2e-legacy}/explore/visual-graph/graphs-config.spec.js +5 -10
  30. package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +58 -0
  31. package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +142 -0
  32. package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.spec.js +14 -2
  33. package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +38 -0
  34. package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +21 -0
  35. package/{integration → e2e-legacy}/explore/visual-graph/visual.graph.spec.js +75 -96
  36. package/{integration → e2e-legacy}/graphql/create-graphql-endpoint.spec.js +0 -2
  37. package/{integration → e2e-legacy}/graphql/edit-graphql-enpoint.spec.js +1 -1
  38. package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
  39. package/{integration → e2e-legacy}/graphql/graphql-endpoint-management-view.spec.js +4 -4
  40. package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +43 -0
  41. package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +39 -0
  42. package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +21 -0
  43. package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +40 -0
  44. package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +38 -0
  45. package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +22 -0
  46. package/{integration → e2e-legacy}/graphql/graphql-playground.spec.js +1 -1
  47. package/e2e-legacy/graphql/graphql-theme.spec.js +73 -0
  48. package/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +0 -6
  49. package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +49 -0
  50. package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +89 -0
  51. package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +76 -0
  52. package/e2e-legacy/guides/connectors/connectors-guide.spec.js +163 -0
  53. package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +74 -0
  54. package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +55 -0
  55. package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +92 -0
  56. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +63 -0
  57. package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +105 -0
  58. package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +302 -0
  59. package/e2e-legacy/guides/navigation/navigation-guide.spec.js +64 -0
  60. package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +42 -0
  61. package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +69 -0
  62. package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +168 -0
  63. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +158 -0
  64. package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +92 -0
  65. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +88 -0
  66. package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +372 -0
  67. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +36 -0
  68. package/e2e-legacy/help/guides/guides-autostart.spec.js +126 -0
  69. package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +83 -0
  70. package/e2e-legacy/help/guides/guides-with-repository.spec.js +32 -0
  71. package/e2e-legacy/help/guides/guides-without-repository.spec.js +20 -0
  72. package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +71 -0
  73. package/{integration/guides/star-wars-interactive-guide.js → e2e-legacy/help/guides/star-wars-interactive-guide.spec.js} +3 -2
  74. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +32 -0
  75. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +20 -0
  76. package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +32 -0
  77. package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +20 -0
  78. package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +182 -0
  79. package/e2e-legacy/home/documentation-link.spec.js +41 -0
  80. package/{integration → e2e-legacy}/home/google-analytics.spec.js +4 -6
  81. package/e2e-legacy/home/home-page-with-selected-repository.spec.js +69 -0
  82. package/e2e-legacy/home/home-page-without-repositories.spec.js +87 -0
  83. package/e2e-legacy/home/home-page-without-selected-repository.spec.js +59 -0
  84. package/{integration → e2e-legacy}/home/language-change.spec.js +2 -2
  85. package/e2e-legacy/home/rdf-resource-search.spec.js +160 -0
  86. package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
  87. package/{integration → e2e-legacy}/import/import-server-files.spec.js +5 -3
  88. package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +19 -13
  89. package/{integration → e2e-legacy}/import/import-user-data-text-snippet.spec.js +0 -2
  90. package/{integration → e2e-legacy}/import/import-user-data-url.spec.js +0 -23
  91. package/{integration → e2e-legacy}/import/import-user-data.spec.js +11 -4
  92. package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +51 -0
  93. package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +45 -0
  94. package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +28 -0
  95. package/e2e-legacy/license/license-with-repository.spec.js +113 -0
  96. package/e2e-legacy/license/license-without-repository.spec.js +103 -0
  97. package/{integration → e2e-legacy}/license/license.spec.js +4 -4
  98. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +36 -0
  99. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +25 -0
  100. package/{integration/monitor/monitor.backup-and-restore.spec.js → e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js} +2 -2
  101. package/{integration → e2e-legacy}/monitor/global-operation-statuses-component.spec.js +12 -5
  102. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +39 -0
  103. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +21 -0
  104. package/{integration/monitor → e2e-legacy/monitor/system}/monitor.resources.spec.js +3 -2
  105. package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
  106. package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
  107. package/e2e-legacy/not-found/not-found.spec.js +23 -0
  108. package/{integration → e2e-legacy}/repository/ontop-repository.spec.js +1 -1
  109. package/{integration → e2e-legacy}/repository/repositories.spec.js +37 -45
  110. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +181 -0
  111. package/{integration → e2e-legacy}/resource/resource.spec.js +50 -20
  112. package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +84 -0
  113. package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
  114. package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +4 -0
  115. package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +40 -0
  116. package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +27 -0
  117. package/{integration/setup → e2e-legacy/setup/autocomplete}/autocomplete.spec.js +6 -7
  118. package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +34 -0
  119. package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +25 -0
  120. package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +41 -0
  121. package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +21 -0
  122. package/{integration → e2e-legacy}/setup/connectors-lucene.spec.js +26 -10
  123. package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.spec.js +4 -4
  124. package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +39 -0
  125. package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +27 -0
  126. package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +44 -0
  127. package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +27 -0
  128. package/{integration/setup → e2e-legacy/setup/namespaces}/namespaces.spec.js +6 -5
  129. package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +38 -0
  130. package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +28 -0
  131. package/{integration/setup → e2e-legacy/setup/plugins}/plugins.spec.js +3 -3
  132. package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +40 -0
  133. package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +30 -0
  134. package/{integration/setup → e2e-legacy/setup/rdf-rank}/rdf-rank.spec.js +3 -5
  135. package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
  136. package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
  137. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
  138. package/e2e-legacy/setup/settings/my-settings.spec.js +207 -0
  139. package/{integration/setup/sparql-template-create.js → e2e-legacy/setup/sparql-template/sparql-template-create.spec.js} +16 -8
  140. package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +39 -0
  141. package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +29 -0
  142. package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-templates.spec.js +4 -4
  143. package/{integration/setup → e2e-legacy/setup/users-and-access}/user-and-access.spec.js +184 -87
  144. package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
  145. package/{integration → e2e-legacy}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
  146. package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
  147. package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +10 -8
  148. package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +1 -6
  149. package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.spec.js +1 -1
  150. package/{integration → e2e-legacy}/sparql-editor/saved-query/edit-query.spec.js +3 -3
  151. package/{integration → e2e-legacy}/sparql-editor/saved-query/readonly-query.spec.js +15 -24
  152. package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +32 -1
  153. package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
  154. package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
  155. package/{integration → e2e-legacy}/sparql-editor/yasgui-tabs.spec.js +2 -12
  156. package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +54 -0
  157. package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +5 -18
  158. package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +1 -6
  159. package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +106 -0
  160. package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +80 -0
  161. package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +53 -2
  162. package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +25 -2
  163. package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +3 -14
  164. package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +74 -6
  165. package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +24 -2
  166. package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +37 -66
  167. package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +6 -4
  168. package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +1 -2
  169. package/e2e-legacy/ttyg/edit-agent.spec.js +178 -0
  170. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +46 -0
  171. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +45 -0
  172. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
  173. package/{integration-flaky → e2e-legacy}/ttyg/ttyg-permission.spec.js +23 -17
  174. package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +2 -2
  175. package/e2e-security/repository/url-with-repository-id-parameter.spec.js +57 -0
  176. package/e2e-security/setup/home/cookie-policy.spec.js +290 -0
  177. package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +193 -0
  178. package/e2e-security/setup/users-and-access/graphql-user.spec.js +126 -0
  179. package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +70 -0
  180. package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +99 -0
  181. package/e2e-security/setup/users-and-access/user-and-access.spec.js +87 -0
  182. package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +38 -0
  183. package/eslint.config.js +39 -0
  184. package/fixtures/graph/graph-configurations.json +59 -0
  185. package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +12 -0
  186. package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +35 -0
  187. package/fixtures/guides/class-relations/class-relations-guide.json +33 -0
  188. package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +15 -0
  189. package/fixtures/guides/connectors/connectors-guide.json +66 -0
  190. package/fixtures/guides/connectors/lucene-connector-guide.json +120 -0
  191. package/fixtures/guides/create-repository/create-repository-guide.json +25 -0
  192. package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +36 -0
  193. package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +25 -0
  194. package/fixtures/guides/download-resource.ttl +629 -0
  195. package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +54 -0
  196. package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +30 -0
  197. package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +21 -0
  198. package/fixtures/guides/main-menu/main-menu-guide.json +98 -0
  199. package/fixtures/guides/navigation/navigation-guide.json +60 -0
  200. package/fixtures/guides/rdf-rank/rdf-rank-guide.json +18 -0
  201. package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +51 -0
  202. package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +25 -0
  203. package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +74 -0
  204. package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +26 -0
  205. package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +22 -0
  206. package/fixtures/guides/visual-graph/visual-graph-config-guide.json +39 -0
  207. package/fixtures/guides/visual-graph/visual-graph-guide.json +85 -0
  208. package/fixtures/guides/welcome/welcome-guide.json +18 -0
  209. package/fixtures/repositories/free-access.json +13 -0
  210. package/fixtures/similarity/get-ttyg-similarity-instances.json +10 -0
  211. package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +44 -0
  212. package/fixtures/ttyg/agent/get-agent-defaults.json +9 -2
  213. package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
  214. package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +8 -0
  215. package/fixtures/ttyg/agent/get-similarity-indexes.json +22 -0
  216. package/fixtures/ttyg/chats/ask-question-cancel.json +12 -0
  217. package/fixtures/ttyg/chats/ask-question.json +12 -2
  218. package/fixtures/ttyg/chats/cancel-question-response.json +1 -0
  219. package/fixtures/ttyg/chats/create/create-chat-response.json +10 -14
  220. package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +29 -0
  221. package/fixtures/ttyg/chats/explain-response-1.json +2 -48
  222. package/fixtures/ttyg/chats/explain-response-3.json +12 -0
  223. package/fixtures/ttyg/chats/get-chat.json +6 -1
  224. package/npm-shrinkwrap.json +11004 -3815
  225. package/package.json +58 -42
  226. package/plugins/index.js +10 -5
  227. package/steps/application-steps.js +8 -6
  228. package/steps/base-steps.js +29 -0
  229. package/steps/class-views-steps.js +35 -7
  230. package/steps/cluster/cluster-page-steps.js +12 -2
  231. package/steps/cookie-policy/cookie-consent-banner-steps.js +21 -0
  232. package/steps/cookie-policy/cookie-policy-modal.steps.js +56 -0
  233. package/steps/error-page-steps.js +9 -0
  234. package/steps/error-steps.js +15 -3
  235. package/steps/explore/class-relationships-steps.js +64 -0
  236. package/steps/explore/graphs-overview-steps.js +21 -1
  237. package/steps/explore/similarity-index-create-steps.js +5 -3
  238. package/steps/explore/similarity-indexes-steps.js +16 -2
  239. package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
  240. package/steps/graphql/playground-editor-steps.js +46 -0
  241. package/steps/guides/guide-dialog-steps.js +81 -2
  242. package/steps/guides/guide-steps.js +54 -2
  243. package/steps/guides/movies-guide-steps.js +2 -1
  244. package/steps/header-steps.js +22 -0
  245. package/steps/home-steps.js +184 -77
  246. package/steps/import/import-resource-message-dialog.js +1 -1
  247. package/steps/import/import-steps.js +12 -16
  248. package/steps/import/import-user-data-steps.js +5 -1
  249. package/steps/language-selector-steps.js +2 -2
  250. package/steps/license-steps.js +91 -9
  251. package/steps/login-steps.js +31 -6
  252. package/steps/main-menu-steps.js +244 -19
  253. package/steps/modal-dialog-steps.js +32 -1
  254. package/steps/monitoring/backup-and-restore-steps.js +9 -3
  255. package/steps/monitoring/queries-and-updates-steps.js +20 -0
  256. package/steps/monitoring/system-monitoring-steps.js +40 -0
  257. package/steps/not-found/not-found-steps.js +23 -0
  258. package/steps/operations-statuses-component-steps.js +5 -10
  259. package/steps/rdf-resource-search-steps.js +55 -0
  260. package/steps/repository-selector-steps.js +3 -3
  261. package/steps/repository-steps.js +88 -18
  262. package/steps/resource/resource-steps.js +6 -10
  263. package/steps/rest-api-documentation-steps.js +15 -0
  264. package/steps/setup/acl-management-steps.js +18 -2
  265. package/steps/setup/autocomplete-steps.js +23 -8
  266. package/steps/setup/connectors-steps.js +32 -0
  267. package/steps/setup/jdbc-steps.js +18 -4
  268. package/steps/setup/namespace-steps.js +10 -7
  269. package/steps/setup/plugins-steps.js +12 -5
  270. package/steps/setup/rdf-rank-steps.js +23 -9
  271. package/steps/setup/settings-steps.js +101 -2
  272. package/steps/setup/sparql-templates-steps.js +19 -1
  273. package/steps/setup/user-and-access-steps.js +50 -16
  274. package/steps/shared-modal-dialog-steps.js +45 -0
  275. package/steps/sparql-editor-steps.js +21 -2
  276. package/steps/sparql-steps.js +13 -1
  277. package/steps/system-information-steps.js +70 -0
  278. package/steps/toaster-steps.js +18 -6
  279. package/steps/ttyg/chat-panel-steps.js +40 -2
  280. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +136 -31
  281. package/steps/ttyg/ttyg-view-steps.js +80 -10
  282. package/steps/visual-graph-split-button-steps.js +45 -0
  283. package/steps/visual-graph-steps.js +106 -10
  284. package/steps/widgets/active-repository-widget-steps.js +29 -0
  285. package/steps/widgets/license-widget-steps.js +9 -0
  286. package/steps/widgets/repository-errors-widget-steps.js +21 -0
  287. package/steps/widgets/saved-sparql-queries-widget-steps.js +9 -0
  288. package/steps/yasgui/yasgui-loader.js +3 -3
  289. package/steps/yasgui/yasgui-steps.js +1 -1
  290. package/steps/yasgui/yasqe-steps.js +35 -4
  291. package/steps/yasgui/yasr-steps.js +35 -5
  292. package/stubs/autocomplete/autocomplete-stubs.js +7 -0
  293. package/stubs/browser-stubs.js +21 -0
  294. package/stubs/environment-stubs.js +9 -1
  295. package/stubs/graph-config-stubs.js +17 -0
  296. package/stubs/guides/guides-stubs.js +103 -0
  297. package/stubs/license-stubs.js +51 -0
  298. package/stubs/repositories/repositories-stubs.js +180 -75
  299. package/stubs/saved-queries-stubs.js +5 -0
  300. package/stubs/security-stubs.js +12 -0
  301. package/stubs/similarity-index-stubs.js +4 -0
  302. package/stubs/sparql-stubs.js +10 -0
  303. package/stubs/ttyg/ttyg-stubs.js +64 -15
  304. package/stubs/yasgui/query-stubs.js +5 -1
  305. package/support/commands.js +22 -1
  306. package/support/connector-commands.js +13 -0
  307. package/support/e2e-security.js +9 -0
  308. package/support/{index.js → e2e.js} +9 -3
  309. package/support/repository-commands.js +29 -4
  310. package/support/settings-commands.js +33 -1
  311. package/support/url-commands.js +13 -0
  312. package/support/user-commands.js +9 -4
  313. package/utils/html-util.js +24 -4
  314. package/Dockerfile +0 -11
  315. package/fixtures/locale-en.json +0 -3342
  316. package/integration/explore/similarity-index/similarity-index-create.spec.js +0 -333
  317. package/integration/explore/similarity-index/similarity-index.spec.js +0 -88
  318. package/integration/explore/similarity-index/similarity.spec.js +0 -628
  319. package/integration/guides/movies-interactive-guide.spec.js +0 -73
  320. package/integration/home/cookie-policy.spec.js +0 -90
  321. package/integration/home/documentation-link.spec.js +0 -60
  322. package/integration/home/language-selector.spec.js +0 -19
  323. package/integration/home/rdf-resource-search.spec.js +0 -177
  324. package/integration/home/view-resource-autocomplete.spec.js +0 -52
  325. package/integration/home/workbench.home.spec.js +0 -30
  326. package/integration/monitor/monitor.queries.spec.js +0 -31
  327. package/integration/setup/my-settings.spec.js +0 -289
  328. package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -57
  329. package/integration/ttyg/edit-agent.spec.js +0 -99
  330. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
  331. package/stubs/repositories-stub.js +0 -73
  332. package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
  333. package/{integration-flaky → e2e-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
  334. package/{integration-flaky → e2e-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
  335. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
  336. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
  337. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
  338. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
  339. package/{integration → e2e-legacy}/cluster/cluster-legend.spec.js +0 -0
  340. package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
  341. package/{integration → e2e-legacy}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
  342. package/{integration → e2e-legacy}/graphql/delete-graphql-endpoint.spec.js +0 -0
  343. package/{integration → e2e-legacy}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
  344. package/{integration → e2e-legacy}/graphql/set-default-graphql-endpoint.spec.js +0 -0
  345. package/{integration/help → e2e-legacy/help/system-information}/system-information.spec.js +0 -0
  346. package/{integration → e2e-legacy}/home/create-repository.spec.js +0 -0
  347. package/{integration → e2e-legacy}/import/import-server-files-batch-operations.spec.js +0 -0
  348. package/{integration → e2e-legacy}/import/import-user-data-settings-dialog.spec.js +0 -0
  349. package/{integration → e2e-legacy}/import/import-view.spec.js +0 -0
  350. package/{integration → e2e-legacy}/repository/attach-remote-location.spec.js +1 -1
  351. /package/{integration → e2e-legacy}/repository/repository-commands.spec.js +0 -0
  352. /package/{integration → e2e-legacy}/setup/aclmanagement/delete-rule.spec.js +0 -0
  353. /package/{integration → e2e-legacy}/setup/aclmanagement/edit-rule.spec.js +0 -0
  354. /package/{integration → e2e-legacy}/setup/aclmanagement/render-rules.spec.js +0 -0
  355. /package/{integration → e2e-legacy}/setup/aclmanagement/reorder-rules.spec.js +0 -0
  356. /package/{integration → e2e-legacy}/setup/aclmanagement/revert-rules.spec.js +0 -0
  357. /package/{integration → e2e-legacy}/setup/aclmanagement/scopes.spec.js +0 -0
  358. /package/{integration → e2e-legacy}/setup/aclmanagement/update-rules.spec.js +0 -0
  359. /package/{integration → e2e-legacy}/setup/jdbc/jdbc.spec.js +0 -0
  360. /package/{integration → e2e-legacy}/sparql-editor/actions/execute-query.spec.js +0 -0
  361. /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
  362. /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
  363. /package/{integration → e2e-legacy}/sparql-editor/saved-query/delete-query.spec.js +0 -0
  364. /package/{integration → e2e-legacy}/sparql-editor/sparql-editor.spec.js +0 -0
  365. /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
@@ -23,6 +23,7 @@ class ImportSteps {
23
23
  static visit() {
24
24
  cy.visit('/import');
25
25
  cy.url().should('include', '/import');
26
+ cy.get('#wb-import h1').should('be.visible');
26
27
  }
27
28
 
28
29
  static getView() {
@@ -34,15 +35,19 @@ class ImportSteps {
34
35
  }
35
36
 
36
37
  static showPageInfoPopover() {
37
- return this.getPageInfoIcon().realHover();
38
+ return this.getPageInfoIcon().trigger('mouseover');
38
39
  }
39
40
 
40
41
  static getPageInfoPopover() {
41
42
  return cy.get('.help-info');
42
43
  }
43
44
 
45
+ static getPageInfoPopoverTitle() {
46
+ return cy.get('.help-info h4');
47
+ }
48
+
44
49
  static hidePageInfoPopover() {
45
- return cy.get('.menu-element-root').realHover();
50
+ return this.getPageInfoIcon().trigger('mouseleave');
46
51
  }
47
52
 
48
53
  static visitUserImport(repository) {
@@ -50,7 +55,7 @@ class ImportSteps {
50
55
  }
51
56
 
52
57
  static verifyUserImportUrl() {
53
- cy.url().should('include', '/import#user');
58
+ cy.url().should('include', '/import').and('include', '#user');
54
59
  }
55
60
 
56
61
  static visitServerImport(repository) {
@@ -67,13 +72,7 @@ class ImportSteps {
67
72
  }
68
73
 
69
74
  cy.visit('/import#' + type);
70
-
71
- // cy.get('.ot-splash').should('not.be.visible');
72
-
73
75
  cy.get('#import-' + type).should('be.visible');
74
-
75
- // cy.get('.ot-loader').should('not.be.visible');
76
-
77
76
  return this;
78
77
  }
79
78
 
@@ -98,7 +97,6 @@ class ImportSteps {
98
97
  }
99
98
 
100
99
  static openUserDataTab() {
101
- // cy.get('.ot-loader').should('not.be.visible');
102
100
  return this.getTabs().eq(0).click();
103
101
  }
104
102
 
@@ -111,7 +109,6 @@ class ImportSteps {
111
109
  }
112
110
 
113
111
  static openServerFilesTab() {
114
- // cy.get('.ot-loader').should('not.be.visible');
115
112
  return this.getTabs().eq(1).click();
116
113
  }
117
114
 
@@ -198,7 +195,6 @@ class ImportSteps {
198
195
  }
199
196
 
200
197
  static checkImportedResource(index, resourceName, expectedStatus) {
201
- if (expectedStatus === undefined) {}
202
198
  const status = expectedStatus || 'Imported successfully';
203
199
  this.getResourceByName(resourceName).should('contain', resourceName);
204
200
  this.getResourceStatus(resourceName).should('contain', status);
@@ -209,7 +205,6 @@ class ImportSteps {
209
205
  }
210
206
 
211
207
  static checkUserDataUploadedResource(index, resourceName) {
212
- // this.getResource(index).should('contain', resourceName);
213
208
  this.getResourceByName(resourceName).should('contain', resourceName);
214
209
  this.getResourceStatus(resourceName).should('be.hidden');
215
210
  }
@@ -268,11 +263,11 @@ class ImportSteps {
268
263
  }
269
264
 
270
265
  static deleteUploadedFile(index) {
271
- this.getResource(index).find('.import-resource-action-remove-btn').click();
266
+ this.getResource(index).find('.import-resource-action-remove-btn').invoke('show').trigger('click');
272
267
  }
273
268
 
274
269
  static importFile(index) {
275
- this.getResource(index).find('.import-resource-action-import-btn').click();
270
+ this.getResource(index).find('.import-resource-action-import-btn').invoke('show').trigger('click');
276
271
  }
277
272
 
278
273
  static importResourceByName(name) {
@@ -296,7 +291,8 @@ class ImportSteps {
296
291
  }
297
292
 
298
293
  static selectFile(files) {
299
- cy.get('#wb-import-uploadFile label').selectFile(files);
294
+ cy.wait(1000)
295
+ cy.get('#wb-import-uploadFile label').selectFile(files, { force: true });
300
296
  }
301
297
 
302
298
  static uploadFile(filePath) {
@@ -10,6 +10,10 @@ export class ImportUserDataSteps extends ImportSteps {
10
10
  return this.getView().find('.user-data-import-help');
11
11
  }
12
12
 
13
+ static getFileSizeLimitationWarningMessage() {
14
+ return this.getView().find('.file-size-limit-warning');
15
+ }
16
+
13
17
  static openImportTextSnippetDialog() {
14
18
  cy.get('#import-user .import-rdf-snippet-btn').click()
15
19
  // Forces the popover to disappear as it covers the modal and Cypress refuses to continue
@@ -170,6 +174,6 @@ export class ImportUserDataSteps extends ImportSteps {
170
174
  }
171
175
 
172
176
  static getDeleteImportEntryButton() {
173
- return cy.get('.icon-trash');
177
+ return cy.get('.ri-delete-bin-6-line');
174
178
  }
175
179
  }
@@ -1,6 +1,6 @@
1
1
  export class LanguageSelectorSteps {
2
2
  static getLanguageSelectorDropdown() {
3
- return cy.get('#languageGroupDrop').should('be.visible');
3
+ return cy.get('.onto-language-selector').should('be.visible');
4
4
  }
5
5
 
6
6
  static openLanguageSelectorDropdown() {
@@ -9,7 +9,7 @@ export class LanguageSelectorSteps {
9
9
 
10
10
  static changeLanguage(language) {
11
11
  LanguageSelectorSteps.openLanguageSelectorDropdown();
12
- cy.get('#lang-select-' + language).click();
12
+ this.getLanguageSelectorDropdown().find(`button.${language}`).click();
13
13
  }
14
14
 
15
15
  static switchToFr() {
@@ -1,25 +1,107 @@
1
- export class LicenseSteps {
1
+ import {BaseSteps} from "./base-steps";
2
+
3
+ export class LicenseSteps extends BaseSteps {
2
4
  static visit() {
3
5
  cy.visit('/license');
4
6
  }
5
7
 
6
- static getLicense() {
7
- return cy.get('.license-container');
8
+ static getLicensePage() {
9
+ return this.getByTestId('license-info-page');
10
+ }
11
+
12
+ static getLicenseAlertButton() {
13
+ return this.getByTestId('onto-license-alert');
8
14
  }
9
15
 
10
16
  static getLicenseHeader() {
11
- return LicenseSteps.getLicense().find('.card-header');
17
+ return LicenseSteps.getLicensePage().find('.card-header');
18
+ }
19
+
20
+ static getRemoveLicenseButton() {
21
+ return LicenseSteps.getLicensePage().getByTestId('remove-license-button');
22
+ }
23
+
24
+ static getSetNewLicenseButton() {
25
+ return LicenseSteps.getLicensePage().getByTestId('set-new-license-link');
26
+ }
27
+
28
+ static getNoValidLicenseAlert() {
29
+ return LicenseSteps.getLicensePage().getByTestId('no-valid-license-alert');
30
+ }
31
+
32
+ static getNoLicenseAlertTitle() {
33
+ return LicenseSteps.getLicensePage().getByTestId('no-license-title');
34
+ }
35
+
36
+ static getValidLicenseAlertTitle() {
37
+ return LicenseSteps.getLicensePage().getByTestId('valid-license-title');
38
+ }
39
+
40
+ static getLicenseContent() {
41
+ return LicenseSteps.getLicensePage().getByTestId('license-content');
12
42
  }
13
43
 
14
44
  static getHardcodedAlertMessage() {
15
- return cy.get('.license-hardcoded-alert-message');
45
+ return cy.getByTestId('license-hardcoded-alert-message');
46
+ }
47
+
48
+ static verifyLicenseNotSet() {
49
+ LicenseSteps.getLicensePage().should('be.visible');
50
+ LicenseSteps.getLicenseAlertButton().should('exist');
51
+ LicenseSteps.getRemoveLicenseButton().should('be.visible').should('be.disabled');
52
+ LicenseSteps.getSetNewLicenseButton().should('be.visible');
53
+ LicenseSteps.getNoValidLicenseAlert().should('exist');
54
+ LicenseSteps.getNoLicenseAlertTitle().should('exist');
55
+ LicenseSteps.getValidLicenseAlertTitle().should('not.exist');
56
+ LicenseSteps.getLicenseContent().should('not.exist');
57
+ LicenseSteps.getHardcodedAlertMessage().should('not.exist');
58
+ }
59
+
60
+ static verifyNoValidLicense() {
61
+ LicenseSteps.getLicensePage().should('be.visible');
62
+ LicenseSteps.getLicenseAlertButton().should('be.visible');
63
+ LicenseSteps.getRemoveLicenseButton().should('exist');
64
+ LicenseSteps.getSetNewLicenseButton().should('be.visible');
65
+ LicenseSteps.getNoValidLicenseAlert().should('be.visible');
66
+ LicenseSteps.getNoLicenseAlertTitle().should('not.exist');
67
+ LicenseSteps.getValidLicenseAlertTitle().should('exist');
68
+ LicenseSteps.getLicenseContent().should('exist');
69
+ LicenseSteps.getHardcodedAlertMessage().should('not.exist');
70
+ }
71
+
72
+ static verifyValidLicense() {
73
+ LicenseSteps.getLicensePage().should('be.visible');
74
+ LicenseSteps.getLicenseAlertButton().should('not.exist');
75
+ LicenseSteps.getRemoveLicenseButton().should('be.visible').should('be.enabled');
76
+ LicenseSteps.getSetNewLicenseButton().should('be.visible');
77
+ LicenseSteps.getNoValidLicenseAlert().should('not.exist');
78
+ LicenseSteps.getNoLicenseAlertTitle().should('not.exist');
79
+ LicenseSteps.getValidLicenseAlertTitle().should('exist');
80
+ LicenseSteps.getLicenseContent().should('exist');
81
+ LicenseSteps.getHardcodedAlertMessage().should('not.exist');
16
82
  }
17
83
 
18
- static getRemoveLicenseLicenseButton() {
19
- return LicenseSteps.getLicense().find('.revert-to-free-license-btn');
84
+ static verifyNoValidLicenseHardcoded() {
85
+ LicenseSteps.getLicensePage().should('be.visible');
86
+ LicenseSteps.getLicenseAlertButton().should('be.visible');
87
+ LicenseSteps.getRemoveLicenseButton().should('not.exist');
88
+ LicenseSteps.getSetNewLicenseButton().should('not.exist');
89
+ LicenseSteps.getNoValidLicenseAlert().should('exist');
90
+ LicenseSteps.getNoLicenseAlertTitle().should('not.exist');
91
+ LicenseSteps.getValidLicenseAlertTitle().should('exist');
92
+ LicenseSteps.getLicenseContent().should('exist');
93
+ LicenseSteps.getHardcodedAlertMessage().should('exist');
20
94
  }
21
95
 
22
- static getSetNewLicenseElement() {
23
- return LicenseSteps.getLicense().find('.set-new-license-link');
96
+ static verifyValidLicenseHardcoded() {
97
+ LicenseSteps.getLicensePage().should('be.visible');
98
+ LicenseSteps.getLicenseAlertButton().should('not.exist');
99
+ LicenseSteps.getRemoveLicenseButton().should('not.exist');
100
+ LicenseSteps.getSetNewLicenseButton().should('not.exist');
101
+ LicenseSteps.getNoValidLicenseAlert().should('not.exist');
102
+ LicenseSteps.getNoLicenseAlertTitle().should('not.exist');
103
+ LicenseSteps.getValidLicenseAlertTitle().should('exist');
104
+ LicenseSteps.getLicenseContent().should('exist');
105
+ LicenseSteps.getHardcodedAlertMessage().should('exist');
24
106
  }
25
107
  }
@@ -1,19 +1,44 @@
1
+ import {EnvironmentStubs} from "../stubs/environment-stubs";
2
+
1
3
  export class LoginSteps {
2
4
  static visitLoginPage() {
3
5
  cy.visit('/login');
4
6
  }
5
7
 
8
+ static visitInProdMode() {
9
+ cy.visit('/login', {
10
+ onBeforeLoad: () => {
11
+ EnvironmentStubs.stubWbProdMode();
12
+ }
13
+ });
14
+ }
15
+
16
+ static visitLoginPageWithReturnUrl(returnURL) {
17
+ const returnURLEncoded = encodeURIComponent(returnURL);
18
+ cy.visit(`/login?r=${returnURLEncoded}`);
19
+ }
20
+
21
+ static getLoginPage() {
22
+ return cy.get('app-login');
23
+ }
24
+
25
+ static navigateToLoginPage() {
26
+ cy.get('onto-user-login').click();
27
+ }
28
+
6
29
  static loginWithUser(username, password) {
7
- cy.get('#wb-login-username').type(username);
8
- cy.get('#wb-login-password').type(password);
9
- cy.get('#wb-login-submitLogin').click();
30
+ cy.get('.login-form').should('be.visible');
31
+ cy.getByTestId('username-input').type(username);
32
+ cy.getByTestId('password-input').type(password);
33
+ cy.getByTestId('submit-btn').click();
10
34
  }
11
35
 
36
+ // TODO: Use the HeaderSteps.logout()
12
37
  static logout() {
13
- cy.get('#btnGroupDrop2').click();
14
- cy.get('.dropdown-item')
38
+ cy.get('onto-user-menu').click();
39
+ cy.get('.onto-user-menu-dropdown')
15
40
  .contains('Logout')
16
- .closest('a')
41
+ .first()
17
42
  // Force the click because Cypress sometimes determines that the item has 0x0 dimensions
18
43
  .click({force: true});
19
44
  }
@@ -1,43 +1,54 @@
1
1
  export class MainMenuSteps {
2
2
 
3
3
  static getMainMenu() {
4
- return cy.get('.main-menu');
5
- }
6
-
7
- static openHomePage() {
8
- MainMenuSteps.getMainMenu().find('.home-page').click();
4
+ return cy.get('onto-navbar');
9
5
  }
10
6
 
11
7
  static getMenuButton(menuName) {
12
8
  return MainMenuSteps.getMainMenu().find('.menu-element').contains(menuName);
13
9
  }
14
10
 
11
+ static getSubMenuButtonByName(menuName) {
12
+ return MainMenuSteps.getMainMenu().find('.sub-menu-link').contains(menuName).closest('.sub-menu-link');
13
+ }
14
+
15
15
  static getMenuImport() {
16
16
  return MainMenuSteps.getMenuButton('Import');
17
17
  }
18
18
 
19
- static getMenuExplore() {
20
- return MainMenuSteps.getMenuButton('Explore');
19
+ // TODO: temporary using more complex implementation until we have two SPARQL menu elements in the navbar
20
+ static getMenuSparql() {
21
+ return MainMenuSteps.getMenuButton('SPARQL');
21
22
  }
22
23
 
23
- static getMenuSetup() {
24
- return MainMenuSteps.getMenuButton('Setup');
24
+ static clickOnSparqlMenu() {
25
+ MainMenuSteps.getMenuSparql().click();
25
26
  }
26
27
 
27
- static getMenuSparql() {
28
- return MainMenuSteps.getMenuButton('SPARQL');
28
+ static openGraphQlMenu() {
29
+ return this.clickOnSubmenuTriggerElement('GraphQL');
30
+ }
31
+
32
+ static clickOnEndpointManagement() {
33
+ this.openGraphQlMenu();
34
+ this.clickOnSubMenu('Endpoint Management');
35
+ }
36
+
37
+ static clickOnGraphQLPlayground() {
38
+ this.openGraphQlMenu();
39
+ this.clickOnSubMenu('GraphQL Playground');
29
40
  }
30
41
 
31
42
  static getSubmenuAutocomplete() {
32
- return MainMenuSteps.getSubMenuButton("Autocomplete");
43
+ return MainMenuSteps.getSubMenuButton("sub-menu-autocomplete");
33
44
  }
34
45
 
35
46
  static getSubmenuClassHierarchy() {
36
- return MainMenuSteps.getSubMenuButton("Class hierarchy");
47
+ return MainMenuSteps.getSubMenuButton("menu-class-hierarchy");
37
48
  }
38
49
 
39
50
  static getSubmenuVisualGraph() {
40
- return MainMenuSteps.getSubMenuButton("Visual graph");
51
+ return MainMenuSteps.getSubMenuButton("sub-menu-visual-graph");
41
52
  }
42
53
 
43
54
  static clickOnMenu(menuName) {
@@ -45,20 +56,24 @@ export class MainMenuSteps {
45
56
  MainMenuSteps.getMenuButton(menuName).click({force: true});
46
57
  }
47
58
 
59
+ static clickOnSubmenuTriggerElement(menuName) {
60
+ MainMenuSteps.getMainMenu().find('.menu-element-root').contains(menuName).parent().click();
61
+ }
62
+
48
63
  static clickOnMenuImport() {
49
64
  MainMenuSteps.clickOnMenu('Import');
50
65
  }
51
66
 
52
67
  static clickOnExplore() {
53
- MainMenuSteps.clickOnMenu('Explore');
68
+ MainMenuSteps.clickOnSubmenuTriggerElement('Explore');
54
69
  }
55
70
 
56
71
  static getSubMenus() {
57
- return cy.get('.sub-menu-item');
72
+ return MainMenuSteps.getMainMenu().find('.sub-menu');
58
73
  }
59
74
 
60
- static getSubMenuButton(submenuName) {
61
- return MainMenuSteps.getSubMenus().contains(submenuName);
75
+ static getSubMenuButton(testId) {
76
+ return this.getSubMenus().getByTestId(testId);
62
77
  }
63
78
 
64
79
  static clickOnSubMenu(submenuName) {
@@ -66,6 +81,216 @@ export class MainMenuSteps {
66
81
  }
67
82
 
68
83
  static clickOnGraphsOverview() {
69
- MainMenuSteps.clickOnSubMenu('Graphs overview');
84
+ this.clickOnExplore();
85
+ this.getSubMenuButton('sub-menu-graph-overview').click();
86
+ }
87
+
88
+ static clickOnClassHierarchy() {
89
+ this.clickOnExplore();
90
+ this.clickOnSubmenuClassHierarchy();
91
+ }
92
+
93
+ static clickOnSubmenuClassHierarchy() {
94
+ this.getSubMenuButton('menu-class-hierarchy').click();
95
+ }
96
+
97
+ static clickOnVisualGraph() {
98
+ this.clickOnExplore();
99
+ this.clickOnSubmenuVisualGraph();
100
+ }
101
+
102
+ static clickOnSubmenuVisualGraph() {
103
+ this.getSubMenuButton('sub-menu-visual-graph').click();
104
+ }
105
+
106
+ static clickOnClassRelationships() {
107
+ this.clickOnExplore();
108
+ this.clickOnSubmenuClassRelationships();
109
+ }
110
+
111
+ static clickOnSubmenuClassRelationships() {
112
+ this.getSubMenuButton('sub-menu-class-relationships').click();
113
+ }
114
+
115
+ static clickOnSimilarity() {
116
+ this.clickOnExplore();
117
+ this.getSubMenuButton('sub-menu-similarity').click();
118
+ }
119
+
120
+ static clickOnSubmenuSimilarity() {
121
+ this.getSubMenuButton('sub-menu-similarity').click();
122
+ }
123
+
124
+ // --------------------------
125
+ // -- Monitoring menu --
126
+ // --------------------------
127
+ static getMenuMonitoring() {
128
+ return MainMenuSteps.getMainMenu().getByTestId('menu-monitoring');
129
+ }
130
+
131
+ static clickOnMenuMonitoring () {
132
+ this.getMenuMonitoring().click();
133
+ }
134
+
135
+ static clickOnQueryAndUpdate() {
136
+ this.clickOnMenuMonitoring();
137
+ this.getSubMenuButton('sub-menu-queries-and-updates').click();
138
+ }
139
+
140
+ static clickOnBackupAndRestore() {
141
+ this.clickOnMenuMonitoring();
142
+ this.getSubMenuButton('sub-menu-backup-and-restore').click();
143
+ }
144
+
145
+
146
+ static clickOnSystemMonitoring() {
147
+ this.clickOnMenuMonitoring();
148
+ this.getSubMenuButton('sub-menu-system-monitoring').click();
149
+ }
150
+
151
+ // --------------------------
152
+ // -- Setup menu --
153
+ // --------------------------
154
+ static getMenuSetup() {
155
+ return MainMenuSteps.getMainMenu().getByTestId('menu-setup');
156
+ }
157
+
158
+ static clickOnMenuSetup() {
159
+ this.getMenuSetup().click();
160
+ }
161
+
162
+ static clickOnRepositories() {
163
+ this.clickOnMenuSetup();
164
+ this.clickOnRepositoriesSubmenu();
165
+ }
166
+
167
+ static clickOnRepositoriesSubmenu() {
168
+ this.getSubMenuButton('sub-menu-repositories').click();
169
+ }
170
+
171
+ static clickOnACLManagement() {
172
+ this.clickOnMenuSetup();
173
+ this.getSubMenuButton('sub-menu-acl-management').click();
174
+ }
175
+
176
+ static clickOnUsersAndAccess() {
177
+ this.clickOnMenuSetup();
178
+ this.getSubMenuButton('sub-menu-users-and-access').click();
179
+ }
180
+
181
+ static clickOnLicense() {
182
+ this.clickOnMenuSetup();
183
+ this.getSubMenuButton('sub-menu-license').click();
184
+ }
185
+
186
+ static clickOnSparqlTemplates() {
187
+ this.clickOnMenuSetup();
188
+ this.getSubMenuButton('sub-menu-sparql-templates').click();
189
+ }
190
+
191
+ static clickOnJDBC() {
192
+ this.clickOnMenuSetup();
193
+ this.getSubMenuButton('sub-menu-jdbc').click();
194
+ }
195
+
196
+ static clickOnRDFRank() {
197
+ this.clickOnMenuSetup();
198
+ this.clickOnSubmenuRDFRank();
199
+ }
200
+
201
+ static clickOnSubmenuRDFRank() {
202
+ this.getSubMenuButton('sub-menu-rdf-rank').click();
203
+ }
204
+
205
+ static clickOnConnectors() {
206
+ this.clickOnMenuSetup();
207
+ this.clickOnSubmenuConnectors();
208
+ }
209
+
210
+ static clickOnSubmenuConnectors() {
211
+ this.getSubMenuButton('sub-menu-connectors').click();
212
+ }
213
+
214
+ static clickOnMySettings() {
215
+ this.clickOnMenuSetup();
216
+ this.getSubMenuButton('sub-menu-my-settings').click();
217
+ }
218
+
219
+ static clickOnAutocomplete() {
220
+ this.clickOnMenuSetup();
221
+ this.clickOnSubmenuAutocomplete();
222
+ }
223
+
224
+ static clickOnSubmenuAutocomplete() {
225
+ this.getSubmenuAutocomplete().click();
226
+ }
227
+
228
+ static clickOnNamespaces() {
229
+ this.clickOnMenuSetup();
230
+ this.getSubMenuButton('sub-menu-namespaces').click();
231
+ }
232
+
233
+ static clickOnPlugins() {
234
+ this.clickOnMenuSetup();
235
+ this.getSubMenuButton('sub-menu-plugins').click();
236
+ }
237
+
238
+ // --------------------------
239
+ // -- Help menu --
240
+ // --------------------------
241
+
242
+ static getMenuHelp() {
243
+ return MainMenuSteps.getMainMenu().getByTestId('menu-help');
244
+ }
245
+
246
+ static clickOnMenuHelp() {
247
+ this.getMenuHelp().click();
248
+ }
249
+
250
+ static clickOnInteractiveGuides() {
251
+ this.clickOnMenuHelp();
252
+ this.getSubMenuButton('sub-menu-guide').click();
253
+ }
254
+
255
+ static clickOnRestApiDocumentation() {
256
+ this.clickOnMenuHelp();
257
+ this.getSubMenuButton('sub-menu-rest-api').click();
258
+ }
259
+
260
+ static clickOnSystemInformation() {
261
+ this.clickOnMenuHelp();
262
+ this.getSubMenuButton('sub-menu-system-information').click();
263
+ }
264
+
265
+ static clickOnCluster() {
266
+ this.clickOnMenuSetup();
267
+ this.getSubMenuButton('sub-menu-cluster').click();
268
+ }
269
+
270
+ // --------------------------
271
+ // -- Lab menu --
272
+ // --------------------------
273
+ static getMenuLab() {
274
+ return this.getMainMenu().getByTestId('menu-lab');
275
+ }
276
+
277
+ static clickOnMenuLab() {
278
+ return this.getMenuLab().click();
279
+ }
280
+
281
+ static clickOnTTYG() {
282
+ this.clickOnMenuLab();
283
+ this.clickOnTTYGSubmenu()
284
+ }
285
+
286
+ static clickOnTTYGSubmenu() {
287
+ this.getSubMenuButton('sub-menu-ttyg').click();
288
+ }
289
+
290
+ // --------------------------
291
+ // -- Explore menu --
292
+ // --------------------------
293
+ static getMenuExplore() {
294
+ return MainMenuSteps.getMainMenu().getByTestId('menu-explore');
70
295
  }
71
296
  }
@@ -1,8 +1,19 @@
1
- export class ModalDialogSteps {
1
+ import {BaseSteps} from "./base-steps.js";
2
+
3
+ export class ModalDialogSteps extends BaseSteps {
2
4
  static getDialog(cssClass = '.modal-dialog') {
3
5
  return cy.get(cssClass);
4
6
  }
5
7
 
8
+ /**
9
+ * Get the modal alert element. Modal alerts is also a modal dialog, but it has a modal-alert class on the main div
10
+ * which is parent of modal-dialog.
11
+ * @returns {Cypress.Chainable<JQuery<HTMLElement>>}
12
+ */
13
+ static getModalAlert() {
14
+ return cy.get('.modal-alert');
15
+ }
16
+
6
17
  static getDialogHeader() {
7
18
  return ModalDialogSteps.getDialog().find('.modal-header');
8
19
  }
@@ -63,6 +74,26 @@ export class ModalDialogSteps {
63
74
  ModalDialogSteps.getCancelButton().click();
64
75
  }
65
76
 
77
+ /**
78
+ * Get the dialog with the given body. This method is useful when there are multiple dialogs on the page.
79
+ *
80
+ * @param body - the full or partial text of the dialog body.
81
+ *
82
+ * @return {Cypress.Chainable<JQuery<HTMLElement>>}
83
+ */
84
+ static getDialogWithBody(body) {
85
+ return ModalDialogSteps.getDialog().contains(body).parent().parent();
86
+ }
87
+
88
+ /**
89
+ * Click on the confirmation button of the dialog with the given body. This method is useful when there are multiple dialogs on the page.
90
+ *
91
+ * @param body - the full or partial text of the dialog body.
92
+ */
93
+ static cancelDialogWithBody(body) {
94
+ ModalDialogSteps.getDialogWithBody(body).find('.cancel-btn').click();
95
+ }
96
+
66
97
  static verifyUrlChangedConfirmation(verifyConfirmationDialogOptions = new VerifyConfirmationDialogOptions()) {
67
98
  // and try to change the page
68
99
  verifyConfirmationDialogOptions.changePageFunction();