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
package/package.json CHANGED
@@ -1,44 +1,60 @@
1
1
  {
2
- "name": "graphdb-workbench-tests",
3
- "version": "3.4.0-TR4",
4
- "description": "Cypress tests for GraphDB workbench",
5
- "scripts": {
6
- "prepack": "npm shrinkwrap",
7
- "postpack": "mv npm-shrinkwrap.json package-lock.json",
8
- "start": "cypress open",
9
- "start:flaky": "cypress open --config-file cypress-flaky.config.js",
10
- "test": "cypress run",
11
- "test:flaky": "cypress run --config-file cypress-flaky.config.js",
12
- "test:partial": "cypress run --spec \"integration/repository/**\"",
13
- "test:core": "cypress run --spec integration/repository/**,integration/import/**,integration/sparql-editor/**,integration/monitor/**,integration/cluster/**,integration/ttyg/**"
14
- },
15
- "author": {
16
- "name": "Ontotext AD",
17
- "url": "https://www.ontotext.com/"
18
- },
19
- "license": "Apache-2.0",
20
- "keywords": [
21
- "graphdb",
22
- "workbench"
23
- ],
24
- "repository": {
25
- "type": "git",
26
- "url": "git+https://github.com/Ontotext-AD/graphdb-workbench.git"
27
- },
28
- "devDependencies": {
29
- "cypress": "^14.0.3",
30
- "cypress-failed-log": "^2.10.0",
31
- "cypress-file-upload": "^5.0.8",
32
- "cypress-localstorage-commands": "^2.2.6",
33
- "cypress-multi-reporters": "^1.6.3",
34
- "cypress-real-events": "^1.8.1",
35
- "cypress-terminal-report": "^7.0.3",
36
- "cypress-wait-until": "^3.0.2",
37
- "del": "^6.1.1",
38
- "minimist": "^1.2.5",
39
- "mocha-junit-reporter": "^2.2.0"
40
- },
41
- "resolutions": {
42
- "minimist": "^1.2.5"
43
- }
2
+ "name": "graphdb-workbench-tests",
3
+ "version": "3.4.0-TR5",
4
+ "description": "Cypress tests for GraphDB workbench",
5
+ "type": "module",
6
+ "scripts": {
7
+ "prepack": "npm shrinkwrap",
8
+ "postpack": "mv npm-shrinkwrap.json package-lock.json",
9
+ "cy:open": "cypress open",
10
+ "cy:open-legacy": "cypress open --config-file cypress-legacy.config.js",
11
+ "cy:open-security": "cypress open --config-file cypress-security.config.js",
12
+ "cy:open-flaky": "cypress open --config-file cypress-flaky.config.js",
13
+ "cy:guides": "cypress run --config-file cypress-legacy.config.js --spec \"e2e-legacy/guides/**/*.spec.js\" --browser chrome",
14
+ "cy:run": "npm run cy:run-legacy && cypress run",
15
+ "cy:run:partial": "cypress run --config-file cypress-legacy.config.js --spec \"e2e-legacy/**/jdbc-create.spec.js\" --browser chrome",
16
+ "cy:run-legacy": "cypress run --config-file cypress-legacy.config.js --browser chrome",
17
+ "cy:run-security": "cypress run --config-file cypress-security.config.js --browser chrome",
18
+ "cy:run-legacy:coverage": "cypress run --config-file cypress-legacy.config.js --browser chrome",
19
+ "cy:run-flaky": "cypress run --config-file cypress-flaky.config.js --browser chrome",
20
+ "test": "npm run cy:run-legacy",
21
+ "test:core": "cypress run --spec e2e-legacy/repository/**,e2e-legacy/import/**,e2e-legacy/sparql-editor/**,e2e-legacy/monitor/**,e2e-legacy/cluster/**,e2e-legacy/ttyg/**",
22
+ "lint": "eslint '**/*.{js,mjs,cjs}'"
23
+ },
24
+ "author": {
25
+ "name": "Ontotext AD",
26
+ "url": "https://www.ontotext.com/"
27
+ },
28
+ "license": "Apache-2.0",
29
+ "keywords": [
30
+ "graphdb",
31
+ "workbench"
32
+ ],
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/Ontotext-AD/graphdb-workbench.git"
36
+ },
37
+ "devDependencies": {
38
+ "@bahmutov/cypress-code-coverage": "^2.7.2",
39
+ "@cypress/webpack-preprocessor": "^7.0.1",
40
+ "@eslint/js": "^9.33.0",
41
+ "babel-loader": "^10.0.0",
42
+ "babel-plugin-istanbul": "^7.0.0",
43
+ "cypress": "15.9.0",
44
+ "cypress-failed-log": "^2.10.0",
45
+ "cypress-file-upload": "^5.0.8",
46
+ "cypress-localstorage-commands": "^2.2.7",
47
+ "cypress-multi-reporters": "^2.0.5",
48
+ "cypress-real-events": "^1.14.0",
49
+ "cypress-terminal-report": "^7.2.0",
50
+ "cypress-wait-until": "^3.0.2",
51
+ "del": "^8.0.0",
52
+ "dotenv": "^17.0.1",
53
+ "eslint": "^9.33.0",
54
+ "eslint-plugin-cypress": "^5.1.0",
55
+ "globals": "^17.1.0",
56
+ "minimist": "^1.2.8",
57
+ "mocha-junit-reporter": "^2.2.1",
58
+ "path-browserify": "^1.0.1"
59
+ }
44
60
  }
