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
@@ -2,6 +2,8 @@ import { LicenseStubs } from "../../../stubs/license-stubs";
2
2
  import { VisualGraphSteps } from "../../../steps/visual-graph-steps";
3
3
  import { HtmlUtil } from "../../../utils/html-util";
4
4
 
5
+ const LONG_LABEL = 'A looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong label for Node Four'
6
+
5
7
  /**
6
8
  * RDF snippet with the necessary data to test all possible label scenarios:
7
9
  * 1. (ex:node1) Node with a plain text label;
@@ -19,7 +21,7 @@ const RDF_SNIPPETS_WITH_NODE_LABELS_DATA =
19
21
  'ex:node1 rdfs:label "Node One" .\n' +
20
22
  'ex:node2 rdfs:label "Node<br>Two" .\n' +
21
23
  'ex:node3 rdfs:label "Node\\nThree" .\n' +
22
- 'ex:node4 rdfs:label "A longer label for Node Four" .\n' +
24
+ `ex:node4 rdfs:label "${LONG_LABEL}" .\n` +
23
25
  '\n' +
24
26
  '# Relationships Between Nodes\n' +
25
27
  'ex:node1 ex:connectedTo ex:node2 .\n' +
@@ -60,9 +62,19 @@ describe("Node Basics", () => {
60
62
  VisualGraphSteps.getNodeLabel('http://example.com/node3').should('have.html', 'Node<br>Three');
61
63
 
62
64
  // The label of ex:node4 to be displayed with a long label (no truncation).
63
- VisualGraphSteps.getNodeLabel('http://example.com/node4').should('have.html', 'A longer label for Node Four');
65
+ VisualGraphSteps.getNodeLabel('http://example.com/node4').should('have.html', LONG_LABEL);
64
66
 
65
67
  // The label of ex:node4 should be truncated with ellipsis because it has a long label.
66
68
  HtmlUtil.verifyEllipsis(VisualGraphSteps.getNodeLabel('http://example.com/node4'));
69
+
70
+ // When: I disable the "Truncate long labels" setting.
71
+ VisualGraphSteps.openVisualGraphSettings();
72
+ VisualGraphSteps.getTruncateLabelsCheckbox().should('be.checked');
73
+ VisualGraphSteps.toggleTruncateLabelsCheckbox();
74
+ VisualGraphSteps.getTruncateLabelsCheckbox().should('not.be.checked');
75
+ VisualGraphSteps.saveSettings();
76
+
77
+ // Then, I expect to see a full non-truncated label for ex:node4.
78
+ HtmlUtil.verifyNoEllipsis(VisualGraphSteps.getNodeLabel('http://example.com/node4'));
67
79
  });
68
80
  });
@@ -0,0 +1,38 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import HomeSteps from "../../../steps/home-steps";
3
+ import {VisualGraphSteps} from "../../../steps/visual-graph-steps";
4
+
5
+ describe('Visual Graph with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'visual-graph-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should render Visual Graph with selected repository via URL', () => {
19
+ // Given, I visit the Visual Graph page via URL and I have a selected repository
20
+ VisualGraphSteps.visit();
21
+ // Then, I expect to see the Visual Graph with the classes and relationships
22
+ verifyVisualGraphWithSelectedRepository();
23
+ });
24
+
25
+ it('Should render Visual Graph with selected repository via navigation menu', () => {
26
+ // Given, I visit the Visual Graph page via navigation menu and I have a selected repository
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnVisualGraph();
29
+ // Then, I expect to see the Visual Graph with the classes and relationships
30
+ verifyVisualGraphWithSelectedRepository();
31
+ });
32
+ });
33
+
34
+ function verifyVisualGraphWithSelectedRepository() {
35
+ VisualGraphSteps.getSearchField().should('be.visible');
36
+ VisualGraphSteps.getGraphConfigurationsArea().should('be.visible');
37
+ VisualGraphSteps.getSavedGraphsArea().should('be.visible');
38
+ }
@@ -0,0 +1,21 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import HomeSteps from "../../../steps/home-steps";
3
+ import {ErrorSteps} from "../../../steps/error-steps";
4
+ import {VisualGraphSteps} from "../../../steps/visual-graph-steps";
5
+
6
+ describe('Visual Graph without selected repository', () => {
7
+ it('Should render Visual Graph without selected repository via URL', () => {
8
+ // Given, I visit the Visual Graph page via URL and I don't have any repositories
9
+ VisualGraphSteps.visit();
10
+ // Then
11
+ ErrorSteps.verifyNoConnectedRepoMessage();
12
+ });
13
+
14
+ it('Should render Visual Graph without selected repository via navigation menu', () => {
15
+ // Given, I visit the Visual Graph page via navigation menu and I don't have any repositories
16
+ HomeSteps.visit();
17
+ MainMenuSteps.clickOnVisualGraph();
18
+ // Then
19
+ ErrorSteps.verifyNoConnectedRepoMessage();
20
+ });
21
+ })
@@ -1,7 +1,9 @@
1
- import {VisualGraphSteps} from "../../../steps/visual-graph-steps";
2
- import {ApplicationSteps} from "../../../steps/application-steps";
3
- import {LicenseStubs} from "../../../stubs/license-stubs";
4
- import {AutocompleteStubs} from "../../../stubs/autocomplete/autocomplete-stubs";
1
+ import {VisualGraphSteps} from '../../../steps/visual-graph-steps';
2
+ import {ApplicationSteps} from '../../../steps/application-steps';
3
+ import {LicenseStubs} from '../../../stubs/license-stubs';
4
+ import {AutocompleteStubs} from '../../../stubs/autocomplete/autocomplete-stubs';
5
+ import {MainMenuSteps} from '../../../steps/main-menu-steps.js';
6
+ import HomeSteps from '../../../steps/home-steps.js';
5
7
 
6
8
  const FILE_TO_IMPORT = 'wine.rdf';
7
9
  const VALID_RESOURCE = 'USRegion';
@@ -24,7 +26,17 @@ describe('Visual graph screen validation', () => {
24
26
  cy.deleteRepository(repositoryId);
25
27
  });
26
28
 
27
- context('When autocomplete is disabled', () => {
29
+ describe('Embedded', () => {
30
+ it('Should not show main manu, header and footer in embedded mode', () => {
31
+ cy.visit('/graphs-visualizations?uri=http:%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23Chardonnay&embedded');
32
+ VisualGraphSteps.verifyPageLoaded();
33
+ MainMenuSteps.getMainMenu().should('not.exist');
34
+ HomeSteps.getPageFooter().should('not.exist');
35
+ HomeSteps.getPageHeader().should('not.exist');
36
+ });
37
+ });
38
+
39
+ describe('When autocomplete is disabled', () => {
28
40
  it('Test notification when autocomplete is disabled', () => {
29
41
  cy.visit('graphs-visualizations');
30
42
  cy.window();
@@ -38,7 +50,7 @@ describe('Visual graph screen validation', () => {
38
50
  });
39
51
  });
40
52
 
41
- context('When autocomplete is enabled', () => {
53
+ describe('When autocomplete is enabled', () => {
42
54
  beforeEach(() => {
43
55
  cy.enableAutocomplete(repositoryId);
44
56
  //http://localhost:9000/graphs-visualizations?uri=http:%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23USRegion
@@ -54,12 +66,7 @@ describe('Visual graph screen validation', () => {
54
66
  ApplicationSteps.getErrorNotifications().should('be.visible').and('contain', 'Invalid IRI');
55
67
  });
56
68
 
57
- it('Test search for a valid resource', {
58
- retries: {
59
- openMode: 0,
60
- runMode: 1
61
- }
62
- }, () => {
69
+ it('Test search for a valid resource', () => {
63
70
  AutocompleteStubs.spyAutocompleteStatus();
64
71
  VisualGraphSteps.visit();
65
72
  // Verify autocomplete is ON, because sometimes in CI it is OFF and fails when searching for Resource
@@ -72,17 +79,17 @@ describe('Visual graph screen validation', () => {
72
79
  VisualGraphSteps.verifyPageLoaded();
73
80
  VisualGraphSteps.searchForResourceAndOpen(VALID_RESOURCE, VALID_RESOURCE);
74
81
  // Verify redirection to existing visual graph
75
- cy.url().should('match', /USRegion$/);
82
+ cy.url().should('include', 'USRegion');
76
83
  });
77
84
 
78
85
  it('Test default graph state', () => {
79
86
  VisualGraphSteps.openUSRegionUri();
80
- VisualGraphSteps.openVisualGraphSettings();
87
+ // Verify that the default settings are as follows:
88
+ // Maximum links to show: 100
89
+ VisualGraphSteps.getLinksNumberField().and('have.value', '100');
81
90
 
91
+ VisualGraphSteps.openVisualGraphSettings();
82
92
  cy.get('.filter-sidepanel').as('sidepanel').should('be.visible').within(() => {
83
- // Verify that the default settings are as follows:
84
- // Maximum links to show: 20
85
- VisualGraphSteps.getLinksNumberField().and('have.value', '20');
86
93
  // Preferred lang: en
87
94
  cy.get('.preferred-languages .tag-item').should('have.length', 1)
88
95
  .and('contain', 'en');
@@ -119,40 +126,20 @@ describe('Visual graph screen validation', () => {
119
126
 
120
127
  it('Test invalid links limit should show error to user ', () => {
121
128
  VisualGraphSteps.openUSRegionUri();
122
- VisualGraphSteps.openVisualGraphSettings();
123
-
124
- cy.get('.filter-sidepanel').as('sidepanel').should('be.visible').within(() => {
125
- // Verify that the default settings are as follows:
126
- // Maximum links to show: 20
127
- VisualGraphSteps.getLinksNumberField().and('have.value', '20');
128
- // Update default 20
129
- VisualGraphSteps.updateLinksLimitField('1001')
130
- .then(() => {
131
- // Try to put invalid value such as 1001
132
- cy.get('.idError')
133
- .should('be.visible')
134
- .and('contain.text', 'Invalid links limit');
135
- });
136
- // Try to save the invalid value
137
- VisualGraphSteps.getSaveSettingsButton().and('not.be.disabled')
138
- .click();
139
- // Then reset to default settings
140
- VisualGraphSteps.getResetSettingsButton().and('not.be.disabled')
141
- .click()
142
- .then(() => {
143
- VisualGraphSteps.getLinksNumberField().and('have.value', '20');
144
- cy.get('.idError')
145
- .should('not.exist');
146
- });
147
- });
129
+ // Verify that the default settings are as follows:
130
+ // Maximum links to show: 100
131
+ VisualGraphSteps.getLinksNumberField().and('have.value', '100');
132
+ // Update default 100
133
+ VisualGraphSteps.updateLinksLimitField('1001')
134
+ .then(() => {
135
+ // Try to put invalid value such as 1001
136
+ cy.get('.idError')
137
+ .should('be.visible')
138
+ .and('contain.text', 'Enter a number up to 1000');
139
+ });
148
140
  });
149
141
 
150
- it('Test search for a valid resource with links', {
151
- retries: {
152
- runMode: 1,
153
- openMode: 0
154
- }
155
- }, () => {
142
+ it('Test search for a valid resource with links', () => {
156
143
  VisualGraphSteps.openUSRegionUri();
157
144
  // Check include inferred
158
145
  VisualGraphSteps.toggleInferredStatements(true);
@@ -160,10 +147,10 @@ describe('Visual graph screen validation', () => {
160
147
  VisualGraphSteps.openVisualGraphHome();
161
148
  // Search for "USRegion" again
162
149
  VisualGraphSteps.searchForResourceAndOpen(VALID_RESOURCE, VALID_RESOURCE);
163
- // Verify that 20 links (nodes) are displayed
164
- VisualGraphSteps.getPredicates().should('have.length', 20);
150
+ // Verify that 36 links (nodes) are displayed
151
+ VisualGraphSteps.getPredicates().should('have.length', 36);
165
152
  // Verify that links are counted by nodes and not by triples (predicates)
166
- VisualGraphSteps.getNodes().and('have.length', 21);
153
+ VisualGraphSteps.getNodes().and('have.length', 37);
167
154
  });
168
155
 
169
156
  it('Test collapse and expand a node', () => {
@@ -211,9 +198,10 @@ describe('Visual graph screen validation', () => {
211
198
  // Verify that before given node is removed there are 4 of them
212
199
  VisualGraphSteps.getNodes().and('have.length', 4);
213
200
  // Click once on node different than parent one with the mouse
201
+ // eslint-disable-next-line cypress/no-unnecessary-waiting
214
202
  cy.get('.node-wrapper circle').eq(1)
215
- // The wait is needed because mouseover event will result in
216
- // pop-up of menu icons only if nodes are not moving
203
+ // The wait is needed because mouseover event will result in
204
+ // pop-up of menu icons only if nodes are not moving
217
205
  .should('be.visible').wait(5000)
218
206
  .trigger('mouseover', {force: true});
219
207
  // Select remove function
@@ -262,34 +250,34 @@ describe('Visual graph screen validation', () => {
262
250
  });
263
251
 
264
252
  it('Test verify mouse/keyboard actions', () => {
265
- const mouseActions = 'Mouse actions\n ' +
266
- '\n \n \n \n ' +
267
- 'Single click\n \n ' +
268
- 'View node details and properties\n \n \n \n ' +
269
- 'Double click\n \n ' +
270
- 'Load node connections\n \n \n \n ' +
271
- 'Ctrl/Cmd-click\n \n ' +
272
- 'Removes a node and its links\n \n \n \n ' +
273
- 'Ctrl/Cmd-Shift-click\n \n ' +
274
- 'Restart the view with that node as a central one\n \n \n \n ' +
275
- 'Click and drag a node\n \n ' +
276
- 'Move a node by dragging it (will also pin down the node)\n \n \n \n ' +
277
- 'Right click a node\n \n ' +
278
- 'Pin down or unpin the node\n \n \n \n ' +
279
- 'Click and drag outside a node\n \n ' +
280
- 'Move the whole graph\n';
281
- const touchActions = 'Touch actions\n \n \n \n \n ' +
282
- 'Tap\n \n ' +
283
- 'View node details and properties\n \n \n \n ' +
284
- 'Tap and hold\n \n ' +
285
- 'Removes a node and its links\n \n \n \n ' +
286
- 'Tap twice\n \n ' +
287
- 'Load node connections\n';
288
- const keyboardActions = 'Keyboard actions\n \n \n \n ' +
289
- 'Left arrow\n \n ' +
290
- 'Rotate the graph to the left\n \n \n \n ' +
291
- 'Right arrow\n \n ' +
292
- 'Rotate the graph to the right\n';
253
+ const mouseActions = 'MOUSE ACTIONS\n \n \n ' +
254
+ 'Single click\n ' +
255
+ 'View node details and properties\n \n \n ' +
256
+ 'Double click\n ' +
257
+ 'Load node connections\n \n \n ' +
258
+ 'Ctrl|Cmd\n ' +
259
+ 'Click\n ' +
260
+ 'Removes a node and its links\n \n \n ' +
261
+ 'Ctrl|Cmd\n ' +
262
+ 'Shift\n ' +
263
+ 'Click\n ' +
264
+ 'Restart the view with that node as a central one\n \n \n ' +
265
+ 'Click and drag a node\n ' +
266
+ 'Move a node by dragging it (will also pin down the node)\n \n \n ' +
267
+ 'Right click a node\n ' +
268
+ 'Pin down or unpin the node\n \n \n ' +
269
+ 'Click and drag outside a node\n ' +
270
+ 'Move the whole graph\n \n \n \n \n';
271
+ const touchActions = 'TOUCH ACTIONS\n \n \n ' +
272
+ 'Tap\n ' +
273
+ 'View node details and properties\n \n \n ' +
274
+ 'Tap and hold\n ' +
275
+ 'Removes a node and its links\n \n \n ' +
276
+ 'Tap twice\n ' +
277
+ 'Load node connections\n \n \n \n \n';
278
+ const keyboardActions = 'KEYBOARD ACTIONS\n \n \n \n ' +
279
+ 'Rotate the graph to the left\n \n \n \n ' +
280
+ 'Rotate the graph to the right\n \n \n \n \n \n';
293
281
 
294
282
  VisualGraphSteps.openUSRegionUri();
295
283
  // Click on "mouse and keyboard actions" in the lower right corner of the screen
@@ -309,20 +297,16 @@ describe('Visual graph screen validation', () => {
309
297
  it('Test maximum links to show', () => {
310
298
  VisualGraphSteps.openUSRegionUri();
311
299
 
312
- // Verify that 20 links (nodes) are displayed
313
- VisualGraphSteps.getPredicates().should('have.length', 20);
300
+ // Verify that 36 links (nodes) are displayed
301
+ VisualGraphSteps.getPredicates().should('have.length', 36);
314
302
 
315
- VisualGraphSteps.openVisualGraphSettings();
316
303
  // Set maximum links to 2
317
304
  VisualGraphSteps.updateLinksLimitField('2');
318
- VisualGraphSteps.saveSettings();
319
305
  // Verify that the diagram is updated
320
306
  VisualGraphSteps.getPredicates().should('have.length', 2);
321
307
 
322
- VisualGraphSteps.openVisualGraphSettings();
323
308
  // Set maximum links to 100
324
309
  VisualGraphSteps.updateLinksLimitField('100');
325
- VisualGraphSteps.saveSettings();
326
310
  // Verify that the diagram is updated
327
311
  VisualGraphSteps.getPredicates().should('have.length', 36);
328
312
  });
@@ -333,10 +317,10 @@ describe('Visual graph screen validation', () => {
333
317
  VisualGraphSteps.toggleInferredStatements(true);
334
318
 
335
319
  // Verify that many results are displayed
336
- // Verify that 20 links (nodes) are displayed
337
- VisualGraphSteps.getPredicates().should('have.length', 20);
320
+ // Verify that 36 links (nodes) are displayed
321
+ VisualGraphSteps.getPredicates().should('have.length', 36);
338
322
  // Verify that more than three nodes are displayed
339
- VisualGraphSteps.getNodes().and('have.length', 21);
323
+ VisualGraphSteps.getNodes().and('have.length', 37);
340
324
 
341
325
  // Switch Include Inferred Statements off
342
326
  VisualGraphSteps.toggleInferredStatements(false);
@@ -432,9 +416,6 @@ describe('Visual graph screen validation', () => {
432
416
  // Modify the settings first
433
417
  VisualGraphSteps.openVisualGraphSettings();
434
418
  // Verify that the default settings are as follows:
435
- // Maximum links to show: 20
436
- VisualGraphSteps.updateLinksLimitField('10')
437
- .should('have.value', '10');
438
419
  // Preferred lang: en
439
420
  cy.get('.preferred-languages .tag-item').should('have.length', 1)
440
421
  .eq(0).should('contain', 'en');
@@ -475,8 +456,6 @@ describe('Visual graph screen validation', () => {
475
456
 
476
457
  VisualGraphSteps.openVisualGraphSettings();
477
458
  // Verify that the default settings are as follows:
478
- // Maximum links to show: 20
479
- VisualGraphSteps.getLinksNumberField().and('have.value', '20');
480
459
  // Preferred lang: en
481
460
  cy.get('.preferred-languages .tag-item').should('have.length', 1);
482
461
  // Include inferred: false
@@ -245,7 +245,6 @@ describe('Graphql: create endpoint', () => {
245
245
  // Then I should be on the generate endpoint step
246
246
  CreateGraphqlEndpointSteps.getActiveStep().should('contain', 'Create');
247
247
  CreateGraphqlEndpointSteps.getGenerateEndpointView().should('be.visible');
248
-
249
248
  });
250
249
 
251
250
  it('should be able to cancel the endpoint creation wizard', () => {
@@ -277,5 +276,4 @@ describe('Graphql: create endpoint', () => {
277
276
  ModalDialogSteps.getDialog().should('not.exist');
278
277
  cy.url().should('include', '/graphql/endpoints');
279
278
  });
280
-
281
279
  });
@@ -113,7 +113,7 @@ describe('Graphql: edit endpoint settings', () => {
113
113
  "queryPrefix": null,
114
114
  "mutationPrefix": null,
115
115
  "sparqlFederatedServices": "{}",
116
- "sparqlFederatedServicesPriority": 'Deployment configurations',
116
+ "sparqlFederatedServicesPriority": "Deployment configurations",
117
117
  }
118
118
  });
119
119
  });
@@ -45,7 +45,7 @@ describe('GraphQL endpoints filtering', () => {
45
45
  GraphqlEndpointManagementSteps.getEndpointsInfo().should('have.length', 3);
46
46
  });
47
47
 
48
- it.only('should render no results banner when all endpoints are filtered', () => {
48
+ it('should render no results banner when all endpoints are filtered', () => {
49
49
  // Given I have a repository with active GraphQL endpoints
50
50
  // When I visit the endpoint management view
51
51
  GraphqlEndpointManagementSteps.visit();
@@ -69,6 +69,8 @@ describe('GraphQL endpoints management', () => {
69
69
  // Given I have a repository with active GraphQL endpoints
70
70
  // When I visit the endpoint management view
71
71
  GraphqlEndpointManagementSteps.visit();
72
+ // And I toggle the 3rd endpoint's active state to inactive
73
+ GraphqlEndpointManagementSteps.toggleEndpointActiveState(2);
72
74
  // Then I should see the endpoints info
73
75
  GraphqlEndpointManagementSteps.getEndpointTable().within(() => {
74
76
  cy.get('thead th').should('have.length', 10);
@@ -85,7 +87,6 @@ describe('GraphQL endpoints management', () => {
85
87
  GraphqlEndpointManagementSteps.getEndpointsInfo().should('have.length', 3);
86
88
  GraphqlEndpointManagementSteps.verifyEndpointInfo([
87
89
  {
88
- status: 'deleted',
89
90
  id: 'swapi',
90
91
  label: 'Ontotext Star Wars Ontology',
91
92
  description: '',
@@ -96,7 +97,6 @@ describe('GraphQL endpoints management', () => {
96
97
  properties: 68
97
98
  },
98
99
  {
99
- status: 'deleted',
100
100
  id: 'swapi-planets',
101
101
  label: 'Star Wars planets API',
102
102
  description: '',
@@ -107,12 +107,12 @@ describe('GraphQL endpoints management', () => {
107
107
  properties: 10
108
108
  },
109
109
  {
110
- status: 'deleted',
110
+ status: "deleted",
111
111
  id: 'swapi-species',
112
112
  label: 'Star Wars species API',
113
113
  description: '',
114
114
  default: false,
115
- active: true,
115
+ active: false,
116
116
  modified: ApplicationSteps.getCurrentDate(),
117
117
  types: 2,
118
118
  properties: 17
@@ -0,0 +1,43 @@
1
+ import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import HomeSteps from "../../steps/home-steps";
4
+
5
+ describe('GraphQL endpoint management with endpoints', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'graphql-endpoint-management-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ cy.importServerFile(repositoryId, 'swapi-dataset.ttl');
13
+ cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema.yaml', 'swapi');
14
+ cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema-film-restricted.yaml', 'swapi');
15
+ });
16
+
17
+ afterEach(() => {
18
+ cy.deleteRepository(repositoryId);
19
+ });
20
+
21
+ it('Should render GraphQL endpoint management with endpoints via URL', () => {
22
+ // Given, I visit the GraphQL endpoint management page via URL and I have endpoints
23
+ GraphqlEndpointManagementSteps.visit();
24
+ // Then, I expect to see the GraphQL endpoint management page
25
+ validateGraphQlEndpointManagementPageWithEndpoints();
26
+ });
27
+
28
+ it('Should render GraphQL endpoint management with endpoints via navigation menu', () => {
29
+ // Given, I visit the GraphQL endpoint management page via navigation menu and I have endpoints
30
+ HomeSteps.visit();
31
+ MainMenuSteps.clickOnEndpointManagement();
32
+ // Then, I expect to see the GraphQL endpoint management page
33
+ validateGraphQlEndpointManagementPageWithEndpoints();
34
+ });
35
+ });
36
+
37
+ function validateGraphQlEndpointManagementPageWithEndpoints() {
38
+ GraphqlEndpointManagementSteps.getCreateEndpointButton().should('be.visible');
39
+ GraphqlEndpointManagementSteps.getImportEndpointSchemaDefinitionButton().should('be.visible');
40
+ GraphqlEndpointManagementSteps.getEndpointFilterField().should('be.visible');
41
+ GraphqlEndpointManagementSteps.getEndpointTable().should('be.visible');
42
+ GraphqlEndpointManagementSteps.getNoEndpointsInRepositoryBanner().should('not.exist');
43
+ }
@@ -0,0 +1,39 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
4
+
5
+ describe('GraphQL endpoint management with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'graphql-endpoint-management-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should render GraphQL endpoint management with selected repository via URL', () => {
19
+ // Given, I visit the GraphQL endpoint management page via URL and I have a selected repository
20
+ GraphqlEndpointManagementSteps.visit();
21
+ // Then, I expect to see the GraphQL endpoint management page
22
+ validateNoEndpointsGraphQlEndpointManagementPage();
23
+ });
24
+
25
+ it('Should render GraphQL endpoint management with selected repository via navigation menu', () => {
26
+ // Given, I visit the GraphQL endpoint management page via navigation menu and I have a selected repository'
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnEndpointManagement();
29
+ // Then, I expect to see the GraphQL endpoint management page
30
+ validateNoEndpointsGraphQlEndpointManagementPage()
31
+ });
32
+ });
33
+
34
+ function validateNoEndpointsGraphQlEndpointManagementPage() {
35
+ GraphqlEndpointManagementSteps.getCreateEndpointButton().should('be.visible');
36
+ GraphqlEndpointManagementSteps.getImportEndpointSchemaDefinitionButton().should('be.visible');
37
+ GraphqlEndpointManagementSteps.getNoEndpointsInRepositoryBanner().should('be.visible');
38
+ }
39
+
@@ -0,0 +1,21 @@
1
+ import {ErrorSteps} from "../../steps/error-steps";
2
+ import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
3
+ import HomeSteps from "../../steps/home-steps";
4
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
5
+
6
+ describe('GraphQl endpoint management without selected repository', () => {
7
+ it('Should render GraphQL endpoint management page without selected repository via URL', () => {
8
+ // Given, I visit the GraphQL endpoint management page via URL and I haven't selected a repository
9
+ GraphqlEndpointManagementSteps.visit();
10
+ // Then
11
+ ErrorSteps.verifyNoConnectedRepoMessage();
12
+ });
13
+
14
+ it('Should render GraphQL endpoint management without selected repository via navigation menu', () => {
15
+ // Given, I visit the GraphQL endpoint management page via navigation menu and I haven't selected a repository'
16
+ HomeSteps.visit();
17
+ MainMenuSteps.clickOnEndpointManagement();
18
+ // Then
19
+ ErrorSteps.verifyNoConnectedRepoMessage();
20
+ });
21
+ })
@@ -0,0 +1,40 @@
1
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
2
+ import HomeSteps from "../../steps/home-steps";
3
+ import {GraphqlPlaygroundSteps} from "../../steps/graphql/graphql-playground-steps";
4
+
5
+ describe('GraphQL playground with endpoints', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'graphql-playground-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ cy.importServerFile(repositoryId, 'swapi-dataset.ttl');
13
+ cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema.yaml', 'swapi');
14
+ cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema-film-restricted.yaml', 'swapi');
15
+ });
16
+
17
+ afterEach(() => {
18
+ cy.deleteRepository(repositoryId);
19
+ });
20
+
21
+ it('Should render GraphQL playground with endpoints via URL', () => {
22
+ // Given, I visit the GraphQL playground page via URL and I have endpoints
23
+ GraphqlPlaygroundSteps.visit();
24
+ // Then, I expect to see the GraphQL playground page
25
+ validateGraphQlPlaygroundWithEndpoints();
26
+ });
27
+
28
+ it('Should render GraphQL playground with endpoints via navigation menu', () => {
29
+ // Given, I visit the GraphQL playground page via navigation menu and I have endpoints
30
+ HomeSteps.visit();
31
+ MainMenuSteps.clickOnGraphQLPlayground();
32
+ // Then, I expect to see the GraphQL playground page
33
+ validateGraphQlPlaygroundWithEndpoints();
34
+ });
35
+ });
36
+
37
+ function validateGraphQlPlaygroundWithEndpoints() {
38
+ GraphqlPlaygroundSteps.getEndpointsSelectMenu().should('be.visible');
39
+ GraphqlPlaygroundSteps.getPlayground().should('be.visible');
40
+ }
@@ -0,0 +1,38 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {GraphqlPlaygroundSteps} from "../../steps/graphql/graphql-playground-steps";
4
+
5
+ describe('GraphQL playground with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'graphql-playground-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should render GraphQL playground with selected repository via URL', () => {
19
+ // Given, I visit the GraphQL playground page via URL and I have a selected repository
20
+ GraphqlPlaygroundSteps.visit();
21
+ // Then, I expect to see the GraphQL no schemas alert, because I don't have any endpoints
22
+ validateSelectedRepository();
23
+ });
24
+
25
+ it('Should render GraphQL playground with selected repository via navigation menu', () => {
26
+ // Given, I visit the GraphQL playground page via navigation menu and I have a selected repository'
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnGraphQLPlayground();
29
+ // Then, I expect to see the GraphQL no schemas alert, because I don't have any endpoints
30
+ validateSelectedRepository();
31
+ });
32
+ });
33
+
34
+ function validateSelectedRepository() {
35
+ GraphqlPlaygroundSteps.getNoSchemasAlert()
36
+ .should('be.visible')
37
+ .and('contain', 'No active endpoints found in the current repository. Manage the GraphQL schemas here');
38
+ }