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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/.editorconfig +17 -0
  2. package/.nycrc +10 -0
  3. package/cypress-flaky.config.js +20 -6
  4. package/cypress-legacy.config.js +47 -0
  5. package/cypress-security.config.js +36 -0
  6. package/cypress.config.js +45 -6
  7. package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
  8. package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +2 -2
  9. package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
  10. package/e2e-flaky/import/import-user-data-url.spec.js +63 -0
  11. package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +10 -18
  12. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +2 -12
  13. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.spec.js +1 -7
  14. package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +3 -7
  15. package/{integration → e2e-legacy}/cluster/cluster-states.spec.js +3 -3
  16. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +42 -0
  17. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +43 -0
  18. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +30 -0
  19. package/{integration/explore → e2e-legacy/explore/class-hierarchy}/class.hierarchy.spec.js +1 -1
  20. package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +42 -0
  21. package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +39 -0
  22. package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +21 -0
  23. package/{integration/explore/class.relationships.spec.js → e2e-legacy/explore/class-relationships/class-relationships.spec.js} +20 -50
  24. package/{integration/explore → e2e-legacy/explore/graphs-overview}/graphs.overview.spec.js +4 -4
  25. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +44 -0
  26. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +32 -0
  27. package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +38 -0
  28. package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +21 -0
  29. package/{integration → e2e-legacy}/explore/visual-graph/graphs-config.spec.js +5 -10
  30. package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +58 -0
  31. package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +142 -0
  32. package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.spec.js +14 -2
  33. package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +38 -0
  34. package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +21 -0
  35. package/{integration → e2e-legacy}/explore/visual-graph/visual.graph.spec.js +75 -96
  36. package/{integration → e2e-legacy}/graphql/create-graphql-endpoint.spec.js +0 -2
  37. package/{integration → e2e-legacy}/graphql/edit-graphql-enpoint.spec.js +1 -1
  38. package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
  39. package/{integration → e2e-legacy}/graphql/graphql-endpoint-management-view.spec.js +4 -4
  40. package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +43 -0
  41. package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +39 -0
  42. package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +21 -0
  43. package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +40 -0
  44. package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +38 -0
  45. package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +22 -0
  46. package/{integration → e2e-legacy}/graphql/graphql-playground.spec.js +1 -1
  47. package/e2e-legacy/graphql/graphql-theme.spec.js +73 -0
  48. package/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +0 -6
  49. package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +49 -0
  50. package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +89 -0
  51. package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +76 -0
  52. package/e2e-legacy/guides/connectors/connectors-guide.spec.js +163 -0
  53. package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +74 -0
  54. package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +55 -0
  55. package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +92 -0
  56. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +63 -0
  57. package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +105 -0
  58. package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +302 -0
  59. package/e2e-legacy/guides/navigation/navigation-guide.spec.js +64 -0
  60. package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +42 -0
  61. package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +69 -0
  62. package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +168 -0
  63. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +158 -0
  64. package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +92 -0
  65. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +88 -0
  66. package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +372 -0
  67. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +36 -0
  68. package/e2e-legacy/help/guides/guides-autostart.spec.js +126 -0
  69. package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +83 -0
  70. package/e2e-legacy/help/guides/guides-with-repository.spec.js +32 -0
  71. package/e2e-legacy/help/guides/guides-without-repository.spec.js +20 -0
  72. package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +71 -0
  73. package/{integration/guides/star-wars-interactive-guide.js → e2e-legacy/help/guides/star-wars-interactive-guide.spec.js} +3 -2
  74. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +32 -0
  75. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +20 -0
  76. package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +32 -0
  77. package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +20 -0
  78. package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +182 -0
  79. package/e2e-legacy/home/documentation-link.spec.js +41 -0
  80. package/{integration → e2e-legacy}/home/google-analytics.spec.js +4 -6
  81. package/e2e-legacy/home/home-page-with-selected-repository.spec.js +69 -0
  82. package/e2e-legacy/home/home-page-without-repositories.spec.js +87 -0
  83. package/e2e-legacy/home/home-page-without-selected-repository.spec.js +59 -0
  84. package/{integration → e2e-legacy}/home/language-change.spec.js +2 -2
  85. package/e2e-legacy/home/rdf-resource-search.spec.js +160 -0
  86. package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
  87. package/{integration → e2e-legacy}/import/import-server-files.spec.js +5 -3
  88. package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +19 -13
  89. package/{integration → e2e-legacy}/import/import-user-data-text-snippet.spec.js +0 -2
  90. package/{integration → e2e-legacy}/import/import-user-data-url.spec.js +0 -23
  91. package/{integration → e2e-legacy}/import/import-user-data.spec.js +11 -4
  92. package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +51 -0
  93. package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +45 -0
  94. package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +28 -0
  95. package/e2e-legacy/license/license-with-repository.spec.js +113 -0
  96. package/e2e-legacy/license/license-without-repository.spec.js +103 -0
  97. package/{integration → e2e-legacy}/license/license.spec.js +4 -4
  98. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +36 -0
  99. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +25 -0
  100. package/{integration/monitor/monitor.backup-and-restore.spec.js → e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js} +2 -2
  101. package/{integration → e2e-legacy}/monitor/global-operation-statuses-component.spec.js +12 -5
  102. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +39 -0
  103. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +21 -0
  104. package/{integration/monitor → e2e-legacy/monitor/system}/monitor.resources.spec.js +3 -2
  105. package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
  106. package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
  107. package/e2e-legacy/not-found/not-found.spec.js +23 -0
  108. package/{integration → e2e-legacy}/repository/ontop-repository.spec.js +1 -1
  109. package/{integration → e2e-legacy}/repository/repositories.spec.js +37 -45
  110. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +181 -0
  111. package/{integration → e2e-legacy}/resource/resource.spec.js +50 -20
  112. package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +84 -0
  113. package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
  114. package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +4 -0
  115. package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +40 -0
  116. package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +27 -0
  117. package/{integration/setup → e2e-legacy/setup/autocomplete}/autocomplete.spec.js +6 -7
  118. package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +34 -0
  119. package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +25 -0
  120. package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +41 -0
  121. package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +21 -0
  122. package/{integration → e2e-legacy}/setup/connectors-lucene.spec.js +26 -10
  123. package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.spec.js +4 -4
  124. package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +39 -0
  125. package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +27 -0
  126. package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +44 -0
  127. package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +27 -0
  128. package/{integration/setup → e2e-legacy/setup/namespaces}/namespaces.spec.js +6 -5
  129. package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +38 -0
  130. package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +28 -0
  131. package/{integration/setup → e2e-legacy/setup/plugins}/plugins.spec.js +3 -3
  132. package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +40 -0
  133. package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +30 -0
  134. package/{integration/setup → e2e-legacy/setup/rdf-rank}/rdf-rank.spec.js +3 -5
  135. package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
  136. package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
  137. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
  138. package/e2e-legacy/setup/settings/my-settings.spec.js +207 -0
  139. package/{integration/setup/sparql-template-create.js → e2e-legacy/setup/sparql-template/sparql-template-create.spec.js} +16 -8
  140. package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +39 -0
  141. package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +29 -0
  142. package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-templates.spec.js +4 -4
  143. package/{integration/setup → e2e-legacy/setup/users-and-access}/user-and-access.spec.js +184 -87
  144. package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
  145. package/{integration → e2e-legacy}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
  146. package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
  147. package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +10 -8
  148. package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +1 -6
  149. package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.spec.js +1 -1
  150. package/{integration → e2e-legacy}/sparql-editor/saved-query/edit-query.spec.js +3 -3
  151. package/{integration → e2e-legacy}/sparql-editor/saved-query/readonly-query.spec.js +15 -24
  152. package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +32 -1
  153. package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
  154. package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
  155. package/{integration → e2e-legacy}/sparql-editor/yasgui-tabs.spec.js +2 -12
  156. package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +54 -0
  157. package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +5 -18
  158. package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +1 -6
  159. package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +106 -0
  160. package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +80 -0
  161. package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +53 -2
  162. package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +25 -2
  163. package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +3 -14
  164. package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +74 -6
  165. package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +24 -2
  166. package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +37 -66
  167. package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +6 -4
  168. package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +1 -2
  169. package/e2e-legacy/ttyg/edit-agent.spec.js +178 -0
  170. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +46 -0
  171. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +45 -0
  172. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
  173. package/{integration-flaky → e2e-legacy}/ttyg/ttyg-permission.spec.js +23 -17
  174. package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +2 -2
  175. package/e2e-security/repository/url-with-repository-id-parameter.spec.js +57 -0
  176. package/e2e-security/setup/home/cookie-policy.spec.js +290 -0
  177. package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +193 -0
  178. package/e2e-security/setup/users-and-access/graphql-user.spec.js +126 -0
  179. package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +70 -0
  180. package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +99 -0
  181. package/e2e-security/setup/users-and-access/user-and-access.spec.js +87 -0
  182. package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +38 -0
  183. package/eslint.config.js +39 -0
  184. package/fixtures/graph/graph-configurations.json +59 -0
  185. package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +12 -0
  186. package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +35 -0
  187. package/fixtures/guides/class-relations/class-relations-guide.json +33 -0
  188. package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +15 -0
  189. package/fixtures/guides/connectors/connectors-guide.json +66 -0
  190. package/fixtures/guides/connectors/lucene-connector-guide.json +120 -0
  191. package/fixtures/guides/create-repository/create-repository-guide.json +25 -0
  192. package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +36 -0
  193. package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +25 -0
  194. package/fixtures/guides/download-resource.ttl +629 -0
  195. package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +54 -0
  196. package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +30 -0
  197. package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +21 -0
  198. package/fixtures/guides/main-menu/main-menu-guide.json +98 -0
  199. package/fixtures/guides/navigation/navigation-guide.json +60 -0
  200. package/fixtures/guides/rdf-rank/rdf-rank-guide.json +18 -0
  201. package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +51 -0
  202. package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +25 -0
  203. package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +74 -0
  204. package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +26 -0
  205. package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +22 -0
  206. package/fixtures/guides/visual-graph/visual-graph-config-guide.json +39 -0
  207. package/fixtures/guides/visual-graph/visual-graph-guide.json +85 -0
  208. package/fixtures/guides/welcome/welcome-guide.json +18 -0
  209. package/fixtures/repositories/free-access.json +13 -0
  210. package/fixtures/similarity/get-ttyg-similarity-instances.json +10 -0
  211. package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +44 -0
  212. package/fixtures/ttyg/agent/get-agent-defaults.json +9 -2
  213. package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
  214. package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +8 -0
  215. package/fixtures/ttyg/agent/get-similarity-indexes.json +22 -0
  216. package/fixtures/ttyg/chats/ask-question-cancel.json +12 -0
  217. package/fixtures/ttyg/chats/ask-question.json +12 -2
  218. package/fixtures/ttyg/chats/cancel-question-response.json +1 -0
  219. package/fixtures/ttyg/chats/create/create-chat-response.json +10 -14
  220. package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +29 -0
  221. package/fixtures/ttyg/chats/explain-response-1.json +2 -48
  222. package/fixtures/ttyg/chats/explain-response-3.json +12 -0
  223. package/fixtures/ttyg/chats/get-chat.json +6 -1
  224. package/npm-shrinkwrap.json +11004 -3815
  225. package/package.json +58 -42
  226. package/plugins/index.js +10 -5
  227. package/steps/application-steps.js +8 -6
  228. package/steps/base-steps.js +29 -0
  229. package/steps/class-views-steps.js +35 -7
  230. package/steps/cluster/cluster-page-steps.js +12 -2
  231. package/steps/cookie-policy/cookie-consent-banner-steps.js +21 -0
  232. package/steps/cookie-policy/cookie-policy-modal.steps.js +56 -0
  233. package/steps/error-page-steps.js +9 -0
  234. package/steps/error-steps.js +15 -3
  235. package/steps/explore/class-relationships-steps.js +64 -0
  236. package/steps/explore/graphs-overview-steps.js +21 -1
  237. package/steps/explore/similarity-index-create-steps.js +5 -3
  238. package/steps/explore/similarity-indexes-steps.js +16 -2
  239. package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
  240. package/steps/graphql/playground-editor-steps.js +46 -0
  241. package/steps/guides/guide-dialog-steps.js +81 -2
  242. package/steps/guides/guide-steps.js +54 -2
  243. package/steps/guides/movies-guide-steps.js +2 -1
  244. package/steps/header-steps.js +22 -0
  245. package/steps/home-steps.js +184 -77
  246. package/steps/import/import-resource-message-dialog.js +1 -1
  247. package/steps/import/import-steps.js +12 -16
  248. package/steps/import/import-user-data-steps.js +5 -1
  249. package/steps/language-selector-steps.js +2 -2
  250. package/steps/license-steps.js +91 -9
  251. package/steps/login-steps.js +31 -6
  252. package/steps/main-menu-steps.js +244 -19
  253. package/steps/modal-dialog-steps.js +32 -1
  254. package/steps/monitoring/backup-and-restore-steps.js +9 -3
  255. package/steps/monitoring/queries-and-updates-steps.js +20 -0
  256. package/steps/monitoring/system-monitoring-steps.js +40 -0
  257. package/steps/not-found/not-found-steps.js +23 -0
  258. package/steps/operations-statuses-component-steps.js +5 -10
  259. package/steps/rdf-resource-search-steps.js +55 -0
  260. package/steps/repository-selector-steps.js +3 -3
  261. package/steps/repository-steps.js +88 -18
  262. package/steps/resource/resource-steps.js +6 -10
  263. package/steps/rest-api-documentation-steps.js +15 -0
  264. package/steps/setup/acl-management-steps.js +18 -2
  265. package/steps/setup/autocomplete-steps.js +23 -8
  266. package/steps/setup/connectors-steps.js +32 -0
  267. package/steps/setup/jdbc-steps.js +18 -4
  268. package/steps/setup/namespace-steps.js +10 -7
  269. package/steps/setup/plugins-steps.js +12 -5
  270. package/steps/setup/rdf-rank-steps.js +23 -9
  271. package/steps/setup/settings-steps.js +101 -2
  272. package/steps/setup/sparql-templates-steps.js +19 -1
  273. package/steps/setup/user-and-access-steps.js +50 -16
  274. package/steps/shared-modal-dialog-steps.js +45 -0
  275. package/steps/sparql-editor-steps.js +21 -2
  276. package/steps/sparql-steps.js +13 -1
  277. package/steps/system-information-steps.js +70 -0
  278. package/steps/toaster-steps.js +18 -6
  279. package/steps/ttyg/chat-panel-steps.js +40 -2
  280. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +136 -31
  281. package/steps/ttyg/ttyg-view-steps.js +80 -10
  282. package/steps/visual-graph-split-button-steps.js +45 -0
  283. package/steps/visual-graph-steps.js +106 -10
  284. package/steps/widgets/active-repository-widget-steps.js +29 -0
  285. package/steps/widgets/license-widget-steps.js +9 -0
  286. package/steps/widgets/repository-errors-widget-steps.js +21 -0
  287. package/steps/widgets/saved-sparql-queries-widget-steps.js +9 -0
  288. package/steps/yasgui/yasgui-loader.js +3 -3
  289. package/steps/yasgui/yasgui-steps.js +1 -1
  290. package/steps/yasgui/yasqe-steps.js +35 -4
  291. package/steps/yasgui/yasr-steps.js +35 -5
  292. package/stubs/autocomplete/autocomplete-stubs.js +7 -0
  293. package/stubs/browser-stubs.js +21 -0
  294. package/stubs/environment-stubs.js +9 -1
  295. package/stubs/graph-config-stubs.js +17 -0
  296. package/stubs/guides/guides-stubs.js +103 -0
  297. package/stubs/license-stubs.js +51 -0
  298. package/stubs/repositories/repositories-stubs.js +180 -75
  299. package/stubs/saved-queries-stubs.js +5 -0
  300. package/stubs/security-stubs.js +12 -0
  301. package/stubs/similarity-index-stubs.js +4 -0
  302. package/stubs/sparql-stubs.js +10 -0
  303. package/stubs/ttyg/ttyg-stubs.js +64 -15
  304. package/stubs/yasgui/query-stubs.js +5 -1
  305. package/support/commands.js +22 -1
  306. package/support/connector-commands.js +13 -0
  307. package/support/e2e-security.js +9 -0
  308. package/support/{index.js → e2e.js} +9 -3
  309. package/support/repository-commands.js +29 -4
  310. package/support/settings-commands.js +33 -1
  311. package/support/url-commands.js +13 -0
  312. package/support/user-commands.js +9 -4
  313. package/utils/html-util.js +24 -4
  314. package/Dockerfile +0 -11
  315. package/fixtures/locale-en.json +0 -3342
  316. package/integration/explore/similarity-index/similarity-index-create.spec.js +0 -333
  317. package/integration/explore/similarity-index/similarity-index.spec.js +0 -88
  318. package/integration/explore/similarity-index/similarity.spec.js +0 -628
  319. package/integration/guides/movies-interactive-guide.spec.js +0 -73
  320. package/integration/home/cookie-policy.spec.js +0 -90
  321. package/integration/home/documentation-link.spec.js +0 -60
  322. package/integration/home/language-selector.spec.js +0 -19
  323. package/integration/home/rdf-resource-search.spec.js +0 -177
  324. package/integration/home/view-resource-autocomplete.spec.js +0 -52
  325. package/integration/home/workbench.home.spec.js +0 -30
  326. package/integration/monitor/monitor.queries.spec.js +0 -31
  327. package/integration/setup/my-settings.spec.js +0 -289
  328. package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -57
  329. package/integration/ttyg/edit-agent.spec.js +0 -99
  330. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
  331. package/stubs/repositories-stub.js +0 -73
  332. package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
  333. package/{integration-flaky → e2e-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
  334. package/{integration-flaky → e2e-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
  335. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
  336. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
  337. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
  338. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
  339. package/{integration → e2e-legacy}/cluster/cluster-legend.spec.js +0 -0
  340. package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
  341. package/{integration → e2e-legacy}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
  342. package/{integration → e2e-legacy}/graphql/delete-graphql-endpoint.spec.js +0 -0
  343. package/{integration → e2e-legacy}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
  344. package/{integration → e2e-legacy}/graphql/set-default-graphql-endpoint.spec.js +0 -0
  345. package/{integration/help → e2e-legacy/help/system-information}/system-information.spec.js +0 -0
  346. package/{integration → e2e-legacy}/home/create-repository.spec.js +0 -0
  347. package/{integration → e2e-legacy}/import/import-server-files-batch-operations.spec.js +0 -0
  348. package/{integration → e2e-legacy}/import/import-user-data-settings-dialog.spec.js +0 -0
  349. package/{integration → e2e-legacy}/import/import-view.spec.js +0 -0
  350. package/{integration → e2e-legacy}/repository/attach-remote-location.spec.js +1 -1
  351. /package/{integration → e2e-legacy}/repository/repository-commands.spec.js +0 -0
  352. /package/{integration → e2e-legacy}/setup/aclmanagement/delete-rule.spec.js +0 -0
  353. /package/{integration → e2e-legacy}/setup/aclmanagement/edit-rule.spec.js +0 -0
  354. /package/{integration → e2e-legacy}/setup/aclmanagement/render-rules.spec.js +0 -0
  355. /package/{integration → e2e-legacy}/setup/aclmanagement/reorder-rules.spec.js +0 -0
  356. /package/{integration → e2e-legacy}/setup/aclmanagement/revert-rules.spec.js +0 -0
  357. /package/{integration → e2e-legacy}/setup/aclmanagement/scopes.spec.js +0 -0
  358. /package/{integration → e2e-legacy}/setup/aclmanagement/update-rules.spec.js +0 -0
  359. /package/{integration → e2e-legacy}/setup/jdbc/jdbc.spec.js +0 -0
  360. /package/{integration → e2e-legacy}/sparql-editor/actions/execute-query.spec.js +0 -0
  361. /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
  362. /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
  363. /package/{integration → e2e-legacy}/sparql-editor/saved-query/delete-query.spec.js +0 -0
  364. /package/{integration → e2e-legacy}/sparql-editor/sparql-editor.spec.js +0 -0
  365. /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
@@ -1,628 +0,0 @@
1
- import {SparqlEditorSteps} from "../../../steps/sparql-editor-steps";
2
- import {YasqeSteps} from "../../../steps/yasgui/yasqe-steps";
3
- import {YasrSteps} from "../../../steps/yasgui/yasr-steps";
4
- import {SimilarityIndexCreateSteps} from "../../../steps/explore/similarity-index-create-steps";
5
- import {SimilarityIndexesSteps} from "../../../steps/explore/similarity-indexes-steps";
6
- import {ModalDialogSteps, VerifyConfirmationDialogOptions} from "../../../steps/modal-dialog-steps";
7
- import {ErrorSteps} from "../../../steps/error-steps";
8
-
9
- const INDEX_NAME = 'index-' + Date.now();
10
- const FILE_TO_IMPORT = 'people.zip';
11
- const INDEX_CREATE_URL = '/similarity/index/create';
12
- const BUILD_PARAM = ' -trainingcycles 4';
13
- const STOP_WORD = 'stopword';
14
- const LUCENE_ANALYZER = 'org.apache.lucene.analysis.de.GermanAnalyzer';
15
- const MODIFIED_SEARCH_QUERY = 'PREFIX :<http://www.ontotext.com/graphdb/similarity/> \n' +
16
- 'SELECT ?documentID ?score { \n' +
17
- '?search a ?index ; \n' +
18
- '?searchType ?query; \n' +
19
- ':searchParameters ?parameters; \n' +
20
- '?resultType ?result . \n' +
21
- '?result :value ?documentID ; \n' +
22
- ':score ?score. \n' +
23
- 'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate . }}';
24
- const MODIFIED_ANALOGICAL_QUERY = 'PREFIX :<http://www.ontotext.com/graphdb/similarity/>\n' +
25
- 'PREFIX psi:<http://www.ontotext.com/graphdb/similarity/psi/>\n' +
26
- 'PREFIX inst:<http://www.ontotext.com/graphdb/similarity/instance/>\n' +
27
- '\n' +
28
- 'SELECT ?resultValue ?score {\n' +
29
- ' ?search a ?index ;\n' +
30
- ' psi:givenSubject ?givenSubject;\n' +
31
- ' psi:givenObject ?givenObject;\n' +
32
- ' psi:searchSubject ?searchSubject;\n' +
33
- ' :searchParameters ?parameters;\n' +
34
- ' psi:resultObject ?result .\n' +
35
- ' ?result :value ?resultValue;\n' +
36
- ' :score ?score .\n' +
37
- 'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate . }}';
38
- const MODIFIED_DATA_QUERY = 'SELECT ?documentID ?documentText { \n' +
39
- '?documentID <http://dbpedia.org/ontology/birthDate> ?documentText . \n' +
40
- 'filter(isLiteral(?documentText)) \n' +
41
- '}order by asc(str(?documentID))';
42
-
43
- describe('Similarity screen validation', () => {
44
-
45
- let repositoryId;
46
-
47
- afterEach(() => {
48
- cy.deleteRepository(repositoryId);
49
- });
50
-
51
- it('Test similarity page default state', () => {
52
- initRepositoryAndVisitSimilarityView();
53
- checkSimilarityPageDefaultState();
54
- });
55
-
56
- context('Creating similarity index', () => {
57
- beforeEach(() => {
58
- initRepositoryAndVisitSimilarityView();
59
- });
60
-
61
- it('Create default text similarity index and view SPARQL query', () => {
62
- openCreateNewIndexForm();
63
- setIndexName();
64
- createSimilarityIndex();
65
- viewSPARQLQuery();
66
- deleteSimilarityIndex();
67
- });
68
-
69
- it('Create default predication similarity index', () => {
70
- openCreateNewIndexForm();
71
- switchToPredicationIndex();
72
- setIndexName();
73
- createSimilarityIndex();
74
- });
75
-
76
- it('Create text similarity index with a build parameter, stop word and custom Lucene Analyzer', () => {
77
- openCreateNewIndexForm();
78
- setIndexName();
79
- clickMoreOptionsMenu();
80
- addBuildParam();
81
- addStopWord();
82
- addLuceneAnalyzer();
83
- clickMoreOptionsMenu();
84
- createSimilarityIndex();
85
- });
86
-
87
- it('Create predication similarity index with a build parameter', () => {
88
- openCreateNewIndexForm();
89
- switchToPredicationIndex();
90
- setIndexName();
91
- clickMoreOptionsMenu();
92
- addBuildParam();
93
- clickMoreOptionsMenu();
94
- createSimilarityIndex();
95
- });
96
-
97
- it('Create text similarity - literal index', () => {
98
- openCreateNewIndexForm();
99
- setIndexName();
100
- clickMoreOptionsMenu();
101
- checkLiteralIndex();
102
- createSimilarityIndex();
103
- });
104
-
105
- it('Should not allow create similarity index with name that already exist', () => {
106
- // If we have a similarity index.
107
- openCreateNewIndexForm();
108
- setIndexName();
109
- createSimilarityIndex();
110
-
111
- // When I try to create a similarity index with same name.
112
- openCreateNewIndexForm();
113
- setIndexName();
114
- getCreateIndexButton().click();
115
- // Then I expect an error message to be displayed that describes me, that name is mandatory.
116
- ErrorSteps.verifyError('Index with this name already exists.');
117
- });
118
- });
119
-
120
- context('Index operations', () => {
121
- beforeEach(() => {
122
- initRepositoryAndVisitSimilarityView();
123
- });
124
-
125
- it('Change Data query in Create index', () => {
126
- openCreateNewIndexForm();
127
- setIndexName();
128
- changeDataQuery();
129
- createSimilarityIndex();
130
- });
131
-
132
- it('Change Search query in Create index', () => {
133
- openCreateNewIndexForm();
134
- setIndexName();
135
- changeSearchQuery();
136
- createSimilarityIndex();
137
- });
138
-
139
- it('Change Search query of existing text index', () => {
140
- openCreateNewIndexForm();
141
- setIndexName();
142
- createSimilarityIndex();
143
- openEditQueryView();
144
- changeSearchQuery();
145
- getSaveEditedQueryButton().click();
146
- openEditQueryView();
147
- verifyQueryIsChanged();
148
- });
149
-
150
- it('Change Analogical query of existing predication index', () => {
151
- openCreateNewIndexForm();
152
- switchToPredicationIndex();
153
- setIndexName();
154
- createSimilarityIndex();
155
- openEditQueryView(true);
156
- changeAnalogicalQuery();
157
- getSaveEditedQueryButton().click();
158
- openEditQueryView(true);
159
- getAnalogicalQueryTab()
160
- .scrollIntoView()
161
- .should('be.visible')
162
- .click()
163
- .then(() => {
164
- verifyQueryIsChanged();
165
- });
166
- });
167
-
168
- it('Clone existing similarity index', () => {
169
- openCreateNewIndexForm();
170
- setIndexName();
171
- createSimilarityIndex();
172
- cloneExistingIndex();
173
- });
174
-
175
- it('Rebuild existing similarity index', () => {
176
- openCreateNewIndexForm();
177
- setIndexName();
178
- createSimilarityIndex();
179
- rebuildIndex();
180
- });
181
- });
182
-
183
- context('Searching in index', () => {
184
- beforeEach(() => {
185
- initRepositoryAndVisitSimilarityView();
186
- });
187
-
188
- it('Search for entity in index', () => {
189
- // I have created similarity index
190
- openCreateNewIndexForm();
191
- setIndexName();
192
- createSimilarityIndex();
193
- // wait a bit for the edit icon to ensure index is created
194
- cy.get('.icon-edit').should('be.visible');
195
-
196
- // When I open the index
197
- openIndex(0);
198
-
199
- // Then I expect the indexes table to become hidden
200
- cy.get('#indexes-table table').should('not.be.visible');
201
-
202
- // And index search panel to be opened
203
- cy.get('.index-search-panel').should('be.visible');
204
- cy.get('.selected-index').should('be.visible').and('contain', `Search in ${INDEX_NAME}`);
205
- getSearchIndexInput().should('be.visible');
206
- // The search and result types should both be set to Term
207
- SimilarityIndexesSteps.getSearchTypeButton().should('contain.text', 'Term');
208
- SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Term');
209
-
210
- // When I search for "Neal" in the index
211
- searchIndex('Neal');
212
-
213
- // Then I expect search results to be displayed
214
- // And showing 20 results
215
- YasrSteps.getResults().should('have.length', 20);
216
-
217
- // When I select Document as the search type
218
- SimilarityIndexesSteps.selectSearchTypeOption('Document');
219
-
220
- // The result type should remain Term
221
- SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Term');
222
-
223
- // When I select Document as the result type
224
- SimilarityIndexesSteps.selectResultTypeOption('Document');
225
-
226
- // The search type should remain Document
227
- SimilarityIndexesSteps.getSearchTypeButton().should('contain.text', 'Document');
228
-
229
- // The result type should be Document
230
- SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Document');
231
- });
232
- });
233
-
234
- it('Disable and enable similarity plugin', {
235
- retries: {
236
- openMode: 0,
237
- runMode: 2
238
- }
239
- }, () => {
240
- const disableSimilarityPlugin = 'INSERT DATA { <u:a> <http://www.ontotext.com/owlim/system#stopplugin> \'similarity\' . }';
241
- initRepository();
242
- cy.presetRepository(repositoryId);
243
-
244
- SparqlEditorSteps.visitSparqlEditorPage();
245
-
246
- // When I disable the plugin.
247
- YasqeSteps.pasteQuery(disableSimilarityPlugin);
248
- YasqeSteps.executeQuery();
249
-
250
- // Then I expect a message to be displayed confirming that operation is complete.
251
- YasrSteps.getResponseInfo().should('be.visible').and('contain', 'The number of statements did not change.');
252
-
253
- // When I try to disable it while it's disabled.
254
- YasqeSteps.executeErrorQuery();
255
-
256
- // Then I expect an error message to be displayed informing me that the plugin has been already disabled.
257
- YasrSteps.getErrorBody().should('be.visible').and('contain', 'Plugin similarity has been already disabled');
258
-
259
- // When I visit similarity view while the plugin is disabled.
260
- cy.visit('/similarity');
261
- cy.window();
262
-
263
- // Then I expect a message to be displayed informing me that the plugin is disabled.
264
- cy.get('.plugin-not-active-warning').should('be.visible').and('contain', 'Similarity Plugin is not active for this repository.');
265
- // cy.pause()
266
- // When I enable the plugin
267
- cy.get('.confirm-btn')
268
- .should('be.visible')
269
- .and('contain', 'Activate')
270
- .click().then(() => {
271
- // Should confirm that want to activate plugin
272
- cy.get('.modal-footer > .btn-primary')
273
- .should('be.visible')
274
- .click()
275
- .then(() => {
276
- // Then I expect default similarity view with no indexes available
277
- // cy.pause()
278
- checkSimilarityPageDefaultState();
279
- });
280
- });
281
- });
282
-
283
- context('Confirmations when try to change location', () => {
284
-
285
- beforeEach(() => {
286
- initRepositoryAndVisitSimilarityView();
287
- openCreateNewIndexForm();
288
- });
289
-
290
- it('should not display confirm message when there are not changes', () => {
291
- // Given I opened the create similarity view.
292
- // When I click on cancel button.
293
- SimilarityIndexCreateSteps.cancel();
294
-
295
- // Then I expect to be redirected to similarity indexes view.
296
- SimilarityIndexesSteps.verifyUrl();
297
-
298
- });
299
-
300
- it('should display confirm message if index name is filled', () => {
301
- // Given I opened the create similarity view,
302
- // and similarity index name is filled.
303
- SimilarityIndexCreateSteps.typeSimilarityIndexName('index');
304
-
305
- // When click on cancel button.
306
- // Then I expect to be redirected to similarity indexes view.
307
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
308
- });
309
-
310
- it('should display confirm message if data query is changed', () => {
311
- // Given I opened the create similarity view,
312
- // and data query is changed.
313
- // During the initialization query is changed and this broke the test.
314
- // Most the time the broken flow is:
315
- // 1. cypress start to type 's';
316
- // 2. query is changed
317
- // 3. cypress continuous to type 'ome changes'.
318
- // as result query is 'ome changes<data query>. YasqeSteps.writeInEditor function has check if parameter is filled, in our case 'some changes',
319
- // and this broke the test. Add a little wait time to give chance yasqe query to be filled.
320
- cy.wait(1000);
321
- YasqeSteps.writeInEditor('some changes');
322
-
323
- // When click on cancel button.
324
- // Then I expect to be redirected to similarity indexes view.
325
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
326
- });
327
-
328
- it('should display confirm message if "Semantic Vectors create index parameters" is changed', () => {
329
- // Given I opened the create similarity view,
330
- // and "Semantic Vectors create index parameters" is changed.
331
- SimilarityIndexCreateSteps.showMoreOptions();
332
- SimilarityIndexCreateSteps.getSemanticVectorsInput().type('semantic vector');
333
-
334
- // When click on cancel button.
335
- // Then I expect to be redirected to similarity indexes view.
336
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
337
- });
338
-
339
- it('should display confirm message if "Stop words" is changed', () => {
340
- // Given I opened the create similarity view,
341
- // and "Stop words" is changed.
342
- SimilarityIndexCreateSteps.showMoreOptions();
343
- SimilarityIndexCreateSteps.getStopWordsInput().type('stop words');
344
-
345
- // When click on cancel button.
346
- // Then I expect to be redirected to similarity indexes view.
347
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
348
- });
349
-
350
- it('should display confirm message if "Analyzer Class" is changed', () => {
351
- // Given I opened the create similarity view,
352
- // and "Analyzer Class" is changed.
353
- SimilarityIndexCreateSteps.showMoreOptions();
354
- SimilarityIndexCreateSteps.getAnalyzerClassInput().type('BulgarianAnalyzer');
355
-
356
- // When click on cancel button.
357
- // Then I expect to be redirected to similarity indexes view.
358
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
359
- });
360
-
361
- it('should display confirm message if "Literal index" is changed', () => {
362
- // Given I opened the create similarity view,
363
- // and "Literal index" is changed.
364
- SimilarityIndexCreateSteps.showMoreOptions();
365
- SimilarityIndexCreateSteps.checkLiteralIndex();
366
-
367
- // When click on cancel button.
368
- // Then I expect to be redirected to similarity indexes view.
369
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
370
- });
371
-
372
- it('should display confirm message if "Search query" is changed', () => {
373
- // Given I opened the create similarity view,
374
- // and "Search query" is changed.
375
- SimilarityIndexCreateSteps.switchToSearchQueryTab();
376
- YasqeSteps.writeInEditor('some changes');
377
-
378
- // When click on cancel button.
379
- // Then I expect to be redirected to similarity indexes view.
380
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
381
- });
382
-
383
- it('should display confirm message if "Analogical query" is changed', () => {
384
- // Given I opened the create similarity view,
385
- // and "Analogical query" is changed.
386
- SimilarityIndexCreateSteps.switchToCreatePredictionIndexTab();
387
- SimilarityIndexCreateSteps.switchToAnalogicalQueryTab();
388
- YasqeSteps.writeInEditor('some changes');
389
-
390
- // When click on cancel button.
391
- // Then I expect to be redirected to similarity indexes view.
392
- ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
393
- });
394
- });
395
-
396
- function initRepository() {
397
- repositoryId = 'similarity-repo-' + Date.now();
398
- cy.createRepository({id: repositoryId});
399
- cy.importServerFile(repositoryId, FILE_TO_IMPORT);
400
- }
401
-
402
- function initRepositoryAndVisitSimilarityView() {
403
- initRepository();
404
- cy.visit('/similarity', {
405
- onBeforeLoad: (win) => {
406
- win.localStorage.setItem('ls.repository-id', repositoryId);
407
- }
408
- });
409
- cy.window()
410
- .then(() => getExistingIndexesPanel());
411
- }
412
-
413
- function openIndex(index) {
414
- getIndexLinks().eq(index).click();
415
- }
416
-
417
- function getSearchIndexInput() {
418
- // There are 6 such fields and it's not obvious what selectors they should have.
419
- // So we select it by placeholders.
420
- return cy.get('input[placeholder="Search RDF resources for RDF entity"]');
421
- }
422
-
423
- function searchIndex(entity) {
424
- getSearchIndexInput().type(entity);
425
- // there are two buttons so we search in the context
426
- getSearchIndexInput().closest('.input-group').find('.autocomplete-visual-btn').click();
427
- }
428
-
429
- function checkSimilarityPageDefaultState() {
430
- //TODO: Should change the 'contain' method to 'eq' once GDB-3699 is fixed.
431
- cy.url().should('contain', Cypress.config('baseUrl') + '/similarity');
432
- getExistingIndexesPanel()
433
- .find('.no-indexes')
434
- .should('be.visible')
435
- .and('contain', 'No Indexes');
436
- }
437
-
438
- function openCreateNewIndexForm() {
439
- cy.get('.create-similarity-index').click();
440
- cy.url().should('contain', `${Cypress.config('baseUrl')}/similarity/index/create`);
441
- // Wait for query editor to become ready because consecutive command for index creation might
442
- // fail because the query may not be submitted with the request.
443
- YasqeSteps.waitUntilQueryIsVisible();
444
- }
445
-
446
- function setIndexName() {
447
- cy.url().should('eq', Cypress.config('baseUrl') + INDEX_CREATE_URL);
448
- getSimilarity().invoke('val', INDEX_NAME).trigger('change')
449
- .then(() => getSimilarity().should('have.value', INDEX_NAME));
450
- }
451
-
452
- function clickMoreOptionsMenu() {
453
- cy.get('.more-options-btn').click();
454
- }
455
-
456
- function addBuildParam() {
457
- cy.get('#indexParameters').type(BUILD_PARAM);
458
- }
459
-
460
- function addStopWord() {
461
- cy.get('.stop-words').type(STOP_WORD);
462
- }
463
-
464
- function addLuceneAnalyzer() {
465
- cy.get('.analyzer-class').type(Cypress.env('modifierKey') + 'a{backspace}', {force: true})
466
- .invoke('val', LUCENE_ANALYZER).trigger('change', {force: true});
467
- }
468
-
469
- function checkLiteralIndex() {
470
- cy.get('.literal-index').click();
471
- }
472
-
473
- function createSimilarityIndex() {
474
- getCreateIndexButton().click()
475
- .then(() => {
476
- cy.url().should('eq', `${Cypress.config('baseUrl')}/similarity`);
477
- getExistingIndexesPanel();
478
- cy.get('#indexes-table table').should('be.visible')
479
- .find('.index-row').should('have.length', 1);
480
- // Just wait for the row in the table to appear and the cell with the index name to be
481
- // visible. Waiting for the loading indicator to disappear is just too brittle.
482
- // Also trying to check for the index name in the cell with `.and('contain', INDEX_NAME);`
483
- // fails often because during completing the index name on a previous step the WB seems to
484
- // cut off part of the name on the leading side.
485
- getIndexLinks().should('be.visible');
486
- cy.waitUntil(() =>
487
- cy.get('.edit-query-btn')
488
- .then((editBtn) => editBtn));
489
- });
490
- }
491
-
492
- function deleteSimilarityIndex() {
493
- waitForIndexBuildingIndicatorToHide();
494
- getDeleteIndexButton().should('be.visible');
495
- getDeleteIndexButton().click();
496
- cy.get('.modal-footer .confirm-btn').click();
497
- cy.get('.no-indexes').should('be.visible').and('contain', 'No Indexes');
498
- }
499
-
500
- function switchToPredicationIndex() {
501
- cy.get('#create-predication-index').click();
502
- // Wait for query editor to become ready because consecutive command for index creation might
503
- // fail because the query may not be submitted with the request.
504
- YasqeSteps.waitUntilQueryIsVisible();
505
- }
506
-
507
- function cloneExistingIndex() {
508
- cy.url().should('eq', Cypress.config('baseUrl') + '/similarity');
509
- cy.get('.clone-index-btn').click()
510
- .then(() => cy.url().should('contain', `${Cypress.config('baseUrl')}/similarity/index/create`));
511
-
512
- // Makes sure YASQE has loaded before we click the Create button
513
- YasqeSteps.waitUntilQueryIsVisible();
514
- getCreateIndexButton().should('be.visible').click();
515
-
516
- getExistingIndexesPanel();
517
- waitForIndexBuildingIndicatorToHide();
518
- cy.waitUntil(() =>
519
- cy.get('#indexes-table')
520
- .find('.index-row')
521
- .then((indexes) => indexes.length === 2));
522
-
523
- cy.url().should('contain', Cypress.config('baseUrl') + '/similarity'); //Should change the 'contain' method to 'eq' once GDB-3699 is resolved
524
- }
525
-
526
- function getIndexLinks() {
527
- return cy.get('#indexes-table .index-name');
528
- }
529
-
530
- function rebuildIndex() {
531
- cy.get('.similarity-index-icon-reload').should('be.visible').click();
532
- cy.get('.modal-footer .btn-primary').click();
533
- cy.get('.similarity-index-building-loader').should('be.visible');
534
- getDeleteIndexButton().should('be.visible');
535
- waitForIndexBuildingIndicatorToHide();
536
- }
537
-
538
- function viewSPARQLQuery() {
539
- cy.get('.view-sparql-query-btn').click();
540
- cy.get('.modal-title').should('be.visible').and('contain', 'View SPARQL Query');
541
- cy.get('.btn-primary').should('be.visible').and('contain', 'Copy to clipboard');
542
- cy.get('.close').click();
543
- cy.get('.modal').should('not.exist');
544
- cy.get('.modal-backdrop').should('not.exist');
545
- }
546
-
547
- function openEditQueryView(isPredication) {
548
- cy.url().should('contain', Cypress.config('baseUrl') + '/similarity');
549
- // Open "Edit search query" view
550
- cy.get('.edit-query-btn').should('be.visible').click();
551
- // Verify that 'similarity-index-name' input field is disabled
552
- getSimilarity().should('be.disabled');
553
- getSearchQueryTab().should('be.visible');
554
- YasqeSteps.waitUntilQueryIsVisible();
555
- const shouldAnalogicalTabBeVisible = (isPredication ? '' : 'not.') + 'exist';
556
- getAnalogicalQueryTab().should(shouldAnalogicalTabBeVisible);
557
- if (isPredication) {
558
- YasqeSteps.verifyQueryContains('SELECT ?entity ?score {');
559
- }
560
- }
561
-
562
- function changeDataQuery() {
563
- YasqeSteps.pasteQuery(MODIFIED_DATA_QUERY);
564
- cy.get('.test-query-btn', {force: true}).click();
565
- cy.get('.sparql-loader').should('not.exist');
566
- YasrSteps.getResults().its('length').should('be.gt', 1);
567
- YasrSteps.getResults().contains('http://dbpedia.org/resource/Aaron_Jay_Kernis');
568
- }
569
-
570
- function changeSearchQuery() {
571
- SimilarityIndexCreateSteps.switchToSearchQueryTab();
572
- YasqeSteps.pasteQuery(MODIFIED_SEARCH_QUERY);
573
- }
574
-
575
- function changeAnalogicalQuery() {
576
- getAnalogicalQueryTab()
577
- .scrollIntoView()
578
- .should('be.visible').click()
579
- .then(() => {
580
- YasqeSteps.pasteQuery(MODIFIED_ANALOGICAL_QUERY);
581
- });
582
- }
583
-
584
- function getDeleteIndexButton() {
585
- return cy.get('.delete-index-btn');
586
- }
587
-
588
- function getCreateIndexButton() {
589
- return cy.get('.create-similarity-index-btn');
590
- }
591
-
592
- function getSearchQueryTab() {
593
- return cy.get('.search-query-tab');
594
- }
595
-
596
- function getAnalogicalQueryTab() {
597
- return cy.get('.analogical-query-tab');
598
- }
599
-
600
- function getSaveEditedQueryButton() {
601
- return cy.get('.save-query-btn').scrollIntoView().should('be.visible');
602
- }
603
-
604
- function getSimilarity() {
605
- return cy.get('.similarity-index-name');
606
- }
607
-
608
- function getExistingIndexesPanel() {
609
- return cy.get('.existing-indexes').should('be.visible');
610
- }
611
-
612
- function waitForIndexBuildingIndicatorToHide() {
613
- cy.get('.similarity-index-building-loader').should('not.exist');
614
- }
615
-
616
- function verifyQueryIsChanged() {
617
- const query = 'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate .';
618
- YasqeSteps.verifyQueryContains(query);
619
- }
620
-
621
- function createVerifyConfirmationDialogOptions() {
622
- return new VerifyConfirmationDialogOptions()
623
- .setChangePageFunction(() => SimilarityIndexCreateSteps.getCancelButton().click())
624
- .setConfirmationMessage('You have unsaved changes. Are you sure that you want to exit?')
625
- .setVerifyCurrentUrl(() => cy.url().should('include', `${Cypress.config('baseUrl')}/similarity/index/create`))
626
- .setVerifyRedirectedUrl(() => cy.url().should('eq', `${Cypress.config('baseUrl')}/similarity`));
627
- }
628
- });