graphdb-workbench-tests 3.4.0-TR4 → 3.4.0-TR6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/.editorconfig +17 -0
  2. package/.nycrc +10 -0
  3. package/cypress-flaky.config.js +20 -6
  4. package/cypress-legacy.config.js +47 -0
  5. package/cypress-security.config.js +36 -0
  6. package/cypress.config.js +45 -6
  7. package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
  8. package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +2 -2
  9. package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
  10. package/e2e-flaky/import/import-user-data-url.spec.js +63 -0
  11. package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +10 -18
  12. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +2 -12
  13. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.spec.js +1 -7
  14. package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +3 -7
  15. package/{integration → e2e-legacy}/cluster/cluster-states.spec.js +3 -3
  16. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +42 -0
  17. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +43 -0
  18. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +30 -0
  19. package/{integration/explore → e2e-legacy/explore/class-hierarchy}/class.hierarchy.spec.js +1 -1
  20. package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +42 -0
  21. package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +39 -0
  22. package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +21 -0
  23. package/{integration/explore/class.relationships.spec.js → e2e-legacy/explore/class-relationships/class-relationships.spec.js} +20 -50
  24. package/{integration/explore → e2e-legacy/explore/graphs-overview}/graphs.overview.spec.js +4 -4
  25. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +44 -0
  26. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +32 -0
  27. package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +38 -0
  28. package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +21 -0
  29. package/{integration → e2e-legacy}/explore/visual-graph/graphs-config.spec.js +5 -10
  30. package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +58 -0
  31. package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +142 -0
  32. package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.spec.js +14 -2
  33. package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +38 -0
  34. package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +21 -0
  35. package/{integration → e2e-legacy}/explore/visual-graph/visual.graph.spec.js +75 -96
  36. package/{integration → e2e-legacy}/graphql/create-graphql-endpoint.spec.js +0 -2
  37. package/{integration → e2e-legacy}/graphql/edit-graphql-enpoint.spec.js +1 -1
  38. package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
  39. package/{integration → e2e-legacy}/graphql/graphql-endpoint-management-view.spec.js +4 -4
  40. package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +43 -0
  41. package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +39 -0
  42. package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +21 -0
  43. package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +40 -0
  44. package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +38 -0
  45. package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +22 -0
  46. package/{integration → e2e-legacy}/graphql/graphql-playground.spec.js +1 -1
  47. package/e2e-legacy/graphql/graphql-theme.spec.js +73 -0
  48. package/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +0 -6
  49. package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +49 -0
  50. package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +89 -0
  51. package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +76 -0
  52. package/e2e-legacy/guides/connectors/connectors-guide.spec.js +163 -0
  53. package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +74 -0
  54. package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +55 -0
  55. package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +92 -0
  56. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +63 -0
  57. package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +105 -0
  58. package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +302 -0
  59. package/e2e-legacy/guides/navigation/navigation-guide.spec.js +64 -0
  60. package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +42 -0
  61. package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +69 -0
  62. package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +168 -0
  63. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +158 -0
  64. package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +92 -0
  65. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +88 -0
  66. package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +372 -0
  67. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +36 -0
  68. package/e2e-legacy/help/guides/guides-autostart.spec.js +126 -0
  69. package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +83 -0
  70. package/e2e-legacy/help/guides/guides-with-repository.spec.js +32 -0
  71. package/e2e-legacy/help/guides/guides-without-repository.spec.js +20 -0
  72. package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +71 -0
  73. package/{integration/guides/star-wars-interactive-guide.js → e2e-legacy/help/guides/star-wars-interactive-guide.spec.js} +3 -2
  74. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +32 -0
  75. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +20 -0
  76. package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +32 -0
  77. package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +20 -0
  78. package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +182 -0
  79. package/e2e-legacy/home/documentation-link.spec.js +41 -0
  80. package/{integration → e2e-legacy}/home/google-analytics.spec.js +4 -6
  81. package/e2e-legacy/home/home-page-with-selected-repository.spec.js +69 -0
  82. package/e2e-legacy/home/home-page-without-repositories.spec.js +87 -0
  83. package/e2e-legacy/home/home-page-without-selected-repository.spec.js +59 -0
  84. package/{integration → e2e-legacy}/home/language-change.spec.js +2 -2
  85. package/e2e-legacy/home/rdf-resource-search.spec.js +160 -0
  86. package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
  87. package/{integration → e2e-legacy}/import/import-server-files.spec.js +5 -3
  88. package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +19 -13
  89. package/{integration → e2e-legacy}/import/import-user-data-text-snippet.spec.js +0 -2
  90. package/{integration → e2e-legacy}/import/import-user-data-url.spec.js +0 -23
  91. package/{integration → e2e-legacy}/import/import-user-data.spec.js +11 -4
  92. package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +51 -0
  93. package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +45 -0
  94. package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +28 -0
  95. package/e2e-legacy/license/license-with-repository.spec.js +113 -0
  96. package/e2e-legacy/license/license-without-repository.spec.js +103 -0
  97. package/{integration → e2e-legacy}/license/license.spec.js +4 -4
  98. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +36 -0
  99. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +25 -0
  100. package/{integration/monitor/monitor.backup-and-restore.spec.js → e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js} +2 -2
  101. package/{integration → e2e-legacy}/monitor/global-operation-statuses-component.spec.js +12 -5
  102. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +39 -0
  103. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +21 -0
  104. package/{integration/monitor → e2e-legacy/monitor/system}/monitor.resources.spec.js +3 -2
  105. package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
  106. package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
  107. package/e2e-legacy/not-found/not-found.spec.js +23 -0
  108. package/{integration → e2e-legacy}/repository/ontop-repository.spec.js +1 -1
  109. package/{integration → e2e-legacy}/repository/repositories.spec.js +37 -45
  110. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +181 -0
  111. package/{integration → e2e-legacy}/resource/resource.spec.js +50 -20
  112. package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +84 -0
  113. package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
  114. package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +4 -0
  115. package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +40 -0
  116. package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +27 -0
  117. package/{integration/setup → e2e-legacy/setup/autocomplete}/autocomplete.spec.js +6 -7
  118. package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +34 -0
  119. package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +25 -0
  120. package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +41 -0
  121. package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +21 -0
  122. package/{integration → e2e-legacy}/setup/connectors-lucene.spec.js +26 -10
  123. package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.spec.js +4 -4
  124. package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +39 -0
  125. package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +27 -0
  126. package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +44 -0
  127. package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +27 -0
  128. package/{integration/setup → e2e-legacy/setup/namespaces}/namespaces.spec.js +6 -5
  129. package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +38 -0
  130. package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +28 -0
  131. package/{integration/setup → e2e-legacy/setup/plugins}/plugins.spec.js +3 -3
  132. package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +40 -0
  133. package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +30 -0
  134. package/{integration/setup → e2e-legacy/setup/rdf-rank}/rdf-rank.spec.js +3 -5
  135. package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
  136. package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
  137. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
  138. package/e2e-legacy/setup/settings/my-settings.spec.js +207 -0
  139. package/{integration/setup/sparql-template-create.js → e2e-legacy/setup/sparql-template/sparql-template-create.spec.js} +16 -8
  140. package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +39 -0
  141. package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +29 -0
  142. package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-templates.spec.js +4 -4
  143. package/{integration/setup → e2e-legacy/setup/users-and-access}/user-and-access.spec.js +184 -87
  144. package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
  145. package/{integration → e2e-legacy}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
  146. package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
  147. package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +10 -8
  148. package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +1 -6
  149. package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.spec.js +1 -1
  150. package/{integration → e2e-legacy}/sparql-editor/saved-query/edit-query.spec.js +3 -3
  151. package/{integration → e2e-legacy}/sparql-editor/saved-query/readonly-query.spec.js +15 -24
  152. package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +32 -1
  153. package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
  154. package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
  155. package/{integration → e2e-legacy}/sparql-editor/yasgui-tabs.spec.js +2 -12
  156. package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +54 -0
  157. package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +5 -18
  158. package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +1 -6
  159. package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +106 -0
  160. package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +80 -0
  161. package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +53 -2
  162. package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +25 -2
  163. package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +3 -14
  164. package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +74 -6
  165. package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +24 -2
  166. package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +37 -66
  167. package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +6 -4
  168. package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +1 -2
  169. package/e2e-legacy/ttyg/edit-agent.spec.js +178 -0
  170. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +46 -0
  171. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +45 -0
  172. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
  173. package/{integration-flaky → e2e-legacy}/ttyg/ttyg-permission.spec.js +23 -17
  174. package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +2 -2
  175. package/e2e-security/repository/url-with-repository-id-parameter.spec.js +57 -0
  176. package/e2e-security/setup/home/cookie-policy.spec.js +290 -0
  177. package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +193 -0
  178. package/e2e-security/setup/users-and-access/graphql-user.spec.js +126 -0
  179. package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +70 -0
  180. package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +99 -0
  181. package/e2e-security/setup/users-and-access/user-and-access.spec.js +87 -0
  182. package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +38 -0
  183. package/eslint.config.js +39 -0
  184. package/fixtures/graph/graph-configurations.json +59 -0
  185. package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +12 -0
  186. package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +35 -0
  187. package/fixtures/guides/class-relations/class-relations-guide.json +33 -0
  188. package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +15 -0
  189. package/fixtures/guides/connectors/connectors-guide.json +66 -0
  190. package/fixtures/guides/connectors/lucene-connector-guide.json +120 -0
  191. package/fixtures/guides/create-repository/create-repository-guide.json +25 -0
  192. package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +36 -0
  193. package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +25 -0
  194. package/fixtures/guides/download-resource.ttl +629 -0
  195. package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +54 -0
  196. package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +30 -0
  197. package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +21 -0
  198. package/fixtures/guides/main-menu/main-menu-guide.json +98 -0
  199. package/fixtures/guides/navigation/navigation-guide.json +60 -0
  200. package/fixtures/guides/rdf-rank/rdf-rank-guide.json +18 -0
  201. package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +51 -0
  202. package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +25 -0
  203. package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +74 -0
  204. package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +26 -0
  205. package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +22 -0
  206. package/fixtures/guides/visual-graph/visual-graph-config-guide.json +39 -0
  207. package/fixtures/guides/visual-graph/visual-graph-guide.json +85 -0
  208. package/fixtures/guides/welcome/welcome-guide.json +18 -0
  209. package/fixtures/repositories/free-access.json +13 -0
  210. package/fixtures/similarity/get-ttyg-similarity-instances.json +10 -0
  211. package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +44 -0
  212. package/fixtures/ttyg/agent/get-agent-defaults.json +9 -2
  213. package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
  214. package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +8 -0
  215. package/fixtures/ttyg/agent/get-similarity-indexes.json +22 -0
  216. package/fixtures/ttyg/chats/ask-question-cancel.json +12 -0
  217. package/fixtures/ttyg/chats/ask-question.json +12 -2
  218. package/fixtures/ttyg/chats/cancel-question-response.json +1 -0
  219. package/fixtures/ttyg/chats/create/create-chat-response.json +10 -14
  220. package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +29 -0
  221. package/fixtures/ttyg/chats/explain-response-1.json +2 -48
  222. package/fixtures/ttyg/chats/explain-response-3.json +12 -0
  223. package/fixtures/ttyg/chats/get-chat.json +6 -1
  224. package/npm-shrinkwrap.json +11004 -3815
  225. package/package.json +58 -42
  226. package/plugins/index.js +10 -5
  227. package/steps/application-steps.js +8 -6
  228. package/steps/base-steps.js +29 -0
  229. package/steps/class-views-steps.js +35 -7
  230. package/steps/cluster/cluster-page-steps.js +12 -2
  231. package/steps/cookie-policy/cookie-consent-banner-steps.js +21 -0
  232. package/steps/cookie-policy/cookie-policy-modal.steps.js +56 -0
  233. package/steps/error-page-steps.js +9 -0
  234. package/steps/error-steps.js +15 -3
  235. package/steps/explore/class-relationships-steps.js +64 -0
  236. package/steps/explore/graphs-overview-steps.js +21 -1
  237. package/steps/explore/similarity-index-create-steps.js +5 -3
  238. package/steps/explore/similarity-indexes-steps.js +16 -2
  239. package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
  240. package/steps/graphql/playground-editor-steps.js +46 -0
  241. package/steps/guides/guide-dialog-steps.js +81 -2
  242. package/steps/guides/guide-steps.js +54 -2
  243. package/steps/guides/movies-guide-steps.js +2 -1
  244. package/steps/header-steps.js +22 -0
  245. package/steps/home-steps.js +184 -77
  246. package/steps/import/import-resource-message-dialog.js +1 -1
  247. package/steps/import/import-steps.js +12 -16
  248. package/steps/import/import-user-data-steps.js +5 -1
  249. package/steps/language-selector-steps.js +2 -2
  250. package/steps/license-steps.js +91 -9
  251. package/steps/login-steps.js +31 -6
  252. package/steps/main-menu-steps.js +244 -19
  253. package/steps/modal-dialog-steps.js +32 -1
  254. package/steps/monitoring/backup-and-restore-steps.js +9 -3
  255. package/steps/monitoring/queries-and-updates-steps.js +20 -0
  256. package/steps/monitoring/system-monitoring-steps.js +40 -0
  257. package/steps/not-found/not-found-steps.js +23 -0
  258. package/steps/operations-statuses-component-steps.js +5 -10
  259. package/steps/rdf-resource-search-steps.js +55 -0
  260. package/steps/repository-selector-steps.js +3 -3
  261. package/steps/repository-steps.js +88 -18
  262. package/steps/resource/resource-steps.js +6 -10
  263. package/steps/rest-api-documentation-steps.js +15 -0
  264. package/steps/setup/acl-management-steps.js +18 -2
  265. package/steps/setup/autocomplete-steps.js +23 -8
  266. package/steps/setup/connectors-steps.js +32 -0
  267. package/steps/setup/jdbc-steps.js +18 -4
  268. package/steps/setup/namespace-steps.js +10 -7
  269. package/steps/setup/plugins-steps.js +12 -5
  270. package/steps/setup/rdf-rank-steps.js +23 -9
  271. package/steps/setup/settings-steps.js +101 -2
  272. package/steps/setup/sparql-templates-steps.js +19 -1
  273. package/steps/setup/user-and-access-steps.js +50 -16
  274. package/steps/shared-modal-dialog-steps.js +45 -0
  275. package/steps/sparql-editor-steps.js +21 -2
  276. package/steps/sparql-steps.js +13 -1
  277. package/steps/system-information-steps.js +70 -0
  278. package/steps/toaster-steps.js +18 -6
  279. package/steps/ttyg/chat-panel-steps.js +40 -2
  280. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +136 -31
  281. package/steps/ttyg/ttyg-view-steps.js +80 -10
  282. package/steps/visual-graph-split-button-steps.js +45 -0
  283. package/steps/visual-graph-steps.js +106 -10
  284. package/steps/widgets/active-repository-widget-steps.js +29 -0
  285. package/steps/widgets/license-widget-steps.js +9 -0
  286. package/steps/widgets/repository-errors-widget-steps.js +21 -0
  287. package/steps/widgets/saved-sparql-queries-widget-steps.js +9 -0
  288. package/steps/yasgui/yasgui-loader.js +3 -3
  289. package/steps/yasgui/yasgui-steps.js +1 -1
  290. package/steps/yasgui/yasqe-steps.js +35 -4
  291. package/steps/yasgui/yasr-steps.js +35 -5
  292. package/stubs/autocomplete/autocomplete-stubs.js +7 -0
  293. package/stubs/browser-stubs.js +21 -0
  294. package/stubs/environment-stubs.js +9 -1
  295. package/stubs/graph-config-stubs.js +17 -0
  296. package/stubs/guides/guides-stubs.js +103 -0
  297. package/stubs/license-stubs.js +51 -0
  298. package/stubs/repositories/repositories-stubs.js +180 -75
  299. package/stubs/saved-queries-stubs.js +5 -0
  300. package/stubs/security-stubs.js +12 -0
  301. package/stubs/similarity-index-stubs.js +4 -0
  302. package/stubs/sparql-stubs.js +10 -0
  303. package/stubs/ttyg/ttyg-stubs.js +64 -15
  304. package/stubs/yasgui/query-stubs.js +5 -1
  305. package/support/commands.js +22 -1
  306. package/support/connector-commands.js +13 -0
  307. package/support/e2e-security.js +9 -0
  308. package/support/{index.js → e2e.js} +9 -3
  309. package/support/repository-commands.js +29 -4
  310. package/support/settings-commands.js +33 -1
  311. package/support/url-commands.js +13 -0
  312. package/support/user-commands.js +9 -4
  313. package/utils/html-util.js +24 -4
  314. package/Dockerfile +0 -11
  315. package/fixtures/locale-en.json +0 -3342
  316. package/integration/explore/similarity-index/similarity-index-create.spec.js +0 -333
  317. package/integration/explore/similarity-index/similarity-index.spec.js +0 -88
  318. package/integration/explore/similarity-index/similarity.spec.js +0 -628
  319. package/integration/guides/movies-interactive-guide.spec.js +0 -73
  320. package/integration/home/cookie-policy.spec.js +0 -90
  321. package/integration/home/documentation-link.spec.js +0 -60
  322. package/integration/home/language-selector.spec.js +0 -19
  323. package/integration/home/rdf-resource-search.spec.js +0 -177
  324. package/integration/home/view-resource-autocomplete.spec.js +0 -52
  325. package/integration/home/workbench.home.spec.js +0 -30
  326. package/integration/monitor/monitor.queries.spec.js +0 -31
  327. package/integration/setup/my-settings.spec.js +0 -289
  328. package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -57
  329. package/integration/ttyg/edit-agent.spec.js +0 -99
  330. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
  331. package/stubs/repositories-stub.js +0 -73
  332. package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
  333. package/{integration-flaky → e2e-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
  334. package/{integration-flaky → e2e-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
  335. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
  336. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
  337. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
  338. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
  339. package/{integration → e2e-legacy}/cluster/cluster-legend.spec.js +0 -0
  340. package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
  341. package/{integration → e2e-legacy}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
  342. package/{integration → e2e-legacy}/graphql/delete-graphql-endpoint.spec.js +0 -0
  343. package/{integration → e2e-legacy}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
  344. package/{integration → e2e-legacy}/graphql/set-default-graphql-endpoint.spec.js +0 -0
  345. package/{integration/help → e2e-legacy/help/system-information}/system-information.spec.js +0 -0
  346. package/{integration → e2e-legacy}/home/create-repository.spec.js +0 -0
  347. package/{integration → e2e-legacy}/import/import-server-files-batch-operations.spec.js +0 -0
  348. package/{integration → e2e-legacy}/import/import-user-data-settings-dialog.spec.js +0 -0
  349. package/{integration → e2e-legacy}/import/import-view.spec.js +0 -0
  350. package/{integration → e2e-legacy}/repository/attach-remote-location.spec.js +1 -1
  351. /package/{integration → e2e-legacy}/repository/repository-commands.spec.js +0 -0
  352. /package/{integration → e2e-legacy}/setup/aclmanagement/delete-rule.spec.js +0 -0
  353. /package/{integration → e2e-legacy}/setup/aclmanagement/edit-rule.spec.js +0 -0
  354. /package/{integration → e2e-legacy}/setup/aclmanagement/render-rules.spec.js +0 -0
  355. /package/{integration → e2e-legacy}/setup/aclmanagement/reorder-rules.spec.js +0 -0
  356. /package/{integration → e2e-legacy}/setup/aclmanagement/revert-rules.spec.js +0 -0
  357. /package/{integration → e2e-legacy}/setup/aclmanagement/scopes.spec.js +0 -0
  358. /package/{integration → e2e-legacy}/setup/aclmanagement/update-rules.spec.js +0 -0
  359. /package/{integration → e2e-legacy}/setup/jdbc/jdbc.spec.js +0 -0
  360. /package/{integration → e2e-legacy}/sparql-editor/actions/execute-query.spec.js +0 -0
  361. /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
  362. /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
  363. /package/{integration → e2e-legacy}/sparql-editor/saved-query/delete-query.spec.js +0 -0
  364. /package/{integration → e2e-legacy}/sparql-editor/sparql-editor.spec.js +0 -0
  365. /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
@@ -0,0 +1,64 @@
1
+ import {GuidesStubs} from "../../../stubs/guides/guides-stubs.js";
2
+ import {GuideSteps} from "../../../steps/guides/guide-steps.js";
3
+ import {GuideDialogSteps} from "../../../steps/guides/guide-dialog-steps.js";
4
+ import {NotFoundSteps} from "../../../steps/not-found/not-found-steps.js";
5
+ import {BaseSteps} from "../../../steps/base-steps.js";
6
+ import {RepositoriesStubs} from "../../../stubs/repositories/repositories-stubs.js";
7
+
8
+ describe('navigation guide', () => {
9
+ let repositoryId;
10
+
11
+ beforeEach(() => {
12
+ repositoryId = 'navigation-guide-' + Date.now();
13
+ RepositoriesStubs.stubBaseEndpoints(repositoryId);
14
+ cy.createRepository({id: repositoryId});
15
+ cy.presetRepository(repositoryId);
16
+ GuidesStubs.stubNavigationGuide();
17
+ GuideSteps.visit();
18
+ GuideSteps.verifyGuidesListExists();
19
+ cy.wait('@getGuides');
20
+ GuideSteps.runFirstGuide();
21
+ });
22
+
23
+ afterEach(() => {
24
+ cy.deleteRepository(repositoryId);
25
+ });
26
+
27
+ it('should navigate between microfrontends', () => {
28
+ // Given I am on the 404 page, which is an angular view
29
+ BaseSteps.getUrl().should('include', '404');
30
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Navigation');
31
+ GuideDialogSteps.assertDialogWithContentIsVisible('This is a 404 page');
32
+ GuideDialogSteps.clickOnNextButton();
33
+
34
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Navigation');
35
+ GuideDialogSteps.assertDialogWithContentIsVisible('This is the go back home button');
36
+
37
+ // When I navigate to the home page
38
+ NotFoundSteps.clickGoHomeButton();
39
+
40
+ // Then I should see the home page, which is an angularjs view
41
+ BaseSteps.getUrl().should('include', '/');
42
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Navigation');
43
+ GuideDialogSteps.assertDialogWithContentIsVisible('This is the home page');
44
+ // When, I navigate to an angular view again (/sparql-new)
45
+ GuideDialogSteps.clickOnNextButton();
46
+
47
+ // Then I should see the new sparql view, which is an angular view
48
+ BaseSteps.getUrl().should('include', 'sparql-new');
49
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Navigation');
50
+ GuideDialogSteps.assertDialogWithContentIsVisible('This is the new sparql view');
51
+
52
+ // When, I navigate to an angularjs view again (import)
53
+ GuideDialogSteps.clickOnNextButton();
54
+
55
+ // Then I should see the import page, which is an angularjs view
56
+ BaseSteps.getUrl().should('include', 'import');
57
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Navigation');
58
+ GuideDialogSteps.assertDialogWithContentIsVisible('This is the import view');
59
+ GuideDialogSteps.clickOnNextButton();
60
+
61
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
62
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended');
63
+ });
64
+ });
@@ -0,0 +1,42 @@
1
+ import {GuidesStubs} from "../../../stubs/guides/guides-stubs.js";
2
+ import {GuideSteps} from "../../../steps/guides/guide-steps.js";
3
+ import {GuideDialogSteps} from "../../../steps/guides/guide-dialog-steps.js";
4
+ import {RdfRankSteps} from "../../../steps/setup/rdf-rank-steps.js";
5
+
6
+ describe('RDF rank', () => {
7
+ let repositoryId;
8
+
9
+ beforeEach(() => {
10
+ repositoryId = 'rdf-rank-guide-step-' + Date.now();
11
+ GuidesStubs.stubRDFRankGuide();
12
+ cy.createRepository({id: repositoryId});
13
+ cy.presetRepository(repositoryId);
14
+
15
+ GuideSteps.visit();
16
+ GuideSteps.verifyGuidesListExists();
17
+ cy.wait('@getGuides');
18
+ GuideSteps.runFirstGuide()
19
+ });
20
+
21
+ afterEach(() => {
22
+ cy.deleteRepository(repositoryId);
23
+ });
24
+
25
+ it('Should compute RDF Rank (User interaction)', () => {
26
+ GuideDialogSteps.assertDialogWithTitleIsVisible('RDF Rank');
27
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on Compute Full to start the RDF Rank computation.');
28
+ RdfRankSteps.computeRdfRank();
29
+
30
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
31
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
32
+ });
33
+
34
+ it('Should compute RDF Rank (Next flow)', () => {
35
+ GuideDialogSteps.assertDialogWithTitleIsVisible('RDF Rank');
36
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on Compute Full to start the RDF Rank computation.');
37
+ GuideDialogSteps.clickOnNextButton();
38
+
39
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
40
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
41
+ });
42
+ });
@@ -0,0 +1,69 @@
1
+ import {GuideSteps} from '../../../steps/guides/guide-steps.js';
2
+ import createRepoGuideArray from '../../../fixtures/guides/create-repository/create-repository-guide.json';
3
+ import {GuideDialogSteps} from "../../../steps/guides/guide-dialog-steps.js";
4
+ import {MainMenuSteps} from "../../../steps/main-menu-steps.js";
5
+ import {RepositorySteps} from "../../../steps/repository-steps.js";
6
+ import {GuidesStubs} from '../../../stubs/guides/guides-stubs.js';
7
+
8
+ describe('Create repository guide', () => {
9
+ const createRepoGuide = createRepoGuideArray[0];
10
+ const repositoryId = createRepoGuide.options.repositoryIdBase = 'create-repo-guide-' + Date.now();
11
+
12
+ beforeEach(() => {
13
+ GuidesStubs.stubCreateRepositoryGuide(createRepoGuideArray);
14
+ GuideSteps.visit();
15
+ GuideSteps.verifyGuidesListExists();
16
+ cy.wait('@getGuides');
17
+ GuideSteps.runGuide(createRepoGuide.guideName.en)
18
+ });
19
+
20
+ afterEach(() => {
21
+ cy.deleteRepository(repositoryId);
22
+ });
23
+
24
+ it('Should create and select a repository', () => {
25
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 1/7');
26
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Repositories view to create a repository.');
27
+ GuideDialogSteps.clickOnNextButton();
28
+
29
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 2/7');
30
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Setup menu.');
31
+ MainMenuSteps.clickOnMenuSetup();
32
+
33
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 3/7');
34
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Repositories menu.');
35
+ MainMenuSteps.clickOnRepositoriesSubmenu();
36
+
37
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 4/7');
38
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Create new repository button.');
39
+ RepositorySteps.createRepository();
40
+
41
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 5/7');
42
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the GraphDB Repository button.');
43
+ RepositorySteps.clickGDBRepositoryTypeButton();
44
+
45
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 6/7');
46
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Enter repository ID: ${repositoryId}`);
47
+ RepositorySteps.typeRepoId(repositoryId);
48
+ GuideDialogSteps.clickOnNextButton();
49
+
50
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create repository — 7/7');
51
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Create button.');
52
+ RepositorySteps.saveRepository();
53
+
54
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Connect to repository — 1/2')
55
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the repository selection dropdown.');
56
+ RepositorySteps.clickRepositoriesDropdown();
57
+
58
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Connect to repository — 2/2');
59
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Click on the ${repositoryId}`);
60
+ RepositorySteps.selectRepositoryFromDropdown(repositoryId);
61
+
62
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Repositories');
63
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click the connect repository icon');
64
+ RepositorySteps.clickConnectRepositoryButton(repositoryId);
65
+
66
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
67
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
68
+ })
69
+ })
@@ -0,0 +1,168 @@
1
+ import {GuidesStubs} from "../../../stubs/guides/guides-stubs.js";
2
+ import {GuideSteps} from "../../../steps/guides/guide-steps.js";
3
+ import {GuideDialogSteps} from "../../../steps/guides/guide-dialog-steps.js";
4
+ import {YasrSteps} from "../../../steps/yasgui/yasr-steps.js";
5
+ import {ResourceSteps} from "../../../steps/resource/resource-steps.js";
6
+ import {VisualGraphSplitButtonSteps} from '../../../steps/visual-graph-split-button-steps.js';
7
+
8
+ describe('Table Graph explore', () => {
9
+ const FILE_TO_IMPORT = 'wine.rdf';
10
+ let repositoryId;
11
+
12
+ beforeEach(() => {
13
+ repositoryId = 'table-graph-explore-guide-step-' + Date.now();
14
+ cy.createRepository({id: repositoryId});
15
+ cy.presetRepository(repositoryId);
16
+ cy.importServerFile(repositoryId, FILE_TO_IMPORT);
17
+ });
18
+
19
+ afterEach(() => {
20
+ cy.deleteRepository(repositoryId);
21
+ });
22
+
23
+ describe('Table Graph explore without substeps', () => {
24
+ beforeEach(() => {
25
+ GuidesStubs.stubTableGraphExploreWithoutSubstepsGuide();
26
+
27
+ GuideSteps.visit();
28
+ GuideSteps.verifyGuidesListExists();
29
+ cy.wait('@getGuides');
30
+ GuideSteps.runFirstGuide();
31
+ });
32
+
33
+ it('Should explore visual graph (User interaction)', () => {
34
+ // GIVEN: A guide is started, and there are results in the SPARQL editor.
35
+ GuideDialogSteps.clickOnNextButton();
36
+
37
+ // WHEN: I click on a resource link in the results table.
38
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 1/2');
39
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to explore RDF data in tabular form without writing SPARQL queries. Click on the wine#madeFromGrape IRI to explore it.');
40
+ YasrSteps.clickOnResource(48, 1);
41
+
42
+ // THEN: I expect to see a dialog in the resource view.
43
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 2/2');
44
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table shows RDF statements where the subject is the selected IRI, wine#madeFromGrape. The view can be configured to show statements where the IRI is the subject, predicate, object, context or in any position.');
45
+ GuideDialogSteps.clickOnNextButton();
46
+
47
+ // AND: The guide should end.
48
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
49
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
50
+ });
51
+
52
+ it('Should explore visual graph (Next flow)', () => {
53
+ // GIVEN: A guide is started, and there are results in the SPARQL editor.
54
+ GuideDialogSteps.clickOnNextButton();
55
+
56
+ // WHEN: I proceed using the Next button.
57
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 1/2');
58
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to explore RDF data in tabular form without writing SPARQL queries. Click on the wine#madeFromGrape IRI to explore it.');
59
+ GuideDialogSteps.clickOnNextButton();
60
+
61
+ // THEN: I expect to see a dialog in the resource view.
62
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 2/2');
63
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table shows RDF statements where the subject is the selected IRI, wine#madeFromGrape. The view can be configured to show statements where the IRI is the subject, predicate, object, context or in any position.');
64
+ GuideDialogSteps.clickOnNextButton();
65
+
66
+ // AND: The guide should end.
67
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
68
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended');
69
+ });
70
+ });
71
+
72
+ describe('Table Graph explore', () => {
73
+ beforeEach(() => {
74
+ GuidesStubs.stubTableGraphExploreGuide();
75
+
76
+ GuideSteps.visit();
77
+ GuideSteps.verifyGuidesListExists();
78
+ cy.wait('@getGuides');
79
+ GuideSteps.runFirstGuide();
80
+ });
81
+
82
+ it('Should explore visual graph (User interaction)', () => {
83
+ // GIVEN: A guide is started, and there are results in the SPARQL editor.
84
+ GuideDialogSteps.clickOnNextButton();
85
+
86
+ // WHEN: I click on the resource link highlighted in the guide dialog.
87
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 1/8');
88
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to explore RDF data in tabular form without writing SPARQL queries. Click on the wine#madeFromGrape IRI to explore it.');
89
+ YasrSteps.clickOnResource(48, 1);
90
+
91
+ // THEN: I expect to see a dialog in the resource view.
92
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 2/8');
93
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table shows RDF statements where the subject is the selected IRI, wine#madeFromGrape. The view can be configured to show statements where the IRI is the subject, predicate, object, context or in any position.');
94
+ GuideDialogSteps.clickOnNextButton();
95
+
96
+ // AND: The guide continues with substeps.
97
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 3/8');
98
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can click on any IRI in the table to navigate to it. Click on vin:WineGrape.');
99
+ YasrSteps.clickOnResource(2, 3);
100
+
101
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 4/8');
102
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table provides an easy way to view triples in which a given IRI is the subject, predicate, or object.');
103
+ GuideDialogSteps.clickOnNextButton();
104
+
105
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 5/8');
106
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can configure the view to show RDF statements where the current IRI is the subject, predicate, object, context or in any position. Click on the all tab.This is an extra content');
107
+ ResourceSteps.selectRole('all');
108
+
109
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 6/8');
110
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can always explore the same data using the Visual graph view. Click on the Visual graph button to try it now.');
111
+ VisualGraphSplitButtonSteps.clickOnVisualizeMainButton();
112
+
113
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 7/8');
114
+ GuideDialogSteps.assertDialogWithContentIsVisible('The graph shows connections between the start node, vin:WineGrape, and other nodes. Each arrow represents one or more connections (RDF statements).');
115
+ GuideDialogSteps.clickOnNextButton();
116
+
117
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 8/8');
118
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can click on any IRI in the table to navigate to it. Click on wine#madeFromGrape.');
119
+ GuideDialogSteps.clickOnNextButton();
120
+
121
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
122
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
123
+ });
124
+
125
+ it('Should explore visual graph (Next flow)', () => {
126
+ // GIVEN: A guide is started, and there are results in the SPARQL editor.
127
+ GuideDialogSteps.clickOnNextButton();
128
+
129
+ // WHEN: I proceed using the Next button.
130
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 1/8');
131
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to explore RDF data in tabular form without writing SPARQL queries. Click on the wine#madeFromGrape IRI to explore it.');
132
+ GuideDialogSteps.clickOnNextButton();
133
+
134
+ // THEN: I expect to see a dialog in the resource view.
135
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 2/8');
136
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table shows RDF statements where the subject is the selected IRI, wine#madeFromGrape. The view can be configured to show statements where the IRI is the subject, predicate, object, context or in any position.');
137
+ GuideDialogSteps.clickOnNextButton();
138
+
139
+ // AND: The guide continues with substeps.
140
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 3/8');
141
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can click on any IRI in the table to navigate to it. Click on vin:WineGrape.');
142
+ YasrSteps.clickOnResource(2, 3);
143
+
144
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 4/8');
145
+ GuideDialogSteps.assertDialogWithContentIsVisible('The table provides an easy way to view triples in which a given IRI is the subject, predicate, or object.');
146
+ GuideDialogSteps.clickOnNextButton();
147
+
148
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 5/8');
149
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can configure the view to show RDF statements where the current IRI is the subject, predicate, object, context or in any position. Click on the all tab.This is an extra content');
150
+ GuideDialogSteps.clickOnNextButton();
151
+
152
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 6/8');
153
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can always explore the same data using the Visual graph view. Click on the Visual graph button to try it now.');
154
+ GuideDialogSteps.clickOnNextButton();
155
+
156
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 7/8');
157
+ GuideDialogSteps.assertDialogWithContentIsVisible('The graph shows connections between the start node, vin:WineGrape, and other nodes. Each arrow represents one or more connections (RDF statements).');
158
+ GuideDialogSteps.clickOnNextButton();
159
+
160
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Explore RDF as a table — 8/8');
161
+ GuideDialogSteps.assertDialogWithContentIsVisible('You can click on any IRI in the table to navigate to it. Click on wine#madeFromGrape.');
162
+ GuideDialogSteps.clickOnNextButton();
163
+
164
+ GuideDialogSteps.assertDialogWithTitleIsVisible('End of guide');
165
+ GuideDialogSteps.assertDialogWithContentIsVisible('This guide has ended.');
166
+ });
167
+ });
168
+ });
@@ -0,0 +1,158 @@
1
+ import {SimilarityIndexStubs} from "../../../../stubs/similarity-index-stubs.js";
2
+ import {AutocompleteStubs} from "../../../../stubs/autocomplete/autocomplete-stubs.js";
3
+ import {GuideDialogSteps} from "../../../../steps/guides/guide-dialog-steps.js";
4
+ import {MainMenuSteps} from "../../../../steps/main-menu-steps.js";
5
+ import {TTYGViewSteps} from "../../../../steps/ttyg/ttyg-view-steps.js";
6
+ import {TtygAgentSettingsModalSteps} from "../../../../steps/ttyg/ttyg-agent-settings-modal.steps.js";
7
+ import {GuideSteps} from "../../../../steps/guides/guide-steps.js";
8
+ import {GuidesStubs} from "../../../../stubs/guides/guides-stubs.js";
9
+ import {TTYGStubs} from "../../../../stubs/ttyg/ttyg-stubs.js";
10
+ import {RepositoriesStubs} from "../../../../stubs/repositories/repositories-stubs.js";
11
+
12
+ // TODO: there is some issue with the context side field focus that breaks the test. Should be fixed soon
13
+ describe.skip('ttyg configure agent guide', () => {
14
+ let repositoryId;
15
+
16
+ beforeEach(() => {
17
+ GuidesStubs.stubCreateAndConfigureAgentGuide();
18
+ SimilarityIndexStubs.stubTTYGSimilarityInstances();
19
+ AutocompleteStubs.stubAutocompleteEnabled(true);
20
+ TTYGStubs.stubAgentDefaultsGet();
21
+ TTYGStubs.stubAgentListGet();
22
+ repositoryId = 'configure-ttyg-agent-guide-' + Date.now();
23
+ RepositoriesStubs.stubBaseEndpoints(repositoryId);
24
+ cy.createRepository({id: repositoryId});
25
+ cy.presetRepository(repositoryId);
26
+ GuideSteps.visit();
27
+ GuideSteps.verifyGuidesListExists();
28
+ cy.wait('@getGuides');
29
+ GuideSteps.runFirstGuide()
30
+ });
31
+
32
+ afterEach(() => {
33
+ cy.deleteRepository(repositoryId);
34
+ })
35
+
36
+ it('should create and configure TTYG agent with actions', () => {
37
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/30');
38
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agent.');
39
+ GuideDialogSteps.clickOnNextButton();
40
+
41
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/30');
42
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
43
+ MainMenuSteps.clickOnMenuLab();
44
+
45
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 3/30');
46
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
47
+ MainMenuSteps.clickOnTTYGSubmenu();
48
+
49
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 5/30');
50
+ GuideDialogSteps.assertDialogWithContentIsVisible('An agent is a helpful assistant that can answer your queries. You need to configure an agent in order to ask anything of Talk to Your Graph.');
51
+ GuideDialogSteps.clickOnNextButton();
52
+
53
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 7/30');
54
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the create agent button to create a new agent.');
55
+ TTYGViewSteps.clickCreateAgentButton();
56
+
57
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 9/30');
58
+ GuideDialogSteps.assertDialogWithContentIsVisible('Type a name for the agent. You will refer to it later.');
59
+ TtygAgentSettingsModalSteps.typeAgentName('MyAgent');
60
+ GuideDialogSteps.clickOnNextButton();
61
+
62
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 10/30');
63
+ GuideDialogSteps.assertDialogWithContentIsVisible('Here you can type the name of the OpenAI model to be used.');
64
+ TtygAgentSettingsModalSteps.clearLLMModel();
65
+ TtygAgentSettingsModalSteps.typeLLMModel('gpt-3.5-turbo');
66
+ GuideDialogSteps.clickOnNextButton();
67
+
68
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 11/30');
69
+ GuideDialogSteps.assertDialogWithContentIsVisible('Sets the sampling temperature of the agent. Lower values result in more consistent, repetitive responses generated by the agent and higher values result in a wider variety of responses');
70
+ TtygAgentSettingsModalSteps.setTemperature(0.8);
71
+ GuideDialogSteps.clickOnNextButton();
72
+
73
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 12/30');
74
+ GuideDialogSteps.assertDialogWithContentIsVisible('Sets the nucleus sampling of the agent');
75
+ TtygAgentSettingsModalSteps.setTopP(0.9);
76
+ GuideDialogSteps.clickOnNextButton();
77
+
78
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/30');
79
+ GuideDialogSteps.assertDialogWithContentIsVisible('Enabling SPARQL search allows the agent to answers questions by performing a SPARQL query.');
80
+ GuideDialogSteps.clickOnNextButton();
81
+
82
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/30');
83
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable SPARQL search query method.');
84
+ TtygAgentSettingsModalSteps.enableSparqlExtractionMethod();
85
+
86
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/30');
87
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable providing an ontology in a named graph.');
88
+ TtygAgentSettingsModalSteps.selectSparqlMethodOntologyGraph();
89
+
90
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 16/30');
91
+ GuideDialogSteps.assertDialogWithContentIsVisible('Type http://example.org/some/test/ontology as the named graph which contains the ontology.');
92
+ TtygAgentSettingsModalSteps.clearSparqlMethodOntologyGraphField();
93
+ TtygAgentSettingsModalSteps.typeSparqlMethodOntologyGraphField('http://example.org/some/test/ontology');
94
+ GuideDialogSteps.clickOnNextButton();
95
+
96
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 17/30');
97
+ GuideDialogSteps.assertDialogWithContentIsVisible('Check to automatically add missing namespaces.');
98
+ TtygAgentSettingsModalSteps.toggleAddMissingNamespacesCheckbox();
99
+
100
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 18/30');
101
+ GuideDialogSteps.assertDialogWithContentIsVisible('Enabling FTS search allows the agent to answer questions by using full-text search in literals and IRIs.');
102
+ GuideDialogSteps.clickOnNextButton();
103
+
104
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 19/30');
105
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable FTS search query method.');
106
+ TtygAgentSettingsModalSteps.enableFtsExtractionMethod();
107
+
108
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 20/30');
109
+ GuideDialogSteps.assertDialogWithContentIsVisible('Type 100 as the maximum number of triples to retrieve per call.');
110
+ TtygAgentSettingsModalSteps.setFtsSearchMaxTriples(100);
111
+ GuideDialogSteps.clickOnNextButton();
112
+
113
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 21/30');
114
+ GuideDialogSteps.assertDialogWithContentIsVisible('Enabling Similarity search allows the agent to answer questions by using Similarity search.');
115
+ GuideDialogSteps.clickOnNextButton();
116
+
117
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 22/30');
118
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Similarity search query method.');
119
+ TtygAgentSettingsModalSteps.enableSimilaritySearchMethodPanel();
120
+
121
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 23/30');
122
+ GuideDialogSteps.assertDialogWithContentIsVisible('Select the index to use for Similarity search.');
123
+ TtygAgentSettingsModalSteps.selectSimilarityIndex(0);
124
+ GuideDialogSteps.clickOnNextButton();
125
+
126
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 24/30');
127
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Full-text search in labels for IRI discovery');
128
+ TtygAgentSettingsModalSteps.checkIriDiscoverySearchCheckbox();
129
+
130
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 25/30');
131
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Autocomplete for IRI discovery.');
132
+ TtygAgentSettingsModalSteps.checkAutocompleteSearchCheckbox();
133
+
134
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 26/30');
135
+ GuideDialogSteps.assertDialogWithContentIsVisible('Set the Max number of results (IRIs) per call to 15');
136
+ TtygAgentSettingsModalSteps.setAutocompleteMaxResults(15);
137
+ GuideDialogSteps.clickOnNextButton();
138
+
139
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 27/30');
140
+ GuideDialogSteps.assertDialogWithContentIsVisible('Set Context Size to 4096 so the model can use the ontology and conversation history to answer correctly');
141
+ TtygAgentSettingsModalSteps.getContextSizeField().focus();
142
+ TtygAgentSettingsModalSteps.clearContextSize();
143
+ TtygAgentSettingsModalSteps.enterContextSize(4096);
144
+ GuideDialogSteps.clickOnNextButton();
145
+
146
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 28/30');
147
+ GuideDialogSteps.assertDialogWithContentIsVisible('Enter the following in the input:');
148
+ TtygAgentSettingsModalSteps.clearUserInstructions();
149
+ TtygAgentSettingsModalSteps.getCodeToCopy().then(code => {
150
+ TtygAgentSettingsModalSteps.typeUserInstructions(code);
151
+ GuideDialogSteps.clickOnNextButton();
152
+ });
153
+
154
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 29/30');
155
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click to save the agent settings');
156
+ TtygAgentSettingsModalSteps.saveAgent();
157
+ });
158
+ })
@@ -0,0 +1,92 @@
1
+ import {GuidesStubs} from "../../../../stubs/guides/guides-stubs.js";
2
+ import {TTYGStubs} from "../../../../stubs/ttyg/ttyg-stubs.js";
3
+ import {GuideSteps} from "../../../../steps/guides/guide-steps.js";
4
+ import {GuideDialogSteps} from "../../../../steps/guides/guide-dialog-steps.js";
5
+ import {TTYGViewSteps} from "../../../../steps/ttyg/ttyg-view-steps.js";
6
+ import {ChatPanelSteps} from "../../../../steps/ttyg/chat-panel-steps.js";
7
+ import {RepositoriesStubs} from "../../../../stubs/repositories/repositories-stubs.js";
8
+ import {TtygAgentSettingsModalSteps} from "../../../../steps/ttyg/ttyg-agent-settings-modal.steps.js";
9
+ import {BrowserStubs} from '../../../../stubs/browser-stubs.js';
10
+
11
+ describe('ttyg-conversation-guide', () => {
12
+ let repositoryId = 'starwars';
13
+
14
+ beforeEach(() => {
15
+ RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
16
+ RepositoriesStubs.stubBaseEndpoints(repositoryId);
17
+ cy.presetRepository(repositoryId);
18
+ GuidesStubs.stubTTYGConversationGuide();
19
+ TTYGStubs.stubAgentDefaultsGet();
20
+ TTYGStubs.stubChatsListGet();
21
+ TTYGStubs.stubAgentListGet();
22
+ TTYGStubs.stubChatGet();
23
+ TTYGStubs.stubCreateNewChat();
24
+ TTYGStubs.stubExplainResponse('/ttyg/chats/explain-response-3.json');
25
+
26
+ GuideSteps.visit();
27
+ BrowserStubs.stubWindowOpen();
28
+
29
+ GuideSteps.verifyGuidesListExists();
30
+
31
+ GuideSteps.runFirstGuide()
32
+ cy.wait('@getGuides');
33
+ cy.wait('@get-chat-list');
34
+ cy.wait('@get-agent-list');
35
+ cy.wait('@get-all-repositories');
36
+ cy.wait('@get-chat');
37
+ });
38
+
39
+ it('should select an agent and have a conversation', () => {
40
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Select an agent — 1/5');
41
+ GuideDialogSteps.assertDialogWithContentIsVisible('To talk to your graph, you need to select an agent first');
42
+ GuideDialogSteps.clickOnNextButton();
43
+
44
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Select an agent — 2/5');
45
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on the agents dropdown to see available agents');
46
+ TTYGViewSteps.openAgentsMenu();
47
+
48
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Select an agent — 3/5');
49
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click on you agent from the dropdown to select it');
50
+ TTYGViewSteps.selectAgent(0);
51
+
52
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Conversation with the agent — 2/12');
53
+ GuideDialogSteps.assertDialogWithContentIsVisible('Click the button to create a new chat');
54
+ TTYGViewSteps.createANewChat();
55
+
56
+ const codeToType = 'Count all the web pages published in 2020? Provide five sample names.'
57
+
58
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 3/12');
59
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Type "${codeToType}" in the input and press enter`);
60
+ ChatPanelSteps.typeQuestion(codeToType);
61
+ ChatPanelSteps.askQuestionWithEnter();
62
+
63
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 4/12');
64
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Wait for the answer to be returned and explore it. When ready proceed by clicking next.`);
65
+ ChatPanelSteps.waitForLoaderToDisappear();
66
+ GuideDialogSteps.clickOnNextButton();
67
+
68
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 6/12');
69
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Explain the answer by clicking on the 'Explain response' button.`);
70
+ TTYGViewSteps.clickOnExplainResponse(0);
71
+ cy.wait('@explain-response');
72
+
73
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 7/12');
74
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Wait for the answer to be returned and explore it. When ready proceed by clicking next.`);
75
+ ChatPanelSteps.waitForLoaderToDisappear();
76
+ GuideDialogSteps.clickOnNextButton();
77
+
78
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 9/12');
79
+ GuideDialogSteps.assertDialogWithContentIsVisible(`You can open the query in the SPARQL editor by clicking on 'Open in SPARQL editor' button. When you are ready, return to the page.`);
80
+ TtygAgentSettingsModalSteps.clickOpenQueryInSparqlEditor();
81
+
82
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 11/12');
83
+ GuideDialogSteps.assertDialogWithContentIsVisible(`You can ask the agent how it derived the answer by clicking on the button`);
84
+ TTYGViewSteps.clickOnHowDeliverAnswerButton();
85
+ cy.wait('@create-chat')
86
+ cy.wait('@create-chat')
87
+
88
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Ask the agent — 12/12');
89
+ GuideDialogSteps.assertDialogWithContentIsVisible(`Wait for the answer to be returned and explore it. When ready proceed by clicking next.`);
90
+ GuideDialogSteps.clickOnCloseButton();
91
+ });
92
+ })