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
@@ -1,20 +1,23 @@
1
- export class NamespaceSteps {
1
+ import {BaseSteps} from "../base-steps";
2
+
3
+ export class NamespaceSteps extends BaseSteps {
2
4
  static visit() {
3
5
  cy.visit('/namespaces');
4
6
  }
5
7
 
6
8
  static getNamespacesView() {
7
- return cy.get('#wb-namespaces');
9
+ return this.getByTestId('namespaces-page')
10
+ }
11
+
12
+ static getNamespacesContent() {
13
+ return this.getNamespacesView().getByTestId('namespaces-content');
8
14
  }
9
15
 
10
16
  // ------ Generic ------
11
17
 
12
18
  static waitUntilPageIsLoaded() {
13
- // Workbench loading screen should not be visible
14
- cy.get('.ot-splash').should('not.be.visible');
15
-
16
19
  // No active loader
17
- cy.get('.ot-loader').should('not.be.visible');
20
+ cy.get('.ot-loader-new-content').should('not.be.visible');
18
21
 
19
22
  this.getAddNamespaceForm().should('be.visible');
20
23
  }
@@ -165,7 +168,7 @@ export class NamespaceSteps {
165
168
  }
166
169
 
167
170
  static typeInlineNamespacePrefix(index, prefix) {
168
- this.getInlineNamespacePrefix(index).clear().type(prefix);
171
+ this.getInlineNamespacePrefix(index).click().clear().type(prefix);
169
172
  }
170
173
 
171
174
  static getInlineNamespaceValue(index) {
@@ -1,4 +1,6 @@
1
- export class PluginsSteps {
1
+ import {BaseSteps} from "../base-steps";
2
+
3
+ export class PluginsSteps extends BaseSteps {
2
4
  static visit() {
3
5
  cy.visit('/plugins');
4
6
  }
@@ -7,12 +9,17 @@ export class PluginsSteps {
7
9
  return cy.get('#plugins');
8
10
  }
9
11
 
10
- static waitUntilPluginsPageIsLoaded() {
11
- // Workbench loading screen should not be visible
12
- cy.get('.ot-splash').should('not.be.visible');
12
+ static getSearchPluginBar() {
13
+ return this.getPluginsView().getByTestId('search-plugins-bar');
14
+ }
13
15
 
16
+ static getPluginsList() {
17
+ return this.getPluginsView().getByTestId('plugins-list');
18
+ }
19
+
20
+ static waitUntilPluginsPageIsLoaded() {
14
21
  // No active loader
15
- cy.get('.ot-loader').should('not.exist');
22
+ cy.get('.ot-loader-new-content').should('not.exist');
16
23
 
17
24
  // Repository is active
18
25
  cy.get('.repository-errors').should('not.be.visible');
@@ -1,5 +1,6 @@
1
+ import {BaseSteps} from "../base-steps";
1
2
 
2
- export class RdfRankSteps {
3
+ export class RdfRankSteps extends BaseSteps {
3
4
  static visit() {
4
5
  cy.visit('/rdfrank');
5
6
  }
@@ -9,11 +10,8 @@ export class RdfRankSteps {
9
10
  }
10
11
 
11
12
  static waitUntilRdfRankPageIsLoaded() {
12
- // Workbench loading screen should not be visible
13
- cy.get('.ot-splash').should('not.be.visible');
14
-
15
13
  // No active loader
16
- cy.get('.ot-loader').should('not.exist');
14
+ cy.get('.ot-loader-new-content').should('not.exist');
17
15
 
18
16
  // Repository is active
19
17
  cy.get('.repository-errors').should('not.be.visible');
@@ -27,6 +25,26 @@ export class RdfRankSteps {
27
25
  return cy.get('#rdfRank');
28
26
  }
29
27
 
28
+ static getRDFRankPage() {
29
+ return this.getByTestId('rdf-rank-page');
30
+ }
31
+
32
+ static getRDFRankContent() {
33
+ return this.getRDFRankPage().getByTestId('rdf-rank-content');
34
+ }
35
+
36
+ static getRDFRankLabel() {
37
+ return this.getRDFRankPage().getByTestId('rdf-rank-status-label');
38
+ }
39
+
40
+ static getRDFRandComputeButton() {
41
+ return this.getRDFRankPage().getByTestId('compute-rdf-rank-btn');
42
+ }
43
+
44
+ static getFilter() {
45
+ return this.getRdfRankPage().getByTestId('filter-content');
46
+ }
47
+
30
48
  static getRdfStatusHeader() {
31
49
  return this.getRdfRankPage().find('#toggleIndex');
32
50
  }
@@ -102,8 +120,4 @@ export class RdfRankSteps {
102
120
  static getExcludedPredicatesFilter() {
103
121
  return this.getFilteringConfig().find('.excluded-predicates-filter');
104
122
  }
105
-
106
- static getToast() {
107
- return cy.get('#toast-container');
108
- }
109
123
  }
@@ -1,14 +1,113 @@
1
+ import {EnvironmentStubs} from "../../stubs/environment-stubs";
2
+
1
3
  export class SettingsSteps {
2
4
  static visit() {
3
5
  cy.visit('/settings');
4
6
  }
5
7
 
8
+ static visitInProdMode() {
9
+ cy.visit('/settings', {
10
+ onBeforeLoad: (win) => {
11
+ EnvironmentStubs.stubWbProdMode();
12
+ }
13
+ });
14
+ }
15
+
16
+ static visitInDevMode() {
17
+ cy.visit('/settings', {
18
+ onBeforeLoad: (win) => {
19
+ EnvironmentStubs.stubWbDevMode();
20
+ }
21
+ });
22
+ }
23
+
24
+ static getSettingsPage() {
25
+ return cy.get('#wb-user');
26
+ }
27
+
28
+ static getLoginPanel() {
29
+ return this.getSettingsPage().find('.login-credentials')
30
+ }
31
+
32
+ static getPasswordField() {
33
+ return this.getLoginPanel().find('#wb-user-password:password');
34
+ }
35
+
36
+ static getConfirmPasswordField() {
37
+ return this.getLoginPanel().find('#wb-user-confirmpassword:password');
38
+ }
39
+
40
+ static getSparqlEditorPanel() {
41
+ return this.getSettingsPage()
42
+ .find('.sparql-editor-settings');
43
+ }
44
+
45
+ static getSameAsLabel() {
46
+ return this.getSparqlEditorPanel().find('.sameas-label')
47
+ }
48
+
49
+ static getSameAsToggle() {
50
+ return this.getSparqlEditorPanel()
51
+ .find('#sameas-on')
52
+ .find('.switch:checkbox');
53
+ }
54
+
55
+ static getInferenceToggle() {
56
+ return this.getSparqlEditorPanel()
57
+ .find('#inference-on')
58
+ .find('.switch:checkbox');
59
+ }
60
+
61
+ static getInferenceLabel() {
62
+ return this.getSparqlEditorPanel().find('.inference-label');
63
+ }
64
+
65
+ static getCountCheckbox() {
66
+ return this.getSparqlEditorPanel().find('#defaultCount:checkbox');
67
+ }
68
+
69
+ static getIgnoreSharedCheckbox() {
70
+ return this.getSparqlEditorPanel().find('#ignore-shared:checkbox');
71
+ }
72
+
73
+ static getUserRolePanel() {
74
+ return this.getSettingsPage().find('.user-role');
75
+ }
76
+
77
+ static getUserRoleRadioButton() {
78
+ return this.getUserRolePanel().find('#roleAdmin:radio');
79
+ }
80
+
81
+ static getRepoManagerRadioButton() {
82
+ return this.getUserRolePanel().find('#roleRepoAdmin:radio');
83
+ }
84
+
85
+ static getAdminRadioButton() {
86
+ return this.getUserRolePanel().find('#roleUser:radio');
87
+ }
88
+
6
89
  static getCookiePolicyButton() {
7
- return cy.get('.show-cookie-policy-btn');
90
+ return this.getSettingsPage().find('.show-cookie-policy-btn');
91
+ }
92
+
93
+ static getUserRepositoryTable() {
94
+ return this.getSettingsPage().find('.user-repositories .table');
95
+ }
96
+
97
+ static getUserRepository(name) {
98
+ return this.getUserRepositoryTable().find(`.repository-name:contains('${name}')`).closest('tr');
99
+ }
100
+
101
+ static getReadRightsCheckbox(repositoryId) {
102
+ return this.getUserRepository(repositoryId).find('.read-rights .read:checkbox');
103
+ }
104
+
105
+ static getWriteRightsCheckbox(repositoryId) {
106
+ return this.getUserRepository(repositoryId).find('.write-rights .write:checkbox');
8
107
  }
9
108
 
10
109
  static clickCookiePolicyLink() {
11
- return SettingsSteps.getCookiePolicyButton().click();
110
+ return this.getCookiePolicyButton().click();
12
111
  }
13
112
 
14
113
  static getCookiePolicyModal() {
@@ -1,4 +1,6 @@
1
- export class SparqlTemplatesSteps {
1
+ import {BaseSteps} from "../base-steps";
2
+
3
+ export class SparqlTemplatesSteps extends BaseSteps {
2
4
 
3
5
  static visit() {
4
6
  cy.visit('/sparql-templates');
@@ -8,6 +10,22 @@ export class SparqlTemplatesSteps {
8
10
  cy.url().should('include', '/sparql-templates');
9
11
  }
10
12
 
13
+ static getSparqlTemplatesPage() {
14
+ return this.getByTestId('sparql-templates-page');
15
+ }
16
+
17
+ static getSparqlTemplatesContent() {
18
+ return this.getSparqlTemplatesPage().getByTestId('sparql-templates-content');
19
+ }
20
+
21
+ static getSparqlTemplatesCreateLink() {
22
+ return this.getSparqlTemplatesPage().getByTestId('create-sparql-template-link');
23
+ }
24
+
25
+ static getNoSparqlTemplatesMessage() {
26
+ return this.getSparqlTemplatesPage().getByTestId('no-sparql-templates-message');
27
+ }
28
+
11
29
  static getSparqlTemplatesListContainer() {
12
30
  return cy.get('.sparql-templates-list');
13
31
  }
@@ -1,14 +1,32 @@
1
+ import {EnvironmentStubs} from "../../stubs/environment-stubs";
2
+
1
3
  export class UserAndAccessSteps {
2
4
  static visit() {
3
5
  cy.visit('/users');
4
6
  }
5
7
 
8
+ static visitInProdMode() {
9
+ cy.visit('/users', {
10
+ onBeforeLoad: () => {
11
+ EnvironmentStubs.stubWbProdMode();
12
+ }
13
+ });
14
+ }
15
+
16
+ static getUsersCatalogContainer() {
17
+ return cy.get('#wb-users');
18
+ }
19
+
6
20
  static getUrl() {
7
21
  return cy.url();
8
22
  }
9
23
 
24
+ static isUsersUrlLoaded() {
25
+ return this.getUrl().should('include', '/users');
26
+ }
27
+
10
28
  static getSplashLoader() {
11
- return cy.get('.ot-splash');
29
+ return cy.get('.ot-loader-new-content');
12
30
  }
13
31
 
14
32
  static getCreateNewUserButton() {
@@ -91,6 +109,10 @@ export class UserAndAccessSteps {
91
109
  .closest('tr').as('user');
92
110
  }
93
111
 
112
+ static getUserCustomRoles(userRow) {
113
+ return cy.get(userRow).getByTestId('custom-roles').getByTestId('custom-role');
114
+ }
115
+
94
116
  static getUsernameField() {
95
117
  return cy.get('#wb-user-username');
96
118
  }
@@ -151,14 +173,30 @@ export class UserAndAccessSteps {
151
173
  cy.get('.write').click();
152
174
  }
153
175
 
154
- static getFieldError() {
155
- return cy.get('div.small');
176
+ static getCustomRoleFieldError() {
177
+ return cy.get('#user-custom-roles').find('small');
178
+ }
179
+
180
+ /**
181
+ * Returns the feedback <div> for the given login field error.
182
+ * @param field One of "username", "password", "confirmPassword"
183
+ */
184
+ static getUserFieldError(field) {
185
+ return cy.get(`.login-credentials [ng-show="${field}Error"].form-control-feedback`);
186
+ }
187
+
188
+ static getRepositoryRightsError() {
189
+ return cy.get('#user-repos [ng-show="repositoryCheckError"].form-control-feedback');
156
190
  }
157
191
 
158
192
  static getError() {
159
193
  return cy.get('.alert-danger');
160
194
  }
161
195
 
196
+ static getPermissionError() {
197
+ return cy.getByTestId('restricted-access-banner');
198
+ }
199
+
162
200
  static getModal() {
163
201
  return cy.get('.modal-dialog');
164
202
  }
@@ -256,15 +294,15 @@ export class UserAndAccessSteps {
256
294
  }
257
295
 
258
296
  static findReadIconAlias(repoLineAlias) {
259
- return cy.get(repoLineAlias).find('.icon-eye');
297
+ return cy.get(repoLineAlias).find('.ri-eye-line');
260
298
  }
261
299
 
262
300
  static findWriteIconAlias(repoLineAlias) {
263
- return cy.get(repoLineAlias).find('.icon-edit');
301
+ return cy.get(repoLineAlias).find('.ri-edit-line');
264
302
  }
265
303
 
266
304
  static findGraphqlIconAlias(repoLineAlias) {
267
- return cy.get(repoLineAlias).find('.fa-gdb-graphql');
305
+ return cy.get(repoLineAlias).find('.icon-graphql');
268
306
  }
269
307
 
270
308
  static openEditUserPage(username) {
@@ -329,19 +367,15 @@ export class UserAndAccessSteps {
329
367
  }
330
368
 
331
369
  static clickFreeWriteAccessRepo(repoName) {
332
- cy.get('.repo-fields')
333
- .contains(repoName)
334
- .parent('.row')
335
- .find('.write')
336
- .realClick();
370
+ cy.get('.repo-fields').contains(repoName).parent('.row').as('row');
371
+ cy.get('@row').scrollIntoView();
372
+ cy.get('@row').find('.write').realClick();
337
373
  }
338
374
 
339
375
  static clickFreeGraphqlAccessRepo(repoName) {
340
- cy.get('.repo-fields')
341
- .contains(repoName)
342
- .parent('.row')
343
- .find('.graphql')
344
- .realClick();
376
+ cy.get('.repo-fields').contains(repoName).parent('.row').as('row');
377
+ cy.get('@row').scrollIntoView();
378
+ cy.get('@row').find('.graphql').realClick();
345
379
  }
346
380
 
347
381
  }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Basic steps for interacting with the onto-dialog component. This class is designed to be extended by more specific
3
+ * dialog steps classes.
4
+ */
5
+ export class SharedModalDialogSteps {
6
+ /**
7
+ * Returns the onto-dialog element.
8
+ * This is the generic method to get the dialog element.
9
+ */
10
+ static getDialog() {
11
+ return cy.get('onto-dialog');
12
+ }
13
+
14
+ /**
15
+ * Returns a child component of the dialog based on the provided CSS class. The onto-dialog component is designed to
16
+ * be flexible and can contain be composed of various child components included in different slots: header, body,
17
+ * and footer.
18
+ * The purpose of this method is to allow selection of specific dialog in case there are multiple dialogs in the page.
19
+ * @param cssClass - The CSS class of the child component to retrieve. Defaults to '.dialog', which will return the
20
+ * dialog itself.
21
+ */
22
+ static getDialogComponent(cssClass = '.dialog') {
23
+ return cy.get(cssClass);
24
+ }
25
+
26
+ static getHeader() {
27
+ return this.getDialog().find('.dialog-header');
28
+ }
29
+
30
+ static getBody() {
31
+ return this.getDialog().find('.dialog-body');
32
+ }
33
+
34
+ static getFooter() {
35
+ return this.getDialog().find('.dialog-footer');
36
+ }
37
+
38
+ static getCloseButton() {
39
+ return this.getHeader().find('.close');
40
+ }
41
+
42
+ static close() {
43
+ this.getCloseButton().click();
44
+ }
45
+ }
@@ -1,19 +1,38 @@
1
1
  import {YasqeSteps} from "./yasgui/yasqe-steps";
2
+ import {YasrSteps} from './yasgui/yasr-steps.js';
2
3
 
3
4
  const VIEW_URL = '/sparql';
4
5
 
5
6
  export class SparqlEditorSteps {
6
- static visitSparqlEditorPage() {
7
- cy.visit(VIEW_URL);
7
+ static visitSparqlEditorPage(urlParameters) {
8
+ const url = urlParameters ? `${VIEW_URL}?${urlParameters}` : VIEW_URL;
9
+ cy.visit(url);
10
+ }
11
+
12
+ static visitSparqlEditorPageAndWaitForEditor(urlParameters ) {
13
+ SparqlEditorSteps.visitSparqlEditorPage(urlParameters);
8
14
  // Because we use angularjs less than 1.7.3 we use additional library ng-custom-element.umd.js to solve problem with property bindings
9
15
  // This library make additional call to ontotext-yasgui-web-component and the component that's way the component renders twice when page loaded.
10
16
  // This is bad because in tests cypress can find an element when it is rendered from first call and try to click it for example.
11
17
  // If time of clicking such element is when second call to the component is done then exception that element is detached will be thrown.
12
18
  // We will wait a little , to give a chance page is loaded correctly before test start.
19
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
13
20
  cy.wait(1000);
14
21
  YasqeSteps.waitUntilQueryIsVisible();
15
22
  }
16
23
 
24
+ static visitSparqlEditorPageAndWaitForResults(urlParameters ) {
25
+ SparqlEditorSteps.visitSparqlEditorPage(urlParameters);
26
+ // Because we use angularjs less than 1.7.3 we use additional library ng-custom-element.umd.js to solve problem with property bindings
27
+ // This library make additional call to ontotext-yasgui-web-component and the component that's way the component renders twice when page loaded.
28
+ // This is bad because in tests cypress can find an element when it is rendered from first call and try to click it for example.
29
+ // If time of clicking such element is when second call to the component is done then exception that element is detached will be thrown.
30
+ // We will wait a little , to give a chance page is loaded correctly before test start.
31
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
32
+ cy.wait(1000);
33
+ YasrSteps.waitUntilResultsIsVisible();
34
+ }
35
+
17
36
  static verifyUrl() {
18
37
  cy.url().should('include', `${Cypress.config('baseUrl')}${VIEW_URL}`);
19
38
  }
@@ -63,8 +63,12 @@ class SparqlSteps {
63
63
  this.getLoader().should('not.exist');
64
64
  }
65
65
 
66
+ static getActiveTabPanel() {
67
+ return cy.get('.tabPanel.active');
68
+ }
69
+
66
70
  static getRunQueryButton() {
67
- return cy.get('#wb-sparql-runQuery');
71
+ return this.getActiveTabPanel().find('.yasqe_queryButton');
68
72
  }
69
73
 
70
74
  static getNoQueryRunInfo() {
@@ -124,6 +128,14 @@ class SparqlSteps {
124
128
  return cy.get('#saveAsBtn');
125
129
  }
126
130
 
131
+ static getVisualBtn() {
132
+ return this.getActiveTabPanel().find('.explore-visual-graph-button');
133
+ }
134
+
135
+ static visualizeConstructQuery() {
136
+ this.getVisualBtn().click();
137
+ }
138
+
127
139
  static getEditorAndResultsBtn() {
128
140
  return cy.get('.editor-and-results-btn');
129
141
  }
@@ -0,0 +1,70 @@
1
+ import {BaseSteps} from "./base-steps";
2
+
3
+ export class SystemInformationSteps extends BaseSteps {
4
+
5
+ static visit() {
6
+ cy.visit('sysinfo');
7
+ }
8
+
9
+ static getSystemInformationView() {
10
+ return this.getByTestId('system-info-page');
11
+ }
12
+
13
+ static getSystemInformationContent() {
14
+ return this.getSystemInformationView().getByTestId('system-info-content');
15
+ }
16
+
17
+ /////////////////////////////
18
+ // Application Info Tab
19
+ /////////////////////////////
20
+ static getApplicationInfoTab() {
21
+ return this.getSystemInformationContent().getByTestId('application-info-tab');
22
+ }
23
+
24
+ static getGraphDBInfo() {
25
+ return this.getApplicationInfoTab().getByTestId('graphdb-info');
26
+ }
27
+
28
+ static getOperatingSystemInfo() {
29
+ return this.getApplicationInfoTab().getByTestId('operation-system-info');
30
+ }
31
+
32
+ static getServerReport() {
33
+ return this.getApplicationInfoTab().getByTestId('server-report');
34
+ }
35
+
36
+ static getNewReportButton() {
37
+ return this.getServerReport().getByTestId('new-report-btn');
38
+ }
39
+
40
+ static getServerReportDownloadButton() {
41
+ return this.getServerReport().getByTestId('download-report-btn');
42
+ }
43
+
44
+ /////////////////////////////
45
+ // JVM Arguments Tab
46
+ /////////////////////////////
47
+ static getJVMArgumentsTab() {
48
+ return this.getSystemInformationContent().getByTestId('jvm-arguments-tab');
49
+ }
50
+
51
+ ////////////////////////////////
52
+ // Configuration Parameters Tab
53
+ ////////////////////////////////
54
+ static getConfigurationParametersTab() {
55
+ return this.getSystemInformationContent().getByTestId('configuration-parameters-tab');
56
+ }
57
+
58
+ static verifyInitialState() {
59
+ this.getSystemInformationView().should('exist');
60
+ this.getSystemInformationContent().should('be.visible');
61
+ this.getApplicationInfoTab().should('exist');
62
+ this.getGraphDBInfo().should('exist');
63
+ this.getJVMArgumentsTab().should('exist');
64
+ this.getConfigurationParametersTab().should('exist');
65
+ this.getOperatingSystemInfo().should('exist');
66
+ this.getServerReport().should('exist');
67
+ this.getServerReportDownloadButton().should('exist');
68
+ this.getNewReportButton().should('exist');
69
+ }
70
+ }
@@ -1,24 +1,28 @@
1
1
  export class ToasterSteps {
2
2
  static getToast() {
3
- return cy.get('#toast-container');
3
+ return cy.get('.toast');
4
4
  }
5
5
 
6
6
  static verifyTitle(title) {
7
- ToasterSteps.getToast()
7
+ return ToasterSteps.getToast()
8
8
  .find('.toast-title')
9
9
  .should('be.visible')
10
10
  .and('contain', title);
11
11
  }
12
12
 
13
13
  static verifySuccess(successMessage) {
14
- ToasterSteps.getToast()
14
+ return ToasterSteps.getToast()
15
15
  .should('exist')
16
16
  .find('.toast-message')
17
17
  .and('contain', successMessage);
18
18
  }
19
19
 
20
+ static getToasterMessage() {
21
+ return ToasterSteps.getToast().find('.toast-message')
22
+ }
23
+
20
24
  static verifyWarning(warningMessage) {
21
- ToasterSteps.getToast()
25
+ return ToasterSteps.getToast()
22
26
  .find('.toast-warning')
23
27
  .should('be.visible')
24
28
  .find('.toast-message')
@@ -26,9 +30,17 @@ export class ToasterSteps {
26
30
  }
27
31
 
28
32
  static verifyError(errorMessage) {
29
- ToasterSteps.getToast()
30
- .find('.toast-error')
33
+ return ToasterSteps.getToast()
34
+ .should('be.visible')
35
+ .and('have.class', 'toast-error')
36
+ .find('.toast-message')
37
+ .and('contain', errorMessage);
38
+ }
39
+
40
+ static verifyNewToasterError(errorMessage) {
41
+ return ToasterSteps.getToast()
31
42
  .should('be.visible')
43
+ .and('have.class', 'toast error')
32
44
  .find('.toast-message')
33
45
  .and('contain', errorMessage);
34
46
  }