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
@@ -0,0 +1,51 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import ImportSteps from "../../../steps/import/import-steps";
5
+ import HomeSteps from "../../../steps/home-steps";
6
+
7
+ describe('Initial state of the import view with a selected repository', () => {
8
+ const RDF_SNIPPET = '@base <http://example.org/> .\n' +
9
+ '@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
10
+ '<#green-goblin>\n' +
11
+ 'a foaf:Person ; # in the context of the Marvel universe\n' +
12
+ 'foaf:name "Green Goblin" .\n';
13
+
14
+ let repositoryId;
15
+
16
+ beforeEach(() => {
17
+ repositoryId = 'user-import-' + Date.now();
18
+ cy.createRepository({id: repositoryId});
19
+ cy.presetRepository(repositoryId);
20
+ cy.importRDFTextSnippet(repositoryId, RDF_SNIPPET);
21
+ });
22
+
23
+ afterEach(() => {
24
+ cy.deleteRepository(repositoryId);
25
+ });
26
+
27
+ it('Should have the correct initial state when navigating via URL', () => {
28
+ // When: I visit the import page by URL with a selected repository and at least one imported file
29
+ ImportSteps.visit();
30
+ // Then:
31
+ verifyInitialStateWhenFilesAreImported();
32
+ });
33
+
34
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
35
+ // When: I navigate to the import page using the navigation menu with a selected repository and at least one imported file
36
+ HomeSteps.visit();
37
+ MainMenuSteps.clickOnMenuImport();
38
+ // Then:
39
+ verifyInitialStateWhenFilesAreImported();
40
+ });
41
+
42
+ const verifyInitialStateWhenFilesAreImported = () => {
43
+ RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
44
+ ImportSteps.getUploadRdfFilesButton().should('be.visible');
45
+ ImportSteps.getUploadFromUrlButton().should('be.visible');
46
+ ImportSteps.getUploadTextSnippetButton().should('be.visible');
47
+ ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
48
+ ImportUserDataSteps.getHelpMessage().should('not.exist');
49
+ ImportUserDataSteps.getResourcesTable().should('be.visible');
50
+ };
51
+ });
@@ -0,0 +1,45 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import ImportSteps from "../../../steps/import/import-steps";
5
+ import HomeSteps from "../../../steps/home-steps";
6
+
7
+ describe('Initial state of the import view with a selected repository and no imported files', () => {
8
+
9
+ let repositoryId;
10
+
11
+ beforeEach(() => {
12
+ repositoryId = 'user-import-' + Date.now();
13
+ cy.createRepository({id: repositoryId});
14
+ cy.presetRepository(repositoryId);
15
+ });
16
+
17
+ afterEach(() => {
18
+ cy.deleteRepository(repositoryId);
19
+ });
20
+
21
+ it('Should have the correct initial state when navigating via URL', () => {
22
+ // When: I visit the import page via URL with a selected repository and no imported files
23
+ ImportSteps.visit();
24
+ // Then:
25
+ verifyInitialStateWhenNoFilesAreImported();
26
+ });
27
+
28
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
29
+ // When: I visit the import page via the navigation menu with a selected repository and no imported files
30
+ HomeSteps.visit();
31
+ MainMenuSteps.clickOnMenuImport();
32
+ // Then:
33
+ verifyInitialStateWhenNoFilesAreImported();
34
+ });
35
+
36
+ const verifyInitialStateWhenNoFilesAreImported = () => {
37
+ RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
38
+ ImportSteps.getUploadRdfFilesButton().should('be.visible');
39
+ ImportSteps.getUploadFromUrlButton().should('be.visible');
40
+ ImportSteps.getUploadTextSnippetButton().should('be.visible');
41
+ ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
42
+ ImportUserDataSteps.getHelpMessage().should('be.visible');
43
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
44
+ };
45
+ });
@@ -0,0 +1,28 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import HomeSteps from "../../../steps/home-steps";
5
+ import ImportSteps from "../../../steps/import/import-steps";
6
+
7
+ describe('Initial state of the import view without a selected repository', () => {
8
+
9
+ it('Should have the correct initial state when navigating via URL', () => {
10
+ // When: I visit the import page via URL with no repository selected
11
+ ImportSteps.visit();
12
+ // Then:
13
+ verifyInitialStateWhenNoRepositoryIsSelected();
14
+ });
15
+
16
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
17
+ // When: I visit the import page via the navigation menu with no repository selected
18
+ HomeSteps.visit();
19
+ MainMenuSteps.clickOnMenuImport();
20
+ // Then:
21
+ verifyInitialStateWhenNoRepositoryIsSelected();
22
+ });
23
+
24
+ const verifyInitialStateWhenNoRepositoryIsSelected = () => {
25
+ RepositoryErrorsWidgetSteps.getWidget().should('be.visible');
26
+ ImportUserDataSteps.getResourcesTable().should('not.exist');
27
+ };
28
+ });
@@ -0,0 +1,113 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {LicenseSteps} from "../../steps/license-steps";
4
+ import {LicenseStubs} from "../../stubs/license-stubs";
5
+
6
+ describe('License with selected repository', () => {
7
+ let repositoryId;
8
+
9
+ beforeEach(() => {
10
+ repositoryId = 'license-init-' + Date.now();
11
+ cy.createRepository({id: repositoryId});
12
+ cy.presetRepository(repositoryId);
13
+ });
14
+
15
+ afterEach(() => {
16
+ cy.deleteRepository(repositoryId);
17
+ });
18
+
19
+ it('Should display the correct initial state when navigating via URL and there is no license', () => {
20
+ LicenseStubs.stubLicenseHardcoded(false)
21
+ LicenseStubs.stubLicenseNotSet();
22
+ // Given, I visit the License page via URL with a repository selected and there is no license
23
+ LicenseSteps.visit();
24
+ // Then,
25
+ LicenseSteps.verifyLicenseNotSet();
26
+ });
27
+
28
+ it('Should display the correct initial state when navigating via the navigation bar and there is no license', () => {
29
+ LicenseStubs.stubLicenseHardcoded(false)
30
+ LicenseStubs.stubLicenseNotSet();
31
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no license
32
+ HomeSteps.visit();
33
+ MainMenuSteps.clickOnLicense();
34
+ // Then,
35
+ LicenseSteps.verifyLicenseNotSet();
36
+ });
37
+
38
+ it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
39
+ LicenseStubs.stubLicenseHardcoded(false);
40
+ LicenseStubs.stubNoValidLicense();
41
+ // Given, I visit the License page via URL with a repository selected and there is no valid license
42
+ LicenseSteps.visit();
43
+ // Then,
44
+ LicenseSteps.verifyNoValidLicense();
45
+ });
46
+
47
+ it('Should display the correct initial state when navigating via the navigation bar and there is no valid license', () => {
48
+ LicenseStubs.stubLicenseHardcoded(false);
49
+ LicenseStubs.stubNoValidLicense();
50
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
51
+ HomeSteps.visit();
52
+ MainMenuSteps.clickOnLicense();
53
+ // Then,
54
+ LicenseSteps.verifyNoValidLicense();
55
+ });
56
+
57
+ it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
58
+ LicenseStubs.stubLicenseHardcoded(true);
59
+ LicenseStubs.stubNoValidLicense();
60
+ // Given, I visit the License page via URL with a repository selected and there is no valid hardcoded license
61
+ LicenseSteps.visit();
62
+ // Then,
63
+ LicenseSteps.verifyNoValidLicenseHardcoded();
64
+ });
65
+
66
+ it('Should display the correct initial state when navigating via the navigation bar and there is no valid hardcoded license', () => {
67
+ LicenseStubs.stubLicenseHardcoded(true);
68
+ LicenseStubs.stubNoValidLicense();
69
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
70
+ HomeSteps.visit();
71
+ MainMenuSteps.clickOnLicense();
72
+ // Then,
73
+ LicenseSteps.verifyNoValidLicenseHardcoded();
74
+ });
75
+
76
+ it('Should display the correct initial state when navigating via URL and there is valid license', () => {
77
+ LicenseStubs.stubLicenseHardcoded(false);
78
+ LicenseStubs.stubEnterpriseLicense();
79
+ // Given, I visit the License page via URL with a repository selected and there is valid license
80
+ LicenseSteps.visit();
81
+ // Then,
82
+ LicenseSteps.verifyValidLicense();
83
+ });
84
+
85
+ it('Should display the correct initial state when navigating via the navigation bar and there is valid license', () => {
86
+ LicenseStubs.stubLicenseHardcoded(false);
87
+ LicenseStubs.stubEnterpriseLicense();
88
+ // Given, I visit the License page via the navigation menu with a repository selected and there is valid license
89
+ HomeSteps.visit();
90
+ MainMenuSteps.clickOnLicense();
91
+ // Then,
92
+ LicenseSteps.verifyValidLicense();
93
+ });
94
+
95
+ it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
96
+ LicenseStubs.stubLicenseHardcoded(true);
97
+ LicenseStubs.stubEnterpriseLicense();
98
+ // Given, I visit the License page via URL with a repository selected and there is valid hardcoded license
99
+ LicenseSteps.visit();
100
+ // Then,
101
+ LicenseSteps.verifyValidLicenseHardcoded();
102
+ });
103
+
104
+ it('Should display the correct initial state when navigating via the navigation bar and there is valid hardcoded license', () => {
105
+ LicenseStubs.stubLicenseHardcoded(true);
106
+ LicenseStubs.stubEnterpriseLicense();
107
+ // Given, I visit the License page via the navigation menu with a repository selected and there is valid hardcoded license
108
+ HomeSteps.visit();
109
+ MainMenuSteps.clickOnLicense();
110
+ // Then,
111
+ LicenseSteps.verifyValidLicenseHardcoded();
112
+ });
113
+ })
@@ -0,0 +1,103 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {LicenseSteps} from "../../steps/license-steps";
4
+ import {LicenseStubs} from "../../stubs/license-stubs";
5
+
6
+ describe('License without selected repository', () => {
7
+
8
+ it('Should display the correct initial state when navigating via URL and there is no license', () => {
9
+ LicenseStubs.stubLicenseHardcoded(false)
10
+ LicenseStubs.stubLicenseNotSet();
11
+ // Given, I visit the License page via URL without a repository selected and there is no license
12
+ LicenseSteps.visit();
13
+ // Then,
14
+ LicenseSteps.verifyLicenseNotSet();
15
+ });
16
+
17
+ it('Should display the correct initial state when navigating via the navigation menu and there is no license', () => {
18
+ LicenseStubs.stubLicenseHardcoded(false)
19
+ LicenseStubs.stubLicenseNotSet();
20
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no license
21
+ HomeSteps.visit();
22
+ MainMenuSteps.clickOnLicense();
23
+ // Then,
24
+ LicenseSteps.verifyLicenseNotSet();
25
+ });
26
+
27
+ it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
28
+ LicenseStubs.stubLicenseHardcoded(false);
29
+ LicenseStubs.stubNoValidLicense();
30
+ // Given, I visit the License page via URL without a repository selected and there is no valid license
31
+ LicenseSteps.visit();
32
+ // Then,
33
+ LicenseSteps.verifyNoValidLicense();
34
+ });
35
+
36
+ it('Should display the correct initial state when navigating via the navigation menu and there is no valid license', () => {
37
+ LicenseStubs.stubLicenseHardcoded(false);
38
+ LicenseStubs.stubNoValidLicense();
39
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no valid license
40
+ HomeSteps.visit();
41
+ MainMenuSteps.clickOnLicense();
42
+ // Then,
43
+ LicenseSteps.verifyNoValidLicense();
44
+ });
45
+
46
+ it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
47
+ LicenseStubs.stubLicenseHardcoded(true);
48
+ LicenseStubs.stubNoValidLicense();
49
+ // Given, I visit the License page via URL without a repository selected and there is no valid hardcoded license
50
+ LicenseSteps.visit();
51
+ // Then,
52
+ LicenseSteps.verifyNoValidLicenseHardcoded();
53
+ });
54
+
55
+ it('Should display the correct initial state when navigating via the navigation menu and there is no valid hardcoded license', () => {
56
+ LicenseStubs.stubLicenseHardcoded(true);
57
+ LicenseStubs.stubNoValidLicense();
58
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no valid hardcoded license
59
+ HomeSteps.visit();
60
+ MainMenuSteps.clickOnLicense();
61
+ // Then,
62
+ LicenseSteps.verifyNoValidLicenseHardcoded();
63
+ });
64
+
65
+ it('Should display the correct initial state when navigating via URL and there is valid license', () => {
66
+ LicenseStubs.stubLicenseHardcoded(false);
67
+ LicenseStubs.stubEnterpriseLicense();
68
+ // Given, I visit the License page via URL without a repository selected and there is valid license
69
+ LicenseSteps.visit();
70
+ // Then,
71
+ LicenseSteps.verifyValidLicense();
72
+ });
73
+
74
+ it('Should display the correct initial state when navigating via the navigation menu and there is valid license', () => {
75
+ LicenseStubs.stubLicenseHardcoded(false);
76
+ LicenseStubs.stubEnterpriseLicense();
77
+ // Given, I visit the License page via the navigation menu without a repository selected and there is valid license
78
+ HomeSteps.visit();
79
+ MainMenuSteps.clickOnLicense();
80
+ // Then,
81
+ LicenseSteps.verifyValidLicense();
82
+ });
83
+
84
+
85
+ it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
86
+ LicenseStubs.stubLicenseHardcoded(true);
87
+ LicenseStubs.stubEnterpriseLicense();
88
+ // Given, I visit the License page via URL without a repository selected and there is valid hardcoded license
89
+ LicenseSteps.visit();
90
+ // Then,
91
+ LicenseSteps.verifyValidLicenseHardcoded();
92
+ });
93
+
94
+ it('Should display the correct initial state when navigating via the navigation menu and there is valid harcoded license', () => {
95
+ LicenseStubs.stubLicenseHardcoded(true);
96
+ LicenseStubs.stubEnterpriseLicense();
97
+ // Given, I visit the License page via the navigation menu without a repository selected and there is valid hardcoded license
98
+ HomeSteps.visit();
99
+ MainMenuSteps.clickOnLicense();
100
+ // Then,
101
+ LicenseSteps.verifyValidLicenseHardcoded();
102
+ });
103
+ })
@@ -9,8 +9,8 @@ describe('License', () => {
9
9
  LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
10
10
 
11
11
  LicenseSteps.getHardcodedAlertMessage().should('exist');
12
- LicenseSteps.getRemoveLicenseLicenseButton().should('not.exist');
13
- LicenseSteps.getSetNewLicenseElement().should('not.exist');
12
+ LicenseSteps.getRemoveLicenseButton().should('not.exist');
13
+ LicenseSteps.getSetNewLicenseButton().should('not.exist');
14
14
  });
