graphdb-workbench-tests 3.4.0-TR2 → 3.4.0-TR4

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 (363) hide show
  1. package/Dockerfile +11 -0
  2. package/cypress-flaky.config.js +6 -20
  3. package/cypress.config.js +6 -45
  4. package/fixtures/locale-en.json +3342 -0
  5. package/fixtures/ttyg/agent/get-agent-defaults.json +2 -9
  6. package/fixtures/ttyg/chats/ask-question.json +2 -12
  7. package/fixtures/ttyg/chats/create/create-chat-response.json +14 -10
  8. package/fixtures/ttyg/chats/explain-response-1.json +48 -2
  9. package/fixtures/ttyg/chats/get-chat.json +1 -6
  10. package/{e2e-legacy → integration}/cluster/cluster-states.spec.js +3 -3
  11. package/{e2e-legacy/explore/class-hierarchy → integration/explore}/class.hierarchy.spec.js +1 -1
  12. package/{e2e-legacy/explore/class-relationships/class-relationships.spec.js → integration/explore/class.relationships.spec.js} +50 -20
  13. package/{e2e-legacy/explore/graphs-overview → integration/explore}/graphs.overview.spec.js +4 -4
  14. package/integration/explore/similarity-index/similarity-index-create.spec.js +333 -0
  15. package/integration/explore/similarity-index/similarity-index.spec.js +88 -0
  16. package/integration/explore/similarity-index/similarity.spec.js +628 -0
  17. package/{e2e-legacy → integration}/explore/visual-graph/graphs-config.spec.js +10 -5
  18. package/{e2e-legacy → integration}/explore/visual-graph/visual-graph-node-labels.spec.js +2 -14
  19. package/{e2e-legacy → integration}/explore/visual-graph/visual.graph.spec.js +96 -75
  20. package/{e2e-legacy → integration}/graphql/create-graphql-endpoint.spec.js +2 -0
  21. package/{e2e-legacy → integration}/graphql/edit-graphql-enpoint.spec.js +1 -1
  22. package/{e2e-legacy → integration}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
  23. package/{e2e-legacy → integration}/graphql/graphql-endpoint-management-view.spec.js +4 -4
  24. package/{e2e-legacy → integration}/graphql/graphql-playground.spec.js +1 -1
  25. package/{e2e-legacy → integration}/graphql/import-graphql-endpoint-definitions.spec.js +6 -0
  26. package/integration/guides/movies-interactive-guide.spec.js +73 -0
  27. package/{e2e-legacy/help/guides/star-wars-interactive-guide.spec.js → integration/guides/star-wars-interactive-guide.js} +2 -3
  28. package/integration/home/cookie-policy.spec.js +90 -0
  29. package/integration/home/documentation-link.spec.js +60 -0
  30. package/{e2e-legacy → integration}/home/google-analytics.spec.js +6 -4
  31. package/{e2e-legacy → integration}/home/language-change.spec.js +2 -2
  32. package/integration/home/language-selector.spec.js +19 -0
  33. package/integration/home/rdf-resource-search.spec.js +177 -0
  34. package/integration/home/view-resource-autocomplete.spec.js +52 -0
  35. package/integration/home/workbench.home.spec.js +30 -0
  36. package/{e2e-legacy → integration}/import/import-server-files.spec.js +3 -5
  37. package/{e2e-legacy → integration}/import/import-user-data-file-upload.spec.js +13 -19
  38. package/{e2e-legacy → integration}/import/import-user-data-text-snippet.spec.js +2 -0
  39. package/{e2e-legacy → integration}/import/import-user-data-url.spec.js +23 -0
  40. package/{e2e-legacy → integration}/import/import-user-data.spec.js +4 -11
  41. package/{e2e-legacy → integration}/license/license.spec.js +4 -4
  42. package/{e2e-legacy → integration}/monitor/global-operation-statuses-component.spec.js +5 -12
  43. package/{e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js → integration/monitor/monitor.backup-and-restore.spec.js} +2 -2
  44. package/integration/monitor/monitor.queries.spec.js +31 -0
  45. package/{e2e-legacy/monitor/system → integration/monitor}/monitor.resources.spec.js +2 -3
  46. package/{e2e-legacy → integration}/repository/ontop-repository.spec.js +1 -1
  47. package/{e2e-legacy → integration}/repository/repositories.spec.js +45 -37
  48. package/{e2e-legacy → integration}/resource/resource.spec.js +7 -17
  49. package/{e2e-legacy → integration}/setup/aclmanagement/create-rule.spec.js +0 -4
  50. package/{e2e-legacy/setup/autocomplete → integration/setup}/autocomplete.spec.js +7 -6
  51. package/{e2e-legacy → integration}/setup/connectors-lucene.spec.js +10 -26
  52. package/{e2e-legacy → integration}/setup/jdbc/jdbc-create.spec.js +4 -4
  53. package/integration/setup/my-settings.spec.js +289 -0
  54. package/{e2e-legacy/setup/namespaces → integration/setup}/namespaces.spec.js +5 -6
  55. package/{e2e-legacy/setup/plugins → integration/setup}/plugins.spec.js +3 -3
  56. package/{e2e-legacy/setup/rdf-rank → integration/setup}/rdf-rank.spec.js +5 -3
  57. package/{e2e-legacy/setup/sparql-template/sparql-template-create.spec.js → integration/setup/sparql-template-create.js} +8 -16
  58. package/{e2e-legacy/setup/sparql-template → integration/setup}/sparql-templates.spec.js +4 -4
  59. package/{e2e-legacy/setup/users-and-access → integration/setup}/user-and-access.spec.js +87 -184
  60. package/{e2e-legacy → integration}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
  61. package/{e2e-legacy → integration}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
  62. package/{e2e-legacy → integration}/sparql-editor/actions/inferred-sameas.spec.js +8 -10
  63. package/{e2e-legacy → integration}/sparql-editor/actions/show-saved-queries.spec.js +6 -1
  64. package/{e2e-legacy → integration}/sparql-editor/saved-query/abort-query.spec.js +1 -1
  65. package/{e2e-legacy → integration}/sparql-editor/saved-query/edit-query.spec.js +3 -3
  66. package/{e2e-legacy → integration}/sparql-editor/saved-query/readonly-query.spec.js +24 -15
  67. package/{e2e-legacy → integration}/sparql-editor/saved-query/share-query.spec.js +1 -32
  68. package/{e2e-legacy → integration}/sparql-editor/yasgui-tabs.spec.js +12 -2
  69. package/{e2e-legacy → integration}/sparql-editor/yasr/pagination.spec.js +18 -5
  70. package/{e2e-legacy → integration}/sparql-editor/yasr/table-plugin.spec.js +6 -1
  71. package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +57 -0
  72. package/{e2e-legacy → integration}/ttyg/agent-list.spec.js +2 -53
  73. package/{e2e-legacy → integration}/ttyg/agent-select-menu.spec.js +2 -25
  74. package/{e2e-legacy → integration}/ttyg/chat-list.spec.js +14 -3
  75. package/{e2e-legacy → integration}/ttyg/chat-panel.spec.js +6 -74
  76. package/{e2e-legacy → integration}/ttyg/clone-agent.spec.js +2 -24
  77. package/{e2e-legacy → integration}/ttyg/create-agent.spec.js +66 -37
  78. package/{e2e-legacy → integration}/ttyg/create-chat.spec.js +4 -6
  79. package/{e2e-legacy → integration}/ttyg/delete-agent.spec.js +2 -1
  80. package/integration/ttyg/edit-agent.spec.js +99 -0
  81. package/{e2e-legacy → integration}/ttyg/ttyg-view.spec.js +2 -2
  82. package/{e2e-flaky → integration-flaky}/explore/visual.graph.spec.js +1 -4
  83. package/{e2e-flaky → integration-flaky}/import/import-server-files-operations.spec.js +2 -2
  84. package/{e2e-flaky → integration-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
  85. package/{e2e-flaky → integration-flaky}/setup/sparql-template-create.js +18 -10
  86. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +54 -0
  87. package/{e2e-flaky → integration-flaky}/sparql-editor/actions/execute-update-query.spec.js +12 -2
  88. package/{e2e-flaky → integration-flaky}/sparql-editor/actions/share-query.spec.js +7 -1
  89. package/{e2e-flaky → integration-flaky}/sparql-editor/yasr/table-plugin.spec.js +7 -3
  90. package/{e2e-legacy → integration-flaky}/ttyg/ttyg-permission.spec.js +17 -23
  91. package/npm-shrinkwrap.json +3815 -11004
  92. package/package.json +42 -58
  93. package/plugins/index.js +5 -10
  94. package/steps/application-steps.js +6 -8
  95. package/steps/class-views-steps.js +7 -35
  96. package/steps/cluster/cluster-page-steps.js +2 -12
  97. package/steps/error-steps.js +3 -15
  98. package/steps/explore/graphs-overview-steps.js +1 -21
  99. package/steps/explore/similarity-index-create-steps.js +3 -5
  100. package/steps/explore/similarity-indexes-steps.js +2 -16
  101. package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
  102. package/steps/guides/guide-dialog-steps.js +2 -81
  103. package/steps/guides/guide-steps.js +2 -54
  104. package/steps/home-steps.js +77 -184
  105. package/steps/import/import-resource-message-dialog.js +1 -1
  106. package/steps/import/import-steps.js +16 -12
  107. package/steps/import/import-user-data-steps.js +1 -5
  108. package/steps/language-selector-steps.js +2 -2
  109. package/steps/license-steps.js +9 -91
  110. package/steps/login-steps.js +6 -31
  111. package/steps/main-menu-steps.js +19 -244
  112. package/steps/modal-dialog-steps.js +1 -32
  113. package/steps/monitoring/backup-and-restore-steps.js +3 -9
  114. package/steps/operations-statuses-component-steps.js +10 -5
  115. package/steps/repository-selector-steps.js +3 -3
  116. package/steps/repository-steps.js +18 -64
  117. package/steps/resource/resource-steps.js +2 -6
  118. package/steps/setup/acl-management-steps.js +2 -6
  119. package/steps/setup/autocomplete-steps.js +8 -23
  120. package/steps/setup/jdbc-steps.js +4 -18
  121. package/steps/setup/namespace-steps.js +7 -10
  122. package/steps/setup/plugins-steps.js +5 -12
  123. package/steps/setup/rdf-rank-steps.js +9 -23
  124. package/steps/setup/settings-steps.js +2 -101
  125. package/steps/setup/sparql-templates-steps.js +1 -19
  126. package/steps/setup/user-and-access-steps.js +16 -50
  127. package/steps/sparql-editor-steps.js +2 -8
  128. package/steps/sparql-steps.js +1 -13
  129. package/steps/toaster-steps.js +6 -18
  130. package/steps/ttyg/chat-panel-steps.js +2 -40
  131. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +31 -136
  132. package/steps/ttyg/ttyg-view-steps.js +10 -80
  133. package/steps/visual-graph-steps.js +10 -106
  134. package/steps/yasgui/yasgui-loader.js +3 -3
  135. package/steps/yasgui/yasgui-steps.js +1 -1
  136. package/steps/yasgui/yasqe-steps.js +4 -35
  137. package/steps/yasgui/yasr-steps.js +3 -73
  138. package/stubs/autocomplete/autocomplete-stubs.js +0 -7
  139. package/stubs/environment-stubs.js +1 -9
  140. package/stubs/license-stubs.js +0 -51
  141. package/stubs/repositories/repositories-stubs.js +75 -180
  142. package/stubs/repositories-stub.js +73 -0
  143. package/stubs/security-stubs.js +0 -12
  144. package/stubs/similarity-index-stubs.js +0 -4
  145. package/stubs/ttyg/ttyg-stubs.js +15 -64
  146. package/stubs/yasgui/query-stubs.js +1 -5
  147. package/support/commands.js +1 -22
  148. package/support/{e2e.js → index.js} +3 -9
  149. package/support/repository-commands.js +4 -29
  150. package/support/settings-commands.js +1 -33
  151. package/support/user-commands.js +4 -9
  152. package/utils/html-util.js +4 -24
  153. package/.editorconfig +0 -17
  154. package/.nycrc +0 -10
  155. package/cypress-legacy.config.js +0 -47
  156. package/cypress-security.config.js +0 -36
  157. package/e2e-flaky/import/import-user-data-url.spec.js +0 -63
  158. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +0 -42
  159. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +0 -43
  160. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +0 -30
  161. package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +0 -42
  162. package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +0 -39
  163. package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +0 -21
  164. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +0 -44
  165. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +0 -32
  166. package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +0 -38
  167. package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +0 -21
  168. package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +0 -58
  169. package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +0 -140
  170. package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +0 -38
  171. package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +0 -21
  172. package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +0 -43
  173. package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +0 -39
  174. package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +0 -21
  175. package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +0 -40
  176. package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +0 -38
  177. package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +0 -22
  178. package/e2e-legacy/graphql/graphql-theme.spec.js +0 -73
  179. package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +0 -49
  180. package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +0 -89
  181. package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +0 -76
  182. package/e2e-legacy/guides/connectors/connectors-guide.spec.js +0 -163
  183. package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +0 -74
  184. package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +0 -55
  185. package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +0 -92
  186. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +0 -63
  187. package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +0 -105
  188. package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +0 -302
  189. package/e2e-legacy/guides/navigation/navigation-guide.spec.js +0 -64
  190. package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +0 -42
  191. package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +0 -69
  192. package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +0 -167
  193. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +0 -157
  194. package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +0 -92
  195. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +0 -88
  196. package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +0 -372
  197. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +0 -36
  198. package/e2e-legacy/help/guides/guides-autostart.spec.js +0 -126
  199. package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +0 -83
  200. package/e2e-legacy/help/guides/guides-with-repository.spec.js +0 -32
  201. package/e2e-legacy/help/guides/guides-without-repository.spec.js +0 -20
  202. package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +0 -71
  203. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +0 -32
  204. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +0 -20
  205. package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +0 -32
  206. package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +0 -20
  207. package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +0 -182
  208. package/e2e-legacy/home/documentation-link.spec.js +0 -41
  209. package/e2e-legacy/home/home-page-with-selected-repository.spec.js +0 -69
  210. package/e2e-legacy/home/home-page-without-repositories.spec.js +0 -87
  211. package/e2e-legacy/home/home-page-without-selected-repository.spec.js +0 -59
  212. package/e2e-legacy/home/rdf-resource-search.spec.js +0 -160
  213. package/e2e-legacy/home/view-resource-autocomplete.spec.js +0 -65
  214. package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +0 -51
  215. package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +0 -45
  216. package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +0 -28
  217. package/e2e-legacy/license/license-with-repository.spec.js +0 -113
  218. package/e2e-legacy/license/license-without-repository.spec.js +0 -103
  219. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +0 -36
  220. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +0 -25
  221. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +0 -39
  222. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +0 -21
  223. package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +0 -32
  224. package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +0 -20
  225. package/e2e-legacy/not-found/not-found.spec.js +0 -23
  226. package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +0 -181
  227. package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +0 -40
  228. package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +0 -21
  229. package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +0 -40
  230. package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +0 -27
  231. package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +0 -34
  232. package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +0 -25
  233. package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +0 -41
  234. package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +0 -21
  235. package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +0 -39
  236. package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +0 -27
  237. package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +0 -44
  238. package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +0 -27
  239. package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +0 -38
  240. package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +0 -28
  241. package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +0 -40
  242. package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +0 -30
  243. package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +0 -40
  244. package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +0 -28
  245. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +0 -86
  246. package/e2e-legacy/setup/settings/my-settings.spec.js +0 -207
  247. package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +0 -39
  248. package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +0 -29
  249. package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +0 -25
  250. package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +0 -33
  251. package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +0 -26
  252. package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +0 -54
  253. package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -106
  254. package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +0 -80
  255. package/e2e-legacy/ttyg/edit-agent.spec.js +0 -178
  256. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +0 -46
  257. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +0 -45
  258. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +0 -21
  259. package/e2e-security/repository/url-with-repository-id-parameter.spec.js +0 -57
  260. package/e2e-security/setup/home/cookie-policy.spec.js +0 -290
  261. package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +0 -193
  262. package/e2e-security/setup/users-and-access/graphql-user.spec.js +0 -126
  263. package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +0 -70
  264. package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +0 -99
  265. package/e2e-security/setup/users-and-access/user-and-access.spec.js +0 -87
  266. package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +0 -38
  267. package/eslint.config.js +0 -39
  268. package/fixtures/graph/graph-configurations.json +0 -59
  269. package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +0 -12
  270. package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +0 -35
  271. package/fixtures/guides/class-relations/class-relations-guide.json +0 -33
  272. package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +0 -15
  273. package/fixtures/guides/connectors/connectors-guide.json +0 -66
  274. package/fixtures/guides/connectors/lucene-connector-guide.json +0 -120
  275. package/fixtures/guides/create-repository/create-repository-guide.json +0 -25
  276. package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +0 -36
  277. package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +0 -25
  278. package/fixtures/guides/download-resource.ttl +0 -629
  279. package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +0 -54
  280. package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +0 -30
  281. package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +0 -21
  282. package/fixtures/guides/main-menu/main-menu-guide.json +0 -98
  283. package/fixtures/guides/navigation/navigation-guide.json +0 -60
  284. package/fixtures/guides/rdf-rank/rdf-rank-guide.json +0 -18
  285. package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +0 -51
  286. package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +0 -25
  287. package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +0 -74
  288. package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +0 -26
  289. package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +0 -22
  290. package/fixtures/guides/visual-graph/visual-graph-config-guide.json +0 -39
  291. package/fixtures/guides/visual-graph/visual-graph-guide.json +0 -85
  292. package/fixtures/guides/welcome/welcome-guide.json +0 -18
  293. package/fixtures/repositories/free-access.json +0 -13
  294. package/fixtures/similarity/get-ttyg-similarity-instances.json +0 -10
  295. package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +0 -44
  296. package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +0 -79
  297. package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +0 -8
  298. package/fixtures/ttyg/agent/get-similarity-indexes.json +0 -22
  299. package/fixtures/ttyg/chats/ask-question-cancel.json +0 -12
  300. package/fixtures/ttyg/chats/cancel-question-response.json +0 -1
  301. package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +0 -29
  302. package/fixtures/ttyg/chats/explain-response-3.json +0 -12
  303. package/steps/base-steps.js +0 -29
  304. package/steps/cookie-policy/cookie-consent-banner-steps.js +0 -21
  305. package/steps/cookie-policy/cookie-policy-modal.steps.js +0 -56
  306. package/steps/error-page-steps.js +0 -9
  307. package/steps/explore/class-relationships-steps.js +0 -64
  308. package/steps/graphql/playground-editor-steps.js +0 -46
  309. package/steps/header-steps.js +0 -22
  310. package/steps/monitoring/queries-and-updates-steps.js +0 -20
  311. package/steps/monitoring/system-monitoring-steps.js +0 -40
  312. package/steps/not-found/not-found-steps.js +0 -23
  313. package/steps/rdf-resource-search-steps.js +0 -55
  314. package/steps/rest-api-documentation-steps.js +0 -15
  315. package/steps/setup/connectors-steps.js +0 -32
  316. package/steps/shared-modal-dialog-steps.js +0 -45
  317. package/steps/system-information-steps.js +0 -70
  318. package/steps/widgets/active-repository-widget-steps.js +0 -29
  319. package/steps/widgets/license-widget-steps.js +0 -9
  320. package/steps/widgets/repository-errors-widget-steps.js +0 -21
  321. package/steps/widgets/saved-sparql-queries-widget-steps.js +0 -9
  322. package/stubs/browser-stubs.js +0 -21
  323. package/stubs/graph-config-stubs.js +0 -17
  324. package/stubs/guides/guides-stubs.js +0 -103
  325. package/stubs/saved-queries-stubs.js +0 -5
  326. package/stubs/sparql-stubs.js +0 -10
  327. package/support/connector-commands.js +0 -13
  328. package/support/e2e-security.js +0 -9
  329. package/support/url-commands.js +0 -13
  330. package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
  331. package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
  332. package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
  333. package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
  334. package/{e2e-legacy → integration}/cluster/cluster-legend.spec.js +0 -0
  335. package/{e2e-legacy → integration}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
  336. package/{e2e-legacy → integration}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
  337. package/{e2e-legacy → integration}/graphql/delete-graphql-endpoint.spec.js +0 -0
  338. package/{e2e-legacy → integration}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
  339. package/{e2e-legacy → integration}/graphql/set-default-graphql-endpoint.spec.js +0 -0
  340. package/{e2e-legacy/help/system-information → integration/help}/system-information.spec.js +0 -0
  341. package/{e2e-legacy → integration}/home/create-repository.spec.js +0 -0
  342. package/{e2e-legacy → integration}/import/import-server-files-batch-operations.spec.js +0 -0
  343. package/{e2e-legacy → integration}/import/import-user-data-settings-dialog.spec.js +0 -0
  344. package/{e2e-legacy → integration}/import/import-view.spec.js +0 -0
  345. package/{e2e-legacy → integration}/repository/attach-remote-location.spec.js +1 -1
  346. /package/{e2e-legacy → integration}/repository/repository-commands.spec.js +0 -0
  347. /package/{e2e-legacy → integration}/setup/aclmanagement/delete-rule.spec.js +0 -0
  348. /package/{e2e-legacy → integration}/setup/aclmanagement/edit-rule.spec.js +0 -0
  349. /package/{e2e-legacy → integration}/setup/aclmanagement/render-rules.spec.js +0 -0
  350. /package/{e2e-legacy → integration}/setup/aclmanagement/reorder-rules.spec.js +0 -0
  351. /package/{e2e-legacy → integration}/setup/aclmanagement/revert-rules.spec.js +0 -0
  352. /package/{e2e-legacy → integration}/setup/aclmanagement/scopes.spec.js +0 -0
  353. /package/{e2e-legacy → integration}/setup/aclmanagement/update-rules.spec.js +0 -0
  354. /package/{e2e-legacy → integration}/setup/jdbc/jdbc.spec.js +0 -0
  355. /package/{e2e-legacy → integration}/sparql-editor/actions/execute-query.spec.js +0 -0
  356. /package/{e2e-legacy → integration}/sparql-editor/actions/save-query.spec.js +0 -0
  357. /package/{e2e-legacy → integration}/sparql-editor/internationalization.spec.js +0 -0
  358. /package/{e2e-legacy → integration}/sparql-editor/saved-query/delete-query.spec.js +0 -0
  359. /package/{e2e-legacy → integration}/sparql-editor/sparql-editor.spec.js +0 -0
  360. /package/{e2e-legacy → integration}/sparql-editor/yasr/download-as.spec.js +0 -0
  361. /package/{e2e-flaky → integration-flaky}/import/import.server.files.spec.js +0 -0
  362. /package/{e2e-flaky → integration-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
  363. /package/{e2e-flaky → integration-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
@@ -0,0 +1,60 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+ import {EnvironmentStubs} from "../../stubs/environment-stubs";
3
+
4
+ describe('Documentation links resolver', () => {
5
+
6
+ beforeEach(() => {
7
+ cy.viewport(1280, 1000);
8
+ });
9
+
10
+ it('Should link to master version when in dev mode', () => {
11
+ HomeSteps.visit();
12
+ EnvironmentStubs.stubWbDevMode();
13
+ HomeSteps.clickHelpMenu();
14
+ // Assert that links point to the master version
15
+ assertDocumentationLinks('master');
16
+ });
17
+
18
+ it('Should link to master version when in prod mode and unofficial version', () => {
19
+ EnvironmentStubs.stubProductInfo('10.8-TR1-test');
20
+ HomeSteps.visit();
21
+ EnvironmentStubs.stubWbProdMode();
22
+ HomeSteps.clickHelpMenu();
23
+ // Assert that links point to the master version
24
+ assertDocumentationLinks('master');
25
+ });
26
+
27
+ it('Should link to GDB version when in prod mode and official version', () => {
28
+ EnvironmentStubs.stubProductInfo('10.8');
29
+ HomeSteps.visit();
30
+ EnvironmentStubs.stubWbProdMode();
31
+ HomeSteps.clickHelpMenu();
32
+ // Assert that links point to the specific GDB version
33
+ assertDocumentationLinks('10.8');
34
+ });
35
+ });
36
+
37
+ function assertDocumentationLinks(version) {
38
+ const baseUrl = `https://graphdb.ontotext.com/documentation/${version}`;
39
+
40
+ HomeSteps.getDocumentationLink()
41
+ .should('exist')
42
+ .and('be.visible')
43
+ .find('a')
44
+ .should('have.attr', 'href', `${baseUrl}/index.html`)
45
+ .and('contain.text', 'Documentation');
46
+
47
+ HomeSteps.getTutorialsLink()
48
+ .should('exist')
49
+ .and('be.visible')
50
+ .find('a')
51
+ .should('have.attr', 'href', `${baseUrl}/tutorials.html`)
52
+ .and('contain.text', 'Tutorials');
53
+
54
+ HomeSteps.getSupportLink()
55
+ .should('exist')
56
+ .and('be.visible')
57
+ .find('a')
58
+ .should('have.attr', 'href', `${baseUrl}/support.html`)
59
+ .and('contain.text', 'Support');
60
+ }
@@ -11,9 +11,9 @@ describe('Google analytics', () => {
11
11
  // Note: Google API calls are stubbed for all specs in support/index.js
12
12
  it('Should set GA tracking code in header and a cookie when free license and prodMode', () => {
13
13
  LicenseStubs.stubFreeLicense();
14
- HomeSteps.visitInProdMode();
14
+ HomeSteps.visit();
15
+ EnvironmentStubs.stubWbProdMode();
15
16
 
16
- // Check if the GA tracking script is set correctly in the head
17
17
  cy.document()
18
18
  .get('head script')
19
19
  .should("have.attr", "src")
@@ -28,7 +28,8 @@ describe('Google analytics', () => {
28
28
 
29
29
  it('Should set GA tracking code in header and cookie when evaluation enterprise license and prodMode', () => {
30
30
  LicenseStubs.stubEvaluationLicense();
31
- HomeSteps.visitInProdMode();
31
+ HomeSteps.visit();
32
+ EnvironmentStubs.stubWbProdMode();
32
33
 
33
34
  cy.document()
34
35
  .get('head script')
@@ -44,7 +45,8 @@ describe('Google analytics', () => {
44
45
 
45
46
  it('Should NOT set GA tracking code in header and cookie when enterprise license in prodMode', () => {
46
47
  LicenseStubs.stubEnterpriseLicense();
47
- HomeSteps.visitInProdMode();
48
+ HomeSteps.visit();
49
+ EnvironmentStubs.stubWbProdMode();
48
50
 
49
51
  cy.document()
50
52
  .get('head script')
@@ -23,7 +23,7 @@ describe('Home screen language validation', () => {
23
23
  cy.enableAutocomplete(repositoryId);
24
24
  cy.presetRepository(repositoryId);
25
25
 
26
- HomeSteps.hideTutorial();
26
+ HomeSteps.declineTutorial();
27
27
 
28
28
  // When I visit home page with selected repository
29
29
  HomeSteps.visitAndWaitLoader();
@@ -42,4 +42,4 @@ describe('Home screen language validation', () => {
42
42
  HomeSteps.getLicenseAsLabel().should('have.text', 'Licence');
43
43
  });
44
44
  });
45
- });
45
+ })
@@ -0,0 +1,19 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+
3
+ describe('Language selector', () => {
4
+
5
+ beforeEach(() => {
6
+ cy.viewport(1280, 1000);
7
+ HomeSteps.visitAndWaitLoader();
8
+ });
9
+
10
+ it('Should be able to change the language', () => {
11
+ cy.get('#languageGroupDrop')
12
+ .should('be.visible')
13
+ .click()
14
+ .then(() => {
15
+ cy.get('.dropdown-menu .dropdown-item')
16
+ .should('have.length.at.least', 1);
17
+ });
18
+ });
19
+ });
@@ -0,0 +1,177 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+
3
+ const FILE_TO_IMPORT = 'wine.rdf';
4
+
5
+ describe('RDF resource search', () => {
6
+ let repositoryId;
7
+ beforeEach(() => {
8
+ cy.viewport(1280, 1000);
9
+ repositoryId = '23repo' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.initializeRepository(repositoryId);
12
+ cy.enableAutocomplete(repositoryId);
13
+ });
14
+
15
+ afterEach(() => {
16
+ cy.deleteRepository(repositoryId);
17
+ });
18
+
19
+ it('Search button should not be present when no repo is selected', () => {
20
+ HomeSteps.visitAndWaitLoader();
21
+ // Given the page has loaded the license label (otherwise locally test passes after the loader disappears and before other elements are rendered)
22
+ HomeSteps.getLicenseAsLabel().should('be.visible');
23
+ cy.get('.search-rdf-btn').should('not.exist');
24
+ cy.get('.search-rdf-input').should('not.exist');
25
+ });
26
+
27
+ it('Search should be made from home page search when repo is set and on home page', () => {
28
+ // When I visit home page with selected repository
29
+ cy.presetRepository(repositoryId);
30
+ HomeSteps.visitAndWaitLoader();
31
+ // Search rdf button should be visible
32
+ cy.get('.search-rdf-btn').should('be.visible');
33
+ // When I click the button
34
+ HomeSteps.doNotOpenRdfSearchBoxButFocusResourceSearch();
35
+ // I should be able to type some text in the input on home page
36
+ cy.get('#search-resource-input-home > #search-resource-box > input').type('hasPos');
37
+ // And the autocomplete dropdown should become visible
38
+ cy.get('#search-resource-input-home > #auto-complete-results-wrapper').should('be.visible');
39
+ // // When I click the close button
40
+ cy.get('#search-resource-input-home > #search-resource-box > .clear-icon').click();
41
+ // // The input should be cleared
42
+ cy.get('#search-resource-input-home > #search-resource-box > input').should('have.value', '');
43
+ });
44
+
45
+ it('Search should be present when repo is set', () => {
46
+ // When I visit not home page with selected repository
47
+ cy.presetRepository(repositoryId);
48
+ cy.visit('/graphs');
49
+ cy.get('.ot-splash').should('not.be.visible');
50
+ cy.get('.ot-loader-new-content').should('not.exist');
51
+ // Search rdf button should be visible
52
+ cy.get('.search-rdf-btn').should('be.visible');
53
+ // When I click the button
54
+ HomeSteps.openRdfSearchBox();
55
+ // I should be able to type some text in the input
56
+ cy.get('.search-rdf-input search-resource-input .view-res-input').type('hasPos');
57
+ // And the autocomplete dropdown should become visible
58
+ cy.get('.search-rdf-input #auto-complete-results-wrapper').should('be.visible');
59
+ // When I click the close button
60
+ cy.get('.close-rdf-search-btn').click();
61
+ // The input should not be cleared
62
+ cy.get('.search-rdf-input search-resource-input .view-res-input').should('have.value', 'hasPos');
63
+ // And the search bar should hide and not be visible
64
+ cy.get('.search-rdf-input').should('not.be.visible');
65
+ // And the suggestions list should not be visible
66
+ cy.get('.search-rdf-input #auto-complete-results-wrapper').should('not.be.visible');
67
+ // And the search button should be visible
68
+ cy.get('.search-rdf-btn').should('be.visible');
69
+ // When I open again the search box
70
+ HomeSteps.openRdfSearchBox();
71
+ // The input should have value 'hasPos'
72
+ cy.get('.search-rdf-input search-resource-input .view-res-input').should('have.value', 'hasPos');
73
+ // And dropdown should be visible
74
+ cy.get('.search-rdf-input #auto-complete-results-wrapper').should('be.visible');
75
+ // When I press 'escape'
76
+ cy.get('.search-rdf-input search-resource-input .view-res-input').type('{esc}');
77
+ // Search box should not be visible
78
+ cy.get('.search-rdf-input').should('not.be.visible');
79
+ });
80
+
81
+ it('Search should be persisted on page reload', () => {
82
+ // Given I've selected a repository and visit the page
83
+ cy.presetRepository(repositoryId);
84
+ cy.visit('/graphs', {
85
+ onBeforeLoad(win) {
86
+ cy.stub(win, 'open').as('window.open');
87
+ }
88
+ });
89
+ cy.get('.ot-splash').should('not.be.visible');
90
+ cy.get('.ot-loader-new-content').should('not.exist');
91
+ // Search rdf button should be visible
92
+ cy.get('.search-rdf-btn').should('be.visible');
93
+ // When I click the button
94
+ HomeSteps.openRdfSearchBox();
95
+ // I should be able to type some text in the input
96
+ cy.get('.search-rdf-input search-resource-input .view-res-input')
97
+ .type('hasPos').then(() => {
98
+ // When I select option from suggestions
99
+ cy.get(".search-rdf-input #auto-complete-results-wrapper p")
100
+ .contains('hasPos')
101
+ .click()
102
+ .then(() => {
103
+ // Search result should be opened in new window
104
+ cy.get('@window.open').should('be.calledWith', 'resource?uri=http%3A%2F%2Fwww.w3.org%2Fns%2Forg%23hasPost');
105
+ });
106
+ });
107
+
108
+ // When I revisit the home page
109
+ cy.visit('/graphs');
110
+ // When I open again the search box
111
+ HomeSteps.openRdfSearchBox();
112
+ // The input should have value 'hasPos' from previous search
113
+ cy.get('.search-rdf-input search-resource-input .view-res-input').should('have.value', 'hasPos');
114
+ // And dropdown should be visible
115
+ cy.get('.search-rdf-input #auto-complete-results-wrapper').should('be.visible');
116
+ // When I press 'escape'
117
+ cy.get('.search-rdf-input search-resource-input .view-res-input')
118
+ .type('{esc}')
119
+ .then(() => {
120
+ // Search box should not be visible
121
+ cy.get('.search-rdf-input').should('not.be.visible');
122
+ });
123
+ });
124
+
125
+ it('Should test RDF resource search box', () => {
126
+ //Prepare repository and import data.
127
+ cy.presetRepository(repositoryId);
128
+ cy.importServerFile(repositoryId, FILE_TO_IMPORT);
129
+ HomeSteps.visitAndWaitLoader();
130
+
131
+ //Verify that the main resource search box is focused
132
+ getRDFResourceSearchBox().click();
133
+ cy.focused().should('have.attr', 'placeholder', 'Search RDF resources...');
134
+
135
+ //Navigate away from the Homepage, to be able to test the new resource search box
136
+ cy.visit('/graphs', {
137
+ onBeforeLoad(win) {
138
+ cy.stub(win, 'open').as('window.open');
139
+ }
140
+ });
141
+
142
+ cy.get('.ot-splash').should('not.be.visible');
143
+ cy.get('.ot-loader-new-content').should('not.exist');
144
+
145
+ getRDFResourceSearchBox().click();
146
+ //Verify that the new resource search box is focused
147
+ cy.focused().should('have.attr', 'placeholder', 'Search RDF resources...');
148
+
149
+ //Verify autocomplete suggestions count
150
+ cy.focused().then(() => {
151
+ cy.get('#search-resource-box input')
152
+ .should('be.visible')
153
+ .type('Dry');
154
+ cy.get('#auto-complete-results-wrapper')
155
+ .should('be.visible')
156
+ .children()
157
+ .should('have.length', 7);
158
+ });
159
+
160
+ //Test table and visual buttons.
161
+ cy.get("#auto_0").should('be.visible').click();
162
+ // Search result should be opened in new window
163
+ cy.get('@window.open').should('be.calledWith', 'resource?uri=http%3A%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23Dry');
164
+
165
+ getVisualButton().click();
166
+ cy.get("#auto_0").should('be.visible').click();
167
+ cy.get('@window.open').should('be.calledWith', 'graphs-visualizations?uri=http%3A%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23Dry');
168
+ });
169
+ });
170
+
171
+ function getRDFResourceSearchBox() {
172
+ return cy.get('rdf-resource-search').should('be.visible');
173
+ }
174
+
175
+ function getVisualButton() {
176
+ return cy.get('.display-type-visual-btn').should('be.visible');
177
+ }
@@ -0,0 +1,52 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+
3
+ describe('View resource autocomplete', () => {
4
+
5
+ const FOAT_SNIPPET = '@base <http://example.org/> .\n' +
6
+ '@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
7
+ '<#green-goblin>\n' +
8
+ 'a foaf:Person ; # in the context of the Marvel universe\n' +
9
+ 'foaf:name "Green Goblin" .\n';
10
+ const GOBLIN_URI = 'http://example.org/#green-goblin';
11
+
12
+ beforeEach(() => {
13
+ cy.viewport(1280, 1000);
14
+ });
15
+
16
+ it('Test homepage autocomplete when it is enabled', () => {
17
+ const repositoryId = HomeSteps.createRepo();
18
+ HomeSteps.selectRepo(repositoryId);
19
+
20
+ // Type an invalid resource
21
+ HomeSteps.getAutocompleteInput().type('hfsafa');
22
+ HomeSteps.noAutocompleteToast();
23
+
24
+ cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
25
+ cy.enableAutocomplete(repositoryId);
26
+
27
+ HomeSteps.visitAndWaitLoader(true).then((el) => el)
28
+ .then(() => HomeSteps.getAutocompleteDisplayTypeButton('table').click())
29
+ .then(() => HomeSteps.autocompleteText('Green', GOBLIN_URI))
30
+ .then(() => HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click())
31
+ .then(() => // Search result should be opened in new window
32
+ cy.get('@window.open').should('be.calledWith', 'resource?uri=http%3A%2F%2Fexample.org%2F%23green-goblin'))
33
+ .then(() => HomeSteps.getAutocompleteDisplayTypeButton('visual').click())
34
+ .then(() => HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click())
35
+ .then(() => // Search result should be opened in new window
36
+ cy.get('@window.open').should('be.calledWith', 'graphs-visualizations?uri=http%3A%2F%2Fexample.org%2F%23green-goblin'));
37
+ cy.deleteRepository(repositoryId);
38
+ });
39
+
40
+ it('should not suggest resources in "View resources" when autocomplete is not enabled', () => {
41
+ const repositoryId = HomeSteps.createRepo();
42
+ cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
43
+
44
+ HomeSteps.visitAndWaitLoader();
45
+ HomeSteps.selectRepo(repositoryId);
46
+
47
+ HomeSteps.getAutocompleteInput().type('Green');
48
+ HomeSteps.noAutocompleteToast();
49
+
50
+ cy.deleteRepository(repositoryId);
51
+ });
52
+ });
@@ -0,0 +1,30 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+
3
+ describe('Home screen validation', () => {
4
+
5
+ beforeEach(() => {
6
+ cy.viewport(1280, 1000);
7
+ HomeSteps.visitAndWaitLoader();
8
+ });
9
+
10
+ context('First visit', () => {
11
+ it('Verify that tutorial panel exists', () => {
12
+ HomeSteps.verifyTutorialVisible(true);
13
+ });
14
+
15
+ it('Test tutorial text', () => {
16
+ HomeSteps.verifyTutorialText(0, 'Welcome to GraphDB');
17
+ HomeSteps.verifyTutorialText(1, 'Create a repository');
18
+ HomeSteps.verifyTutorialText(2, 'Load a sample dataset');
19
+ HomeSteps.verifyTutorialText(3, 'Run a SPARQL query');
20
+ HomeSteps.verifyTutorialText(4, 'REST API');
21
+ });
22
+
23
+ it('Verify that tutorial panel disappears if "No, thanks button" is clicked', () => {
24
+ // Verify that tutorial panel is still visible
25
+ HomeSteps.verifyTutorialVisible(true);
26
+ HomeSteps.declineTutorial();
27
+ HomeSteps.verifyTutorialVisible(false);
28
+ });
29
+ });
30
+ });
@@ -28,7 +28,7 @@ describe('Import server files', () => {
28
28
  // When I switch to the server files tab
29
29
  ImportUserDataSteps.openServerFilesTab();
30
30
  // Then Server files tab should be active
31
- cy.url().should('include', '/import').and('include', '#server');
31
+ cy.url().should('include', '/import#server');
32
32
  ImportServerFilesSteps.getActiveTab().should('have.text', 'Server files');
33
33
  ImportServerFilesSteps.getResourcesTable().should('be.visible');
34
34
  });
@@ -37,7 +37,7 @@ describe('Import server files', () => {
37
37
  // When I visit the import page through a direct link to the server files tab
38
38
  cy.visit('/import#server');
39
39
  // Then Server files tab should be active
40
- cy.url().should('include', '/import').and('include', '#server');
40
+ cy.url().should('include', '/import#server');
41
41
  ImportServerFilesSteps.getActiveTab().should('have.text', 'Server files');
42
42
  ImportServerFilesSteps.getResourcesTable().should('be.visible');
43
43
  });
@@ -127,9 +127,7 @@ describe('Import server files', () => {
127
127
  ImportResourceMessageDialog.getDialog().should('be.visible');
128
128
 
129
129
  // with full error message
130
- ImportResourceMessageDialog
131
- .getMessage()
132
- .should('contain.text', 'RDF Parse Error: The element type "ex:looooooooooooooooooooooooooooooooongTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame" must be terminated by the matching end-tag');
130
+ ImportResourceMessageDialog.getMessage().should('have.value', 'RDF Parse Error: The element type "ex:looooooooooooooooooooooooooooooooongTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame" must be terminated by the matching end-tag "</ex:looooooooooooooooooooooooooooooooongTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame>". [line 9, column 6]');
133
131
 
134
132
  // When I click on corner close button.
135
133
  ImportResourceMessageDialog.close();
@@ -1,7 +1,7 @@
1
1
  import {ImportSettingsDialogSteps} from "../../steps/import/import-settings-dialog-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
2
3
  import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
3
4
  import {FileOverwriteDialogSteps} from "../../steps/import/file-overwrite-dialog-steps";
4
- import {HeaderSteps} from '../../steps/header-steps.js';
5
5
 
6
6
  const bnodes = `_:node0 <http://purl.org/dc/elements/1.1/title> "A new book" ;
7
7
  \t<http://purl.org/dc/elements/1.1/creator> "A.N.Other" .`;
@@ -15,6 +15,7 @@ const jsonld = JSON.stringify({
15
15
  });
16
16
 
17
17
  describe('Import user data: File upload', () => {
18
+
18
19
  let repositoryId;
19
20
  const testFiles = [
20
21
  'bnodes.ttl',
@@ -38,8 +39,7 @@ describe('Import user data: File upload', () => {
38
39
  // Given there are no files uploaded yet
39
40
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
40
41
  // When I start to upload a file
41
- const file1 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
42
- ImportUserDataSteps.selectFile(file1);
42
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
43
43
  // Then the import settings dialog should open automatically
44
44
  ImportSettingsDialogSteps.getDialog().should('be.visible');
45
45
  ImportSettingsDialogSteps.import();
@@ -63,8 +63,7 @@ describe('Import user data: File upload', () => {
63
63
  // Given there are no files uploaded yet
64
64
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
65
65
  // And I have selected to upload a file
66
- const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
67
- ImportUserDataSteps.selectFile(file);
66
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
68
67
  ImportSettingsDialogSteps.getDialog().should('be.visible');
69
68
  // When I cancel the file upload via the cancel button
70
69
  ImportSettingsDialogSteps.cancelUpload();
@@ -73,7 +72,7 @@ describe('Import user data: File upload', () => {
73
72
  // And there should be no files uploaded
74
73
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
75
74
  // When I select to upload a file again
76
- ImportUserDataSteps.selectFile(file);
75
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
77
76
  // Then the import settings dialog should open
78
77
  ImportSettingsDialogSteps.getDialog().should('be.visible');
79
78
  // And I close the file upload dialog via the close button
@@ -88,8 +87,7 @@ describe('Import user data: File upload', () => {
88
87
  // Given there are no files uploaded yet
89
88
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
90
89
  // When I start to upload a file
91
- const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
92
- ImportUserDataSteps.selectFile(file);
90
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
93
91
  // Then the import settings dialog should open automatically
94
92
  ImportSettingsDialogSteps.getDialog().should('be.visible');
95
93
  // And the option for replace graph should be active
@@ -100,24 +98,21 @@ describe('Import user data: File upload', () => {
100
98
  // Given there are no files uploaded yet
101
99
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
102
100
  // When I upload a file
103
- const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
104
- ImportUserDataSteps.selectFile(file);
101
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
105
102
  // Then the import settings dialog should open automatically
106
103
  ImportSettingsDialogSteps.getDialog().should('be.visible');
107
104
  ImportSettingsDialogSteps.import();
108
105
  // Then I should see the uploaded file
109
106
  ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
110
107
  // When I upload another file
111
- const file2 = ImportUserDataSteps.createFile(testFiles[1], jsonld);
112
- ImportUserDataSteps.selectFile(file2);
108
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[1], jsonld));
113
109
  ImportSettingsDialogSteps.getDialog().should('be.visible');
114
110
  ImportSettingsDialogSteps.import();
115
111
  // Then I should see the uploaded file - it becomes first in the list
116
112
  ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
117
113
  ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
118
114
  // When I override the first file
119
- const file3 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
120
- ImportUserDataSteps.selectFile(file3);
115
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
121
116
  FileOverwriteDialogSteps.overwrite();
122
117
  ImportSettingsDialogSteps.getDialog().should('be.visible');
123
118
  ImportSettingsDialogSteps.import();
@@ -126,7 +121,7 @@ describe('Import user data: File upload', () => {
126
121
  ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
127
122
  ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
128
123
  // When I override the second file
129
- ImportUserDataSteps.selectFile(file2);
124
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[1], jsonld));
130
125
  FileOverwriteDialogSteps.overwrite();
131
126
  ImportSettingsDialogSteps.getDialog().should('be.visible');
132
127
  ImportSettingsDialogSteps.import();
@@ -139,8 +134,7 @@ describe('Import user data: File upload', () => {
139
134
  // Given there are no files uploaded yet
140
135
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
141
136
  // When I start to upload a file
142
- const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
143
- ImportUserDataSteps.selectFile(file);
137
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
144
138
  // Then the import settings dialog should open automatically
145
139
  ImportSettingsDialogSteps.getDialog().should('be.visible');
146
140
  ImportSettingsDialogSteps.uploadOnly();
@@ -148,7 +142,7 @@ describe('Import user data: File upload', () => {
148
142
  ImportUserDataSteps.getResources().should('have.length', 1);
149
143
  ImportUserDataSteps.checkUserDataUploadedResource(0, 'bnodes.ttl');
150
144
  // And the file should really be there
151
- HeaderSteps.openHomePage();
145
+ MainMenuSteps.openHomePage();
152
146
  ImportUserDataSteps.visit();
153
147
  ImportUserDataSteps.getResources().should('have.length', 1);
154
148
  });
@@ -168,7 +162,7 @@ describe('Import user data: File upload', () => {
168
162
  ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
169
163
  ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
170
164
  // And the files should really be there
171
- HeaderSteps.openHomePage();
165
+ MainMenuSteps.openHomePage();
172
166
  ImportUserDataSteps.visit();
173
167
  ImportUserDataSteps.getResources().should('have.length', 2);
174
168
  });
@@ -127,6 +127,7 @@ describe('Import user data: Text snippet', () => {
127
127
 
128
128
  // Go to Graphs overview
129
129
  cy.visit('/graphs');
130
+ cy.get('.ot-splash').should('not.be.visible');
130
131
 
131
132
  const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
132
133
 
@@ -215,6 +216,7 @@ describe('Import user data: Text snippet', () => {
215
216
 
216
217
  // Go to Graphs overview
217
218
  cy.visit('/graphs');
219
+ cy.get('.ot-splash').should('not.be.visible');
218
220
 
219
221
  const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
220
222
 
@@ -77,4 +77,27 @@ describe('Import user data: URL import', () => {
77
77
  ImportSettingsDialogSteps.import();
78
78
  ImportUserDataSteps.checkImportedResource(0, IMPORT_URL);
79
79
  });
80
+
81
+ it('should import JSON-LD file via URL with correct request body', () => {
82
+ ImportUserDataSteps.stubPostJSONLDFromURL(repositoryId);
83
+ ImportUserDataSteps.openImportURLDialog(IMPORT_JSONLD_URL);
84
+ ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
85
+ ImportUserDataSteps.clickImportUrlButton();
86
+ ImportSettingsDialogSteps.import();
87
+ cy.wait('@postJsonldUrl').then((xhr) => {
88
+ expect(xhr.request.body.name).to.eq('https://example.com/0007-context.jsonld');
89
+ expect(xhr.request.body.data).to.eq('https://example.com/0007-context.jsonld');
90
+ expect(xhr.request.body.type).to.eq('url');
91
+ expect(xhr.request.body.hasContextLink).to.be.true;
92
+ });
93
+ });
94
+
95
+ it('should show error on invalid JSON-LD URL', () => {
96
+ ImportUserDataSteps.stubPostJSONLDFromURL();
97
+ ImportUserDataSteps.openImportURLDialog(IMPORT_JSONLD_URL);
98
+ ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
99
+ ImportUserDataSteps.clickImportUrlButton();
100
+ ImportSettingsDialogSteps.import();
101
+ ImportUserDataSteps.checkImportedResource(0, IMPORT_JSONLD_URL, 'https://example.com/0007-context.jsonld');
102
+ });
80
103
  });
@@ -25,21 +25,14 @@ describe('Import user data', () => {
25
25
  // Given I have visited the import page
26
26
  ImportUserDataSteps.visit();
27
27
  // When the page is loaded
28
- cy.url().should('include', '/import').and('include', '#user');
28
+ cy.url().should('include', '/import#user');
29
29
  // Then I should see the user help icons
30
30
  ImportUserDataSteps.showPageInfoPopover();
31
- ImportUserDataSteps.getPageInfoPopoverTitle()
32
- .should('be.visible')
33
- .and('not.be.empty');
34
31
  ImportUserDataSteps.getPageInfoPopover()
35
32
  .should('be.visible')
36
33
  .find('a')
37
- .should('contain.text', 'Learn more in the GraphDB documentation')
38
- .invoke('attr', 'href')
39
- .then((href) => {
40
- expect(href).to.match(/https:\/\/graphdb\.ontotext\.com\/documentation\/[^/]+\/loading-data-using-the-workbench\.html/);
41
- });
42
-
34
+ .should('have.attr', 'href', 'https://graphdb.ontotext.com/documentation/master/loading-data-using-the-workbench.html')
35
+ .and('contain.text', 'Learn more in the GraphDB documentation');
43
36
  ImportUserDataSteps.hidePageInfoPopover();
44
37
  // And user data import tab should be selected by default
45
38
  ImportUserDataSteps.getActiveTab().should('have.text', 'User data');
@@ -59,7 +52,7 @@ describe('Import user data', () => {
59
52
  ImportUserDataSteps.openServerFilesTabFromWarning();
60
53
  // Then I should see the server files tab
61
54
  ImportUserDataSteps.getActiveTab().should('have.text', 'Server files');
62
- cy.url().should('include', '/import').and('include', '#server');
55
+ cy.url().should('include', '/import#server');
63
56
  ImportUserDataSteps.getServerFilesTab().should('be.visible');
64
57
  // When I click on the API link in the warning
65
58
  ImportUserDataSteps.openUserDataTab();
@@ -9,8 +9,8 @@ describe('License', () => {
9
9
  LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
10
10
 
11
11
  LicenseSteps.getHardcodedAlertMessage().should('exist');
12
- LicenseSteps.getRemoveLicenseButton().should('not.exist');
13
- LicenseSteps.getSetNewLicenseButton().should('not.exist');
12
+ LicenseSteps.getRemoveLicenseLicenseButton().should('not.exist');
13
+ LicenseSteps.getSetNewLicenseElement().should('not.exist');
14
14
  });
15
15
 
16
16
  it('Should not displays an informational message if the license is not provided through a file (not hardcoded)', () => {
@@ -20,7 +20,7 @@ describe('License', () => {
20
20
  LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
21
21
 
22
22
  LicenseSteps.getHardcodedAlertMessage().should('not.exist');
23
- LicenseSteps.getRemoveLicenseButton().should('exist');
24
- LicenseSteps.getSetNewLicenseButton().should('exist');
23
+ LicenseSteps.getRemoveLicenseLicenseButton().should('exist');
24
+ LicenseSteps.getSetNewLicenseElement().should('exist');
25
25
  });
26
26
  });