package/plugins/index.js CHANGED
@@ -11,17 +11,20 @@
11
11
  // This function is called when a project is opened or re-opened (e.g. due to
12
12
  // the project's config changing)
13
13
 
14
- const del = require('del');
14
+ import { deleteSync } from 'del';
15
+ import failed from 'cypress-failed-log/src/failed.js';
16
+ import installLogsPrinter from 'cypress-terminal-report/src/installLogsPrinter.js';
17
+
15
18
  const retryTracker = {};
16
19
 
17
- module.exports = (on, config) => {
20
+ export default (on, config) => {
18
21
  // `on` is used to hook into various events Cypress emits
19
22
  // `config` is the resolved Cypress config
20
23
  on('task', {
21
- failed: require('cypress-failed-log/src/failed')()
24
+ failed: failed()
22
25
  });
23
26
 
24
- require('cypress-terminal-report/src/installLogsPrinter')(on, {
27
+ installLogsPrinter(on, {
25
28
  logToFilesOnAfterRun: true,
26
29
  printLogsToConsole: 'onFail',
27
30
  outputRoot: config.projectRoot + '/logs/',
@@ -64,7 +67,7 @@ module.exports = (on, config) => {
64
67
  test.attempts.some((attempt) => attempt.state === 'failed')
65
68
  );
66
69
  if (!failures) {
67
- return del(results.video);
70
+ return deleteSync(results.video);
68
71
  }
69
72
  }
70
73
  });
@@ -95,4 +98,6 @@ module.exports = (on, config) => {
95
98
  printGroup('[FAIL] Broken tests', broken);
96
99
  console.log('====================================================================================================\n');
97
100
  });
101
+
102
+ return config;
98
103
  };
@@ -1,29 +1,31 @@
1
+ import {ToasterSteps} from "./toaster-steps";
2
+
1
3
  export class ApplicationSteps {
2
4
 
3
5
  // notifications
4
6
  static getNotifications() {
5
- return cy.get('#toast-container');
7
+ return ToasterSteps.getToast()
6
8
  }
7
9
 
8
10
  static getSuccessNotifications() {
9
- return this.getNotifications().find('.toast-success');
11
+ return this.getNotifications().filter('.toast-success');
10
12
  }
11
13
 
12
14
  static getErrorNotifications() {
13
- return this.getNotifications().find('.toast-error');
15
+ return this.getNotifications().filter('.toast-error');
14
16
  }
15
17
 
16
18
  static getInfoNotification() {
17
- return this.getNotifications().find('.toast-info');
19
+ return this.getNotifications().filter('.toast-info');
18
20
  }
19
21
 
20
22
  static getWarningNotification() {
21
- return this.getNotifications().find('.toast-warning');
23
+ return this.getNotifications().filter('.toast-warning');
22
24
  }
23
25
 
24
26
  // navigation via main menu
25
27
  static openImportPage() {
26
- cy.get('.main-menu .menu-element-root[href=import]').click();
28
+ cy.get('onto-navbar .menu-element').eq(0).click();
27
29
  }
28
30
 
29
31
  static geLoader() {
@@ -0,0 +1,29 @@
1
+ export class BaseSteps {
2
+ static visit(page) {
3
+ cy.visit(page);
4
+ }
5
+
6
+ static clickOutsideElement() {
7
+ cy.get('body').click(0,0);
8
+ }
9
+
10
+ static reloadPage(force = false) {
11
+ cy.reload(force);
12
+ }
13
+
14
+ static getByTestId(testId) {
15
+ return cy.getByTestId(testId);
16
+ }
17
+
18
+ static typeEscapeKey() {
19
+ cy.get('body').type('{esc}');
20
+ }
21
+
22
+ static getUrl() {
23
+ return cy.url();
24
+ }
25
+
26
+ static validateUrl(url) {
27
+ this.getUrl().should('include', url);
28
+ }
29
+ }
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * Reusable functions for interacting with graph dropdown on Class hierarchy and relationships pages.
3
3
  */
4
+ import {ToasterSteps} from "./toaster-steps";
5
+ import {BaseSteps} from './base-steps.js';
4
6
 
5
7
  export const GRAPH_FILE = 'graphdb-news-dataset.zip';
6
8
  export const ALL_GRAPHS = 'All graphs';
7
9
  export const NEWS_GRAPH = 'http://example.org/news';
8
10
 
9
- class ClassViewsSteps {
11
+ class ClassViewsSteps extends BaseSteps {
10
12
  static visit() {
11
13
  cy.visit('/hierarchy');
12
14
  cy.window();
@@ -21,6 +23,14 @@ class ClassViewsSteps {
21
23
  });
22
24
  }
23
25
 
26
+ static getClassViewsComponent() {
27
+ return cy.get('.explore');
28
+ }
29
+
30
+ static getExploreResults() {
31
+ return this.getClassViewsComponent().find('.explore_results');
32
+ }
33
+
24
34
  static getClassChart() {
25
35
  return cy.get('#classChart');
26
36
  }
@@ -106,7 +116,7 @@ class ClassViewsSteps {
106
116
  }
107
117
 
108
118
  static getReturnButton() {
109
- return cy.get('.icon-arrow-left');
119
+ return cy.get('.ri-arrow-left-circle-line');
110
120
  }
111
121
 
112
122
  static goBack() {
@@ -122,7 +132,7 @@ class ClassViewsSteps {
122
132
  }
123
133
 
124
134
  static searchForClass() {
125
- return cy.get('.toolbar-holder .icon-search').click();
135
+ return cy.get('.toolbar-holder .search-icon').click();
126
136
  }
127
137
 
128
138
  static getSearchInput() {
@@ -149,7 +159,7 @@ class ClassViewsSteps {
149
159
 
150
160
  static selectGraphFromDropDown(graph) {
151
161
  cy.get('#selectGraphDropdown .dropdown-item')
152
- .each(($el, index, $list) => {
162
+ .each(($el) => {
153
163
  if ($el.text().trim() === graph) {
154
164
  cy.wrap($el).click();
155
165
  }
@@ -173,9 +183,7 @@ class ClassViewsSteps {
173
183
  }
174
184
 
175
185
  static verifyDataChangedWarning() {
176
- cy.get('#toast-container').find('.toast-title')
177
- .should('be.visible')
178
- .and('contain', 'Repository data has changed');
186
+ ToasterSteps.verifyTitle('Repository data has changed');
179
187
  }
180
188
 
181
189
  static confirmReload() {
@@ -186,6 +194,26 @@ class ClassViewsSteps {
186
194
  static reloadDiagram() {
187
195
  cy.get('.reload-diagram-btn').click();
188
196
  }
197
+
198
+ static getNoHierarchyErrorElement() {
199
+ return this.getExploreResults().find('.no-hierarchy-error');
200
+ }
201
+
202
+ static getRDFClassHierarchy() {
203
+ return this.getExploreResults().find('.rdf-class-hierarchy');
204
+ }
205
+
206
+ static getClassElement(className) {
207
+ return this.getByTestId(`class-${className}`)
208
+ }
209
+
210
+ static selectClassElement(className) {
211
+ this.getClassElement(className).click({force: true});
212
+ }
213
+
214
+ static clickInstanceCountLink() {
215
+ this.getByTestId('instances-count-link').click();
216
+ }
189
217
  }
190
218
 
191
219
  export default ClassViewsSteps;
@@ -1,4 +1,6 @@
1
- export class ClusterPageSteps {
1
+ import {BaseSteps} from "../base-steps";
2
+
3
+ export class ClusterPageSteps extends BaseSteps {
2
4
  static visit() {
3
5
  cy.visit('/cluster');
4
6
  }
@@ -7,6 +9,10 @@ export class ClusterPageSteps {
7
9
  return cy.get('.cluster-view');
8
10
  }
9
11
 
12
+ static getNoClusterImage() {
13
+ return this.getClusterPage().find('.no-cluster')
14
+ }
15
+
10
16
  static getCreateClusterButton() {
11
17
  return cy.get('.cluster-zone');
12
18
  }
@@ -47,8 +53,12 @@ export class ClusterPageSteps {
47
53
  this.getPreviewClusterConfigButton().click();
48
54
  }
49
55
 
56
+ static getLegendButton() {
57
+ return this.getByTestId('toggle-legend-button');
58
+ }
59
+
50
60
  static openLegend() {
51
- return cy.get('.toggle-legend-btn button').click();
61
+ return this.getLegendButton().click();
52
62
  }
53
63
 
54
64
  static getLegend() {
@@ -0,0 +1,21 @@
1
+ export class CookieConsentBannerSteps {
2
+ static getCookieConsentBanner() {
3
+ return cy.get('.cookie-consent-banner');
4
+ }
5
+
6
+ static getCookieConsentButton() {
7
+ return this.getCookieConsentBanner().find('button');
8
+ }
9
+
10
+ static giveCookieConsent() {
11
+ return this.getCookieConsentButton().click();
12
+ }
13
+
14
+ static getCookiePolicyLink() {
15
+ return cy.get('.cookie-consent-content a');
16
+ }
17
+
18
+ static clickCookiePolicyLink() {
19
+ return this.getCookiePolicyLink().click();
20
+ }
21
+ }
@@ -0,0 +1,56 @@
1
+ import {SharedModalDialogSteps} from '../shared-modal-dialog-steps';
2
+
3
+ export class CookiePolicyModalSteps extends SharedModalDialogSteps {
4
+ static getDialogComponent(cssClass = '.cookie-policy-modal') {
5
+ return super.getDialogComponent(cssClass);
6
+ }
7
+
8
+ static getStatisticCookiesToggle() {
9
+ return this.getBody().find('.statistic-cookies-toggle .toggle-switch');
10
+ }
11
+
12
+ static getStatisticCookiesCheckbox() {
13
+ return this.getStatisticCookiesToggle().find('input');
14
+ }
15
+
16
+ static toggleStatisticCookies() {
17
+ this.getStatisticCookiesToggle().click();
18
+ // Wait here is intentional because there is a debounce before the checkbox state is updated
19
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
20
+ cy.wait(500);
21
+ }
22
+
23
+ static getThirdPartyCookiesToggle() {
24
+ return this.getBody().find('.third-party-cookies-toggle .toggle-switch');
25
+ }
26
+
27
+ static getThirdPartyCookiesCheckbox() {
28
+ return this.getThirdPartyCookiesToggle().find('input');
29
+ }
30
+
31
+ static toggleThirdPartyCookies() {
32
+ this.getThirdPartyCookiesToggle().click();
33
+ // Wait here is intentional because there is a debounce before the checkbox state is updated
34
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
35
+ cy.wait(500);
36
+ }
37
+
38
+ static closeDialog() {
39
+ this.getFooter().find('.close-btn').click();
40
+ }
41
+
42
+ /**
43
+ * Validates the cookie policy dialog by checking the visibility of the dialog and the state of the checkboxes for
44
+ * analytic and third party cookies.
45
+ * @param {boolean} expectedStatisticChecked
46
+ * @param {boolean} expectedThirdPartyChecked
47
+ */
48
+ static validateCookiePolicyDialog(expectedStatisticChecked, expectedThirdPartyChecked) {
49
+ // I should see the cookie policy
50
+ CookiePolicyModalSteps.getDialogComponent().should('be.visible');
51
+ CookiePolicyModalSteps.getBody().should('be.visible');
52
+ // And I expect to see that analytic and third party cookies are allowed
53
+ CookiePolicyModalSteps.getStatisticCookiesCheckbox().should(expectedStatisticChecked ? 'be.checked' : 'not.be.checked');
54
+ CookiePolicyModalSteps.getThirdPartyCookiesCheckbox().should(expectedThirdPartyChecked ? 'be.checked' : 'not.be.checked');
55
+ }
56
+ }
@@ -0,0 +1,9 @@
1
+ export class ErrorPageSteps {
2
+ static visit404() {
3
+ cy.visit('/404');
4
+ }
5
+
6
+ static get404Page() {
7
+ return cy.get('app-not-found-page');
8
+ }
9
+ }
@@ -1,9 +1,21 @@
1
1
  export class ErrorSteps {
2
- static getErrorElement() {
3
- return cy.get('.idError');
2
+
3
+ static getRepositoryErrors() {
4
+ return cy.get('.card.repository-errors')
4
5
  }
5
6
 
6
7
  static verifyError(errorMessage) {
7
- ErrorSteps.getErrorElement().contains(errorMessage);
8
+ ErrorSteps.getRepositoryErrors().contains(errorMessage);
9
+ }
10
+
11
+ static getNoConnectedRepoMessage() {
12
+ return this.getRepositoryErrors().find('.alert.lead.alert-info');
13
+ }
14
+
15
+ static verifyNoConnectedRepoMessage() {
16
+ this.getRepositoryErrors().should('be.visible');
17
+ this.getNoConnectedRepoMessage()
18
+ .should('be.visible')
19
+ .and('contain', 'Some functionalities are not available because you are not connected to any repository.');
8
20
  }
9
21
  }
@@ -0,0 +1,64 @@
1
+ export class ClassRelationshipsSteps {
2
+ static visit() {
3
+ cy.visit('/relationships');
4
+ }
5
+
6
+ static getFilterField() {
7
+ return cy.get('.search-filter-field');
8
+ }
9
+
10
+ static filterByClass(name) {
11
+ this.getFilterField().type(name);
12
+ }
13
+
14
+ static getDirectionFilter() {
15
+ return cy.get('.direction-filter');
16
+ }
17
+
18
+ static verifySelectedDirectionFilter(name) {
19
+ this.getDirectionFilter().find('input[type=radio]:checked').should('have.value', name);
20
+ }
21
+
22
+ static getRelationsToolbar() {
23
+ return cy.get('.relations-toolbar');
24
+ }
25
+
26
+ static verifyRelationsToolbarContent() {
27
+ this.getRelationsToolbar().should('be.visible');
28
+ this.removeAllClassesButton().should('be.visible');
29
+ this.getReloadDiagramButton().should('be.visible');
30
+ this.getExportDiagramButton().should('be.visible');
31
+ }
32
+
33
+ static getDependenciesList() {
34
+ return cy.get('#wb-dependencies-classInClasses');
35
+ }
36
+
37
+ static verifyListLength(count) {
38
+ this.getDependenciesList().find('.item .row').should('have.length', count);
39
+ }
40
+
41
+ static getNoDataWarning() {
42
+ return cy.get('div.alert.alert-warning');
43
+ }
44
+
45
+ static getReloadDiagramButton() {
46
+ return cy.get('.reload-diagram-btn');
47
+ }
48
+
49
+ static getExportDiagramButton() {
50
+ return this.getRelationsToolbar().find('.export-diagram-btn');
51
+ }
52
+
53
+ static removeAllClassesButton() {
54
+ return this.getRelationsToolbar().find('.remove-all-classes-btn');
55
+ }
56
+
57
+ static getDependenciesDiagram() {
58
+ return cy.get('#dependencies-chord');
59
+ }
60
+
61
+ static getAvailableDependenciesLabel() {
62
+ return cy.get('.available-dependencies-label');
63
+ }
64
+ }
@@ -10,8 +10,16 @@ export class GraphsOverviewSteps {
10
10
  cy.url().should('eq', `${Cypress.config('baseUrl')}${VIEW_URL}`);
11
11
  }
12
12
 
13
+ static getGraphsOverviewComponent() {
14
+ return cy.get('#wb-export');
15
+ }
16
+
17
+ static getResultsElement() {
18
+ return cy.get('#export-graphs');
19
+ }
20
+
13
21
  static getResults() {
14
- return cy.get('#export-graphs').find('tbody tr');
22
+ return this.getResultsElement().find('tbody tr');
15
23
  }
16
24
 
17
25
  static getResult(row = 0) {
@@ -73,4 +81,16 @@ export class GraphsOverviewSteps {
73
81
  static clickOnDownloadAllButton() {
74
82
  this.getDownloadAllButtons().click();
75
83
  }
84
+
85
+ static getGraphsSearchInput() {
86
+ return this.getGraphsOverviewComponent().find('.search-graphs');
87
+ }
88
+
89
+ static getGraphsPaginator() {
90
+ return this.getGraphsOverviewComponent().find('.graphs-overview-paginator');
91
+ }
92
+
93
+ static getClearRepositoryButton() {
94
+ return this.getGraphsOverviewComponent().find('.clear-repository-btn');
95
+ }
76
96
  }
@@ -1,4 +1,6 @@
1
- export class SimilarityIndexCreateSteps {
1
+ import {BaseSteps} from '../base-steps.js';
2
+
3
+ export class SimilarityIndexCreateSteps extends BaseSteps {
2
4
 
3
5
  static visit() {
4
6
  cy.visit('/similarity/index/create');
@@ -17,7 +19,7 @@ export class SimilarityIndexCreateSteps {
17
19
  }
18
20
 
19
21
  static getCreateButton() {
20
- return cy.get('.create-similarity-index-btn');
22
+ return this.getByTestId('create-similarity-index-btn');
21
23
  }
22
24
 
23
25
  static create() {
@@ -33,7 +35,7 @@ export class SimilarityIndexCreateSteps {
33
35
  }
34
36
 
35
37
  static getSimilarityIndexNameInput() {
36
- return cy.get('.similarity-index-name');
38
+ return this.getByTestId('similarity-index-name');
37
39
  }
38
40
 
39
41
  static typeSimilarityIndexName(similarityIndexName) {
@@ -1,4 +1,6 @@
1
- export class SimilarityIndexesSteps {
1
+ import {BaseSteps} from "../base-steps";
2
+
3
+ export class SimilarityIndexesSteps extends BaseSteps{
2
4
 
3
5
  static visit() {
4
6
  cy.visit('/similarity');
@@ -8,8 +10,12 @@ export class SimilarityIndexesSteps {
8
10
  cy.url().should('eq', `${Cypress.config('baseUrl')}/similarity`);
9
11
  }
10
12
 
13
+ static getExistingSimilarityIndexes() {
14
+ return this.getByTestId('existing-indexes');
15
+ }
16
+
11
17
  static getSimilarityIndexRow(similarityIndexName) {
12
- return cy.get('.index-row').contains(similarityIndexName).parent().parent();
18
+ return this.getExistingSimilarityIndexes().find('.index-row').contains(similarityIndexName).parent().parent();
13
19
  }
14
20
 
15
21
  static getEditButton(similarityIndexName) {
@@ -41,4 +47,12 @@ export class SimilarityIndexesSteps {
41
47
  this.clickResultTypeDropdown();
42
48
  cy.get('.dropdown-result-type .dropdown-item').contains(type).click();
43
49
  }
50
+
51
+ static getCreateButton() {
52
+ return this.getExistingSimilarityIndexes().getByTestId('create-similarity-index-btn');
53
+ }
54
+
55
+ static clickCreateButton() {
56
+ this.getCreateButton().click();
57
+ }
44
58
  }
@@ -35,7 +35,7 @@ export class GraphqlEndpointManagementSteps {
35
35
  }
36
36
 
37
37
  static getEndpointsInfo() {
38
- return this.getEndpointTable().find('tbody tr');
38
+ return this.getEndpointTable().find('tbody tr');
39
39
  }
40
40
 
41
41
  static getEndpointLink(index) {
@@ -89,7 +89,7 @@ export class GraphqlEndpointManagementSteps {
89
89
  const endpointInfo = data[index];
90
90
  cy.wrap($row).within(() => {
91
91
  const statusCheck = endpointInfo.status === 'deleted' ? 'not.exist' : 'be.visible';
92
- cy.get('td').eq(1).find('.endpoint-link').should(statusCheck);
92
+ cy.get('td').eq(2).find('.endpoint-link').should(statusCheck);
93
93
  cy.get('td').eq(2).should('contain', endpointInfo.id);
94
94
  cy.get('td').eq(3).should('contain', endpointInfo.label);
95
95
  const isDefaultCheck = endpointInfo.default ? 'be.checked' : 'not.be.checked'