15
15
 
16
16
  it('Should not displays an informational message if the license is not provided through a file (not hardcoded)', () => {
@@ -20,7 +20,7 @@ describe('License', () => {
20
20
  LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
21
21
 
22
22
  LicenseSteps.getHardcodedAlertMessage().should('not.exist');
23
- LicenseSteps.getRemoveLicenseLicenseButton().should('exist');
24
- LicenseSteps.getSetNewLicenseElement().should('exist');
23
+ LicenseSteps.getRemoveLicenseButton().should('exist');
24
+ LicenseSteps.getSetNewLicenseButton().should('exist');
25
25
  });
26
26
  });
@@ -0,0 +1,36 @@
1
+ import HomeSteps from "../../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
3
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
4
+
5
+ describe('Backup And Restore with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'backup-and-restore-init-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should display the correct initial state when navigating via URL', () => {
19
+ // Given, I visit the Backup And Restore page via URL with a repository selected
20
+ BackupAndRestoreSteps.visit();
21
+ // Then,
22
+ verifyInitialStateWithSelectedRepository();
23
+ });
24
+
25
+ it('Should display the correct initial state when navigating via the navigation bar', () => {
26
+ // Given, I visit the Backup And Restore page via the navigation menu with a repository selected
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnBackupAndRestore();
29
+ // Then,
30
+ verifyInitialStateWithSelectedRepository();
31
+ });
32
+
33
+ const verifyInitialStateWithSelectedRepository = () => {
34
+ BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
35
+ };
36
+ })
@@ -0,0 +1,25 @@
1
+ import {ErrorSteps} from "../../../steps/error-steps";
2
+ import HomeSteps from "../../../steps/home-steps";
3
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
4
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
5
+
6
+ describe('Backup and Restore without selected repository', () => {
7
+ it('Should display the correct initial state when navigating via URL', () => {
8
+ // Given, I visit the Backup and Restore page via URL without a repository selected
9
+ BackupAndRestoreSteps.visit();
10
+ // Then,
11
+ verifyInitialStateWithSelectedRepository();
12
+ });
13
+
14
+ it('Should display the correct initial state when navigating via the navigation menu', () => {
15
+ // Given, I visit the Backup and Restore page via the navigation menu without a repository selected
16
+ HomeSteps.visit();
17
+ MainMenuSteps.clickOnBackupAndRestore();
18
+ // Then,
19
+ verifyInitialStateWithSelectedRepository();
20
+ });
21
+
22
+ const verifyInitialStateWithSelectedRepository = () => {
23
+ BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
24
+ };
25
+ })
@@ -1,5 +1,5 @@
1
- import {BackupAndRestoreSteps} from "../../steps/monitoring/backup-and-restore-steps";
2
- import {BackupAndRestoreStubs} from "../../stubs/backup-and-restore-stubs";
1
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
2
+ import {BackupAndRestoreStubs} from "../../../stubs/backup-and-restore-stubs";
3
3
 
4
4
  describe("Monitoring 'Backup And Restore'", () => {
5
5
 
@@ -2,6 +2,7 @@ import HomeSteps from "../../steps/home-steps";
2
2
  import {OperationsStatusesComponentSteps} from "../../steps/operations-statuses-component-steps";
3
3
  import {GlobalOperationsStatusesStub} from "../../stubs/global-operations-statuses-stub";
4
4
  import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
5
+ import {BrowserStubs} from "../../stubs/browser-stubs";
5
6
 
6
7
  describe('Operations Status Component', () => {
7
8
 
@@ -72,7 +73,7 @@ describe('Operations Status Component', () => {
72
73
  OperationsStatusesComponentSteps.openOperationStatusesDialog();
73
74
  // When I click on "Running query" operation element.
74
75
  // Then I expect to be redirected to "Query and Update monitoring" view.
75
- OperationsStatusesComponentSteps.checkOperationElementUrl('monitor/queries', 3);
76
+ checkOperationElementUrl('monitor/queries', 3);
76
77
  // Then I expect "Global Operations Component" to still be displayed.
77
78
  OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
78
79
  });
@@ -87,7 +88,7 @@ describe('Operations Status Component', () => {
87
88
  OperationsStatusesComponentSteps.openOperationStatusesDialog();
88
89
  // When I click on "Running updates" operation element.
89
90
  // Then I expect to be redirected to "Query and Update monitoring" view.
90
- OperationsStatusesComponentSteps.checkOperationElementUrl('monitor/queries', 4);
91
+ checkOperationElementUrl('monitor/queries', 4);
91
92
  // Then I expect "Global Operations Component" to still be displayed.
92
93
  OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
93
94
  });
@@ -102,7 +103,7 @@ describe('Operations Status Component', () => {
102
103
  OperationsStatusesComponentSteps.openOperationStatusesDialog();
103
104
  // When I click on "Running imports" operation element.
104
105
  // Then I expect to be redirected to "Query and Update monitoring" view.
105
- OperationsStatusesComponentSteps.checkOperationElementUrl('import', 2);
106
+ checkOperationElementUrl('import', 2);
106
107
  // Then I expect "Global Operations Component" to still be displayed.
107
108
  OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
108
109
  });
@@ -117,7 +118,7 @@ describe('Operations Status Component', () => {
117
118
  OperationsStatusesComponentSteps.openOperationStatusesDialog();
118
119
  // When I click on "Creating backup" operation element.
119
120
  // Then I expect to be redirected to "Backup and Restore" view.
120
- OperationsStatusesComponentSteps.checkOperationElementUrl('monitor/backup-and-restore', 1);
121
+ checkOperationElementUrl('monitor/backup-and-restore', 1);
121
122
  // Then I expect "Global Operations Component" to still be displayed.
122
123
  OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
123
124
 
@@ -133,9 +134,15 @@ describe('Operations Status Component', () => {
133
134
  OperationsStatusesComponentSteps.openOperationStatusesDialog();
134
135
  // When I click on "Unavailable nodes" operation element.
135
136
  // Then I expect to be redirected to "Cluster Monitoring" view.
136
- OperationsStatusesComponentSteps.checkOperationElementUrl('cluster', 0);
137
+ checkOperationElementUrl('cluster', 0);
137
138
  // Then I expect "Global Operations Component" to still be displayed.
138
139
  OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
139
140
 
140
141
  });
142
+
143
+ function checkOperationElementUrl(expectedUrl, operationIndex = 0) {
144
+ BrowserStubs.spyNavigateToUrl();
145
+ OperationsStatusesComponentSteps.getOperationStatuses().eq(operationIndex).click();
146
+ cy.get(BrowserStubs.NAVIGATE_TO_URL_ALIAS()).should('have.been.calledWithMatch', expectedUrl)
147
+ }
141
148
  });
@@ -0,0 +1,39 @@
1
+ import HomeSteps from "../../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
3
+ import {QueriesAndUpdatesSteps} from "../../../steps/monitoring/queries-and-updates-steps";
4
+
5
+ describe('Queries and Updates with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'queries-and-updates-init-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should display the correct initial state when navigating via URL', () => {
19
+ // Given, I visit the Query and Updates page via URL with a repository selected
20
+ QueriesAndUpdatesSteps.visit();
21
+ // Then,
22
+ verifyInitialStateWithSelectedRepository();
23
+ });
24
+
25
+ it('Should display the correct initial state when navigating via the navigation bar', () => {
26
+ // Given, I visit the Query and Updates page via the navigation menu with a repository selected
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnQueryAndUpdate();
29
+ // Then,
30
+ verifyInitialStateWithSelectedRepository();
31
+ });
32
+
33
+ const verifyInitialStateWithSelectedRepository = () => {
34
+ QueriesAndUpdatesSteps.getQueryAndUpdatePage().should('be.visible');
35
+ QueriesAndUpdatesSteps.getPauseButton().should('be.visible');
36
+ QueriesAndUpdatesSteps.getNoRunningQueriesOrUpdates().should('be.visible')
37
+ .contains('No running queries or updates');
38
+ };
39
+ })
@@ -0,0 +1,21 @@
1
+ import {ErrorSteps} from "../../../steps/error-steps";
2
+ import HomeSteps from "../../../steps/home-steps";
3
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
4
+ import {QueriesAndUpdatesSteps} from "../../../steps/monitoring/queries-and-updates-steps";
5
+
6
+ describe('Query and Updates without selected repository', () => {
7
+ it('Should display the correct initial state when navigating via URL', () => {
8
+ // Given, I visit the Query and Updates page via URL without a repository selected
9
+ QueriesAndUpdatesSteps.visit();
10
+ // Then,
11
+ ErrorSteps.verifyNoConnectedRepoMessage();
12
+ });
13
+
14
+ it('Should display the correct initial state when navigating via the navigation menu', () => {
15
+ // Given, I visit the Query and Updates page via the navigation menu without a repository selected
16
+ HomeSteps.visit();
17
+ MainMenuSteps.clickOnQueryAndUpdate();
18
+ // Then,
19
+ ErrorSteps.verifyNoConnectedRepoMessage();
20
+ });
21
+ })
@@ -1,3 +1,5 @@
1
+ import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
2
+
1
3
  describe('Monitor Resources', () => {
2
4
 
3
5
  let repositoryId;
@@ -10,8 +12,7 @@ describe('Monitor Resources', () => {
10
12
  beforeEach(() => {
11
13
  cy.presetRepository(repositoryId);
12
14
 
13
- cy.visit('/monitor/system');
14
- cy.window();
15
+ SystemMonitoringSteps.visit();
15
16
 
16
17
  // Wait for loaders to disappear
17
18
  getTabsPanel().should('be.visible');
@@ -0,0 +1,32 @@
1
+ import HomeSteps from "../../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
3
+ import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
4
+
5
+ describe('System monitoring with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'system-monitoring-init-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should display the correct initial state when navigating via URL', () => {
19
+ // Given, I visit the System monitoring page via URL with a repository selected
20
+ SystemMonitoringSteps.visit();
21
+ // Then,
22
+ SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
23
+ });
24
+
25
+ it('Should display the correct initial state when navigating via the navigation bar', () => {
26
+ // Given, I visit the System monitoring page via the navigation menu with a repository selected
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnSystemMonitoring();
29
+ // Then,
30
+ SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
31
+ });
32
+ })
@@ -0,0 +1,20 @@
1
+ import HomeSteps from "../../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
3
+ import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
4
+
5
+ describe('System monitoring without selected repository', () => {
6
+ it('Should display the correct initial state when navigating via URL', () => {
7
+ // Given, I visit the System monitoring page via URL without a repository selected
8
+ SystemMonitoringSteps.visit();
9
+ // Then,
10
+ SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
11
+ });
12
+
13
+ it('Should display the correct initial state when navigating via the navigation menu', () => {
14
+ // Given, I visit the System monitoring page via the navigation menu without a repository selected
15
+ HomeSteps.visit();
16
+ MainMenuSteps.clickOnSystemMonitoring();
17
+ // Then,
18
+ SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
19
+ });
20
+ })
@@ -0,0 +1,23 @@
1
+ import {NotFoundSteps} from "../../steps/not-found/not-found-steps.js";
2
+
3
+ describe('Not found page', () => {
4
+
5
+ it('Should display the 404 not found page for an unknown route', () => {
6
+ // Given, I navigate to an unknown route
7
+ NotFoundSteps.visit('/unknown-route');
8
+
9
+ // Then, I expect to see the 404 not found page
10
+ NotFoundSteps.getNotFoundBanner().should('be.visible');
11
+ NotFoundSteps.getNotFoundContent().should('contain', '404 That’s an error!');
12
+ NotFoundSteps.getNotFoundContent().should('contain', 'The requested URL was not found on this server. That’s all I know.');
13
+ NotFoundSteps.getGoHomeButton().should('be.visible');
14
+
15
+ // When, I click on the "Go Home" button
16
+ NotFoundSteps.clickGoHomeButton();
17
+
18
+ // Then, I expect to be redirected to the home page
19
+ NotFoundSteps.getUrl().should('eq', `${Cypress.config('baseUrl')}/`);
20
+ // And the banner should no longer be visible
21
+ NotFoundSteps.getNotFoundBanner().should('not.exist');
22
+ });
23
+ });