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
@@ -1,57 +0,0 @@
1
- import {RepositorySelectorSteps} from '../../steps/repository-selector-steps.js';
2
- import {LoginSteps} from '../../steps/login-steps.js';
3
- import {UserAndAccessSteps} from '../../steps/setup/user-and-access-steps.js';
4
- import HomeSteps from '../../steps/home-steps.js';
5
-
6
- describe('URL with Repository ID parameter', () => {
7
- let repositoryId;
8
-
9
- beforeEach(() => {
10
- repositoryId = 'repository-in-url-' + Date.now();
11
- cy.createRepository({id: repositoryId});
12
- cy.presetRepository(repositoryId);
13
- })
14
-
15
- afterEach(() => {
16
- cy.loginAsAdmin();
17
- cy.switchOffSecurity(true);
18
- cy.deleteRepository(repositoryId);
19
- });
20
-
21
- it('should set repositoryId in url after enable security->login', () => {
22
- enableSecurity(repositoryId);
23
- // When user logs in again
24
- LoginSteps.loginWithUser('admin', 'root');
25
- // Then repositoryId parameter should be present in the URL and repository should be selected in the selector
26
- UserAndAccessSteps.getUsersCatalogContainer().should('be.visible');
27
- cy.url().should('include', 'repositoryId=' + repositoryId);
28
- RepositorySelectorSteps.getSelectedRepository().should('contain', repositoryId);
29
- });
30
-
31
- it('should set repositoryId in ur after first login', () => {
32
- // Given security is on
33
- cy.switchOnSecurity();
34
- // And I log in with user admin
35
- LoginSteps.visitLoginPage();
36
- LoginSteps.loginWithUser('admin', 'root');
37
- // Then repositoryId parameter should be present in the URL and repository should be selected in the selector
38
- HomeSteps.getView().should('be.visible');
39
- cy.url().should('include', 'repositoryId=' + repositoryId);
40
- RepositorySelectorSteps.getSelectedRepository().should('contain', repositoryId);
41
- });
42
- });
43
-
44
- function enableSecurity(repositoryId) {
45
- // Given security is off
46
- // When user visits user and access page
47
- UserAndAccessSteps.visit();
48
- // Then url should contain repositoryId parameter and repository should be selected in the selector
49
- cy.url().should('include', 'repositoryId=' + repositoryId);
50
- RepositorySelectorSteps.getSelectedRepository().should('contain', repositoryId);
51
- // When user toggles security on
52
- UserAndAccessSteps.toggleSecurity();
53
- // Then user should be logged out and login page should be shown
54
- LoginSteps.getLoginPage().should('be.visible');
55
- // And repositoryId parameter should not be present in the URL
56
- cy.url().should('not.include', 'repositoryId=');
57
- }
@@ -1,290 +0,0 @@
1
- import {UserAndAccessSteps} from "../../../steps/setup/user-and-access-steps";
2
- import {LicenseStubs} from "../../../stubs/license-stubs";
3
- import {LoginSteps} from "../../../steps/login-steps";
4
- import {ModalDialogSteps} from "../../../steps/modal-dialog-steps";
5
- import {MainMenuSteps} from '../../../steps/main-menu-steps.js';
6
- import {CookieConsentBannerSteps} from '../../../steps/cookie-policy/cookie-consent-banner-steps.js';
7
- import ImportSteps from '../../../steps/import/import-steps.js';
8
- import {CookiePolicyModalSteps} from '../../../steps/cookie-policy/cookie-policy-modal.steps.js';
9
- import {SettingsSteps} from '../../../steps/setup/settings-steps.js';
10
- import {HeaderSteps} from '../../../steps/header-steps.js';
11
-
12
- Cypress.env('set_default_user_data', false);
13
-
14
- describe('Cookie policy', () => {
15
-
16
- let repository;
17
-
18
- beforeEach(() => {
19
- cy.loginAsAdmin().then(() => {
20
- cy.switchOffFreeAccess(true);
21
- cy.switchOffSecurity(true);
22
- });
23
- cy.setDefaultUserData(undefined);
24
- LicenseStubs.stubFreeLicense();
25
- repository = 'cypress-test-cookie-policy-security-' + Date.now();
26
- cy.createRepository({id: repository});
27
- });
28
-
29
- afterEach(() => {
30
- cy.deleteRepository(repository, true);
31
- cy.loginAsAdmin().then(() => {
32
- cy.switchOffFreeAccess(true);
33
- cy.switchOffSecurity(true);
34
- cy.setDefaultUserData(undefined);
35
- });
36
- });
37
-
38
- // Scenario 5
39
- it('should hide cookie consent banner when security is ON and user is logged out', () => {
40
- // Given I open user and access page in prod mode
41
- UserAndAccessSteps.visitInProdMode();
42
- // Then the cookie policy banner should be visible
43
- CookieConsentBannerSteps.getCookieConsentBanner().should('exist').and('be.visible');
44
- // When I enable security
45
- UserAndAccessSteps.toggleSecurity();
46
- // Then I should be logged out
47
- LoginSteps.getLoginPage().should('be.visible');
48
- // And the cookie policy banner should be hidden
49
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
50
- // When I login with admin
51
- LoginSteps.loginWithUser('admin', 'root');
52
- // Then the cookie policy banner should be visible
53
- UserAndAccessSteps.getUsersTable().should('be.visible');
54
- CookieConsentBannerSteps.getCookieConsentBanner().should('exist').and('be.visible');
55
- });
56
-
57
- // Scenario 6
58
- it('should give cookie consent when security is ON', () => {
59
- // Given I open user and access page in prod mode
60
- UserAndAccessSteps.visitInProdMode();
61
- // When I enable security
62
- UserAndAccessSteps.toggleSecurity();
63
- // Then I should be logged out
64
- LoginSteps.getLoginPage().should('be.visible');
65
- // When I login with admin
66
- LoginSteps.loginWithUser('admin', 'root');
67
- // Then I should see the users and access page
68
- UserAndAccessSteps.getUsersTable().should('be.visible');
69
- // Then the cookie policy banner should be visible
70
- CookieConsentBannerSteps.getCookieConsentBanner().should('be.visible');
71
- // When I click OK in the cookie consent banner
72
- CookieConsentBannerSteps.giveCookieConsent();
73
- // Then the cookie policy banner should be hidden
74
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
75
- // When I open another page
76
- MainMenuSteps.clickOnMenuImport();
77
- ImportSteps.getView().should('be.visible');
78
- // Then the cookie policy banner should be hidden
79
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
80
- // When I reload the page
81
- cy.reload();
82
- // Then the cookie policy banner should be hidden
83
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
84
- });
85
-
86
- // Scenario 7
87
- it('should update cookie policy and give cookie consent when security is ON', () => {
88
- // Given I open user and access page in prod mode
89
- UserAndAccessSteps.visitInProdMode();
90
- // And I enable security
91
- UserAndAccessSteps.toggleSecurity();
92
- // And I login with admin
93
- LoginSteps.loginWithUser('admin', 'root');
94
- // When I click on the cookie policy link in the banner
95
- CookieConsentBannerSteps.clickCookiePolicyLink();
96
- // Then I see the cookie policy
97
- CookiePolicyModalSteps.getDialogComponent().should('be.visible');
98
- CookiePolicyModalSteps.validateCookiePolicyDialog(true, true);
99
- // When I toggle off the analytics cookie checkbox
100
- CookiePolicyModalSteps.toggleStatisticCookies();
101
- // And I close the dialog
102
- CookiePolicyModalSteps.closeDialog();
103
- CookiePolicyModalSteps.getDialog().should('not.exist');
104
- // When I reload the page
105
- cy.reload();
106
- // Then I expect to see that analytic cookies are not allowed and third party cookies are allowed
107
- CookieConsentBannerSteps.clickCookiePolicyLink();
108
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, true);
109
- // And I close the cookie policy dialog
110
- CookiePolicyModalSteps.closeDialog();
111
- // When I open my settings page
112
- MainMenuSteps.clickOnMySettings();
113
- // And I open cookie policy modal using the button in the my settings widget
114
- SettingsSteps.clickCookiePolicyLink();
115
- // Then I should see the cookie policy
116
- CookiePolicyModalSteps.getDialogComponent().should('be.visible');
117
- // And I expect to see that analytic cookies are not allowed and third party cookies are allowed
118
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, true);
119
- // When I toggle off third party cookies checkbox
120
- CookiePolicyModalSteps.toggleThirdPartyCookies();
121
- // And I close the modal
122
- CookiePolicyModalSteps.closeDialog();
123
- // When I reopen modal from the widget
124
- SettingsSteps.clickCookiePolicyLink();
125
- // Then I expect to see that analytic cookies are not allowed and third party cookies are not allowed
126
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, false);
127
- CookiePolicyModalSteps.closeDialog();
128
- // When I click OK in the banner
129
- CookieConsentBannerSteps.giveCookieConsent();
130
- // Then I expect the banner to be hidden
131
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
132
- // When I reload the page
133
- cy.reload();
134
- // Then I expect the banner to be hidden
135
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
136
- // When I logout
137
- LoginSteps.logout();
138
- // Then I should see the login page
139
- LoginSteps.getLoginPage().should('be.visible');
140
- // And the cookie policy banner should be hidden
141
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
142
- // When I login with admin
143
- LoginSteps.loginWithUser('admin', 'root');
144
- // Then the cookie policy banner should be hidden
145
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
146
- // When I open cookie policy modal from the widget
147
- SettingsSteps.clickCookiePolicyLink();
148
- // Then I expect to see that analytic cookies are not allowed and third party cookies are not allowed
149
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, false);
150
- // When I toggle on third party cookies checkbox
151
- CookiePolicyModalSteps.toggleThirdPartyCookies();
152
- // And I close the modal
153
- CookiePolicyModalSteps.closeDialog();
154
- // When I reload the page
155
- cy.reload();
156
- // Then I expect to see that analytic cookies are not allowed and third party cookies are allowed
157
- SettingsSteps.clickCookiePolicyLink();
158
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, true);
159
- });
160
-
161
- // Scenario 8
162
- it('should update cookie policy and give cookie consent when security is ON and free access is ON', () => {
163
- // Given I open user and access page in prod mode
164
- UserAndAccessSteps.visitInProdMode();
165
- // And I enable security
166
- UserAndAccessSteps.toggleSecurity();
167
- // And I login with admin
168
- LoginSteps.loginWithUser('admin', 'root');
169
- // And I enable free access
170
- UserAndAccessSteps.toggleFreeAccess();
171
- UserAndAccessSteps.clickFreeWriteAccessRepo(repository);
172
- ModalDialogSteps.clickOKButton();
173
- // Then the cookie policy banner should be visible
174
- CookieConsentBannerSteps.getCookieConsentBanner().and('be.visible');
175
- // When I click on the cookie policy link in the banner
176
- CookieConsentBannerSteps.clickCookiePolicyLink();
177
- // Then I see the cookie policy
178
- CookiePolicyModalSteps.getDialogComponent().should('be.visible');
179
- // And I expect to see that analytic and third party cookies are allowed
180
- CookiePolicyModalSteps.validateCookiePolicyDialog(true, true);
181
- // When I toggle off the analytics cookie checkbox
182
- // The policy is saved on the server
183
- CookiePolicyModalSteps.toggleStatisticCookies();
184
- // And I close the dialog
185
- CookiePolicyModalSteps.closeDialog();
186
- CookiePolicyModalSteps.getDialog().should('not.exist');
187
- // When I logout
188
- HeaderSteps.logout();
189
- // Then I should still see the user and access page but I have no access to it which is unimportant for this test
190
- cy.url().should('include', '/users');
191
- // And the cookie policy banner should be visible
192
- CookieConsentBannerSteps.getCookieConsentBanner().and('be.visible');
193
- // When I click on the cookie policy link in the banner
194
- CookieConsentBannerSteps.clickCookiePolicyLink();
195
- // Then I see the cookie policy
196
- CookiePolicyModalSteps.getDialogComponent().should('be.visible');
197
- // And I expect to see that analytic cookies are allowed and third party cookies are allowed
198
- // (using browser data, because user is logged out)
199
- CookiePolicyModalSteps.validateCookiePolicyDialog(true, true);
200
- // And I close the cookie policy modal
201
- CookiePolicyModalSteps.closeDialog();
202
- // When I open another page
203
- MainMenuSteps.clickOnMenuImport();
204
- // Then the cookie policy banner should be visible
205
- CookieConsentBannerSteps.getCookieConsentBanner().and('be.visible');
206
- // When I give cookie consent
207
- CookieConsentBannerSteps.giveCookieConsent();
208
- // Then the cookie policy banner should be hidden
209
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
210
- // When I open another page
211
- MainMenuSteps.clickOnSparqlMenu();
212
- cy.url().should('include', '/sparql');
213
- // Then the cookie policy banner should be hidden
214
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
215
- // When I reload the page
216
- cy.reload();
217
- // Then the cookie policy banner should be hidden
218
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
219
- // When I login with admin
220
- HeaderSteps.login();
221
- LoginSteps.loginWithUser('admin', 'root');
222
- cy.url().should('include', '/sparql');
223
- // Then the cookie policy banner should be visible (because consent is saved on the server, but user has no changes persisted on server, so defaults are considered)
224
- CookieConsentBannerSteps.getCookieConsentBanner().and('be.visible');
225
- // When I click on the cookie policy link in the banner
226
- CookieConsentBannerSteps.clickCookiePolicyLink();
227
- // Then I see the cookie policy
228
- CookiePolicyModalSteps.getDialogComponent().should('be.visible');
229
- // And I expect to see that analytic cookies are allowed and third party cookies are allowed
230
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, true);
231
- // When I toggle off third party cookies checkbox
232
- CookiePolicyModalSteps.toggleThirdPartyCookies();
233
- // And I close the modal
234
- CookiePolicyModalSteps.closeDialog();
235
- // When I reopen modal from the banner button
236
- CookieConsentBannerSteps.clickCookiePolicyLink();
237
- // Then I expect to see that analytic cookies are allowed and third party cookies are not allowed
238
- CookiePolicyModalSteps.validateCookiePolicyDialog(false, false);
239
- CookiePolicyModalSteps.closeDialog();
240
- // When I logout
241
- HeaderSteps.logout();
242
- // And the cookie policy banner should be hidden (using browser data)
243
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
244
- // When I login with admin
245
- HeaderSteps.login();
246
- LoginSteps.loginWithUser('admin', 'root');
247
- // Then the cookie policy banner should be visible (consent is persisted with the user on server)
248
- CookieConsentBannerSteps.getCookieConsentBanner().should('be.visible');
249
- // When I give cookie consent
250
- CookieConsentBannerSteps.giveCookieConsent();
251
- // Then the cookie policy banner should be hidden
252
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
253
- // When I reload the page
254
- cy.reload();
255
- // Then the cookie policy banner should be hidden
256
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
257
- });
258
-
259
- it('should show the consent popup if free access is on and the user is on the login page', () => {
260
- // Given: Security is enabled and free access is on
261
- UserAndAccessSteps.visitInProdMode();
262
- UserAndAccessSteps.toggleSecurity();
263
- LoginSteps.loginWithUser('admin', 'root');
264
- // And: Free access is enabled
265
- UserAndAccessSteps.getFreeAccessSwitchInput().should('not.be.checked');
266
- UserAndAccessSteps.toggleFreeAccess();
267
- UserAndAccessSteps.clickFreeWriteAccessRepo(repository);
268
- ModalDialogSteps.clickOKButton();
269
-
270
- // When: The user visits the login page
271
- LoginSteps.visitInProdMode();
272
- // Then: The cookie policy popup should be shown
273
- CookieConsentBannerSteps.getCookieConsentBanner().should('exist').and('be.visible');
274
- });
275
-
276
- it('should not show the consent popup if free access is off and the user is on the login page', () => {
277
- // Given: Security is enabled and free access is off
278
- UserAndAccessSteps.visitInProdMode();
279
- UserAndAccessSteps.toggleSecurity();
280
- LoginSteps.loginWithUser('admin', 'root');
281
- UserAndAccessSteps.getFreeAccessSwitchInput().should('not.be.checked');
282
-
283
- // When: The user logs out and visits the login page
284
- LoginSteps.logout();
285
- // Then: The cookie policy popup should not be shown
286
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
287
- LoginSteps.visitInProdMode();
288
- CookieConsentBannerSteps.getCookieConsentBanner().should('not.exist');
289
- });
290
- });
@@ -1,193 +0,0 @@
1
- import {MainMenuSteps} from '../../../steps/main-menu-steps';
2
- import {UserAndAccessSteps} from '../../../steps/setup/user-and-access-steps';
3
- import {LoginSteps} from '../../../steps/login-steps';
4
- import {ToasterSteps} from '../../../steps/toaster-steps';
5
- import {YasqeSteps} from '../../../steps/yasgui/yasqe-steps';
6
- import {YasrSteps} from '../../../steps/yasgui/yasr-steps';
7
-
8
- describe('User Management – Creation, Validation, Permissions & Deletion', () => {
9
- let repositoryId;
10
- const testPassword = 'P@ssw0rd123!';
11
- const testUsername = `testuser-${Date.now()}`;
12
-
13
- beforeEach(() => {
14
- cy.loginAsAdmin();
15
- cy.switchOffSecurity(true);
16
- // Create and initialize a fresh repository for isolation
17
- repositoryId = `repo-${Date.now()}`;
18
- cy.createRepository({ id: repositoryId });
19
- cy.presetRepository(repositoryId);
20
- cy.initializeRepository(repositoryId);
21
-
22
- // Navigate to Users & Access
23
- UserAndAccessSteps.visit();
24
- });
25
-
26
- afterEach(() => {
27
- // Clean up repository
28
- cy.deleteRepository(repositoryId);
29
- cy.deleteUser('user');
30
- });
31
-
32
- describe('Create a new user – validation', () => {
33
- beforeEach(() => {
34
- UserAndAccessSteps.clickCreateNewUserButton();
35
- cy.deleteUser('user');
36
- });
37
-
38
- it('should show error when username is empty', () => {
39
- UserAndAccessSteps.typePassword(testPassword);
40
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
41
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
42
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
43
- UserAndAccessSteps.confirmUserCreate();
44
- UserAndAccessSteps.getUserFieldError('username').should('be.visible').and('contain.text', 'Enter username!');
45
- });
46
-
47
- it('should show error when passwords are empty', () => {
48
- UserAndAccessSteps.typeUsername(testUsername);
49
- UserAndAccessSteps.confirmUserCreate();
50
- UserAndAccessSteps.getUserFieldError('password').should('be.visible').and('contain.text', 'Enter password!');
51
- UserAndAccessSteps.getUserFieldError('confirmPassword').should('be.visible').and('contain.text', 'Confirm password!');
52
- });
53
-
54
- it('should show error when passwords do not match', () => {
55
- UserAndAccessSteps.typeUsername(testUsername);
56
- UserAndAccessSteps.typePassword(testPassword);
57
- UserAndAccessSteps.typeConfirmPasswordField('Different123!');
58
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
59
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
60
- UserAndAccessSteps.confirmUserCreate();
61
- UserAndAccessSteps.getUserFieldError('confirmPassword').should('be.visible').and('contain.text', 'Confirm password!');
62
- });
63
-
64
- it('should show error when username duplicates existing one', () => {
65
- UserAndAccessSteps.typeUsername('user');
66
- UserAndAccessSteps.typePassword(testPassword);
67
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
68
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
69
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
70
- UserAndAccessSteps.confirmUserCreate();
71
-
72
- cy.url().should('include', '/users');
73
- UserAndAccessSteps.clickCreateNewUserButton();
74
- UserAndAccessSteps.typeUsername('user');
75
- UserAndAccessSteps.typePassword(testPassword);
76
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
77
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
78
- UserAndAccessSteps.confirmUserCreate();
79
-
80
- // Using the toaster from the shared components which has different class names
81
-
82
- ToasterSteps.verifyError('An account with the given username already exists.');
83
- cy.deleteUser('user');
84
- });
85
-
86
- it('should show error when no repository read access is given', () => {
87
- UserAndAccessSteps.typeUsername(testUsername);
88
- UserAndAccessSteps.typePassword(testPassword);
89
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
90
- UserAndAccessSteps.confirmUserCreate();
91
- UserAndAccessSteps.getRepositoryRightsError().should('be.visible').and('contain.text', 'Users should have rights to at least one repository!');
92
- });
93
-
94
- it('should show error when custom role is too short', () => {
95
- UserAndAccessSteps.typeUsername(testUsername);
96
- UserAndAccessSteps.typePassword(testPassword);
97
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
98
- UserAndAccessSteps.addTextToCustomRoleField('a');
99
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
100
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
101
- UserAndAccessSteps.getCustomRoleFieldError().should('be.visible').and('contain.text', 'Must be at least 2 symbols long');
102
- });
103
- });
104
-
105
- describe('Create a new user – read/write access', () => {
106
- const rwUsername = `rwuser-${Date.now()}`;
107
-
108
- afterEach(() =>{
109
- cy.loginAsAdmin();
110
- cy.switchOffSecurity(true);
111
- cy.deleteUser(rwUsername);
112
- })
113
-
114
- it('should create, login, and verify permissions', () => {
115
- UserAndAccessSteps.clickCreateNewUserButton();
116
- UserAndAccessSteps.typeUsername(rwUsername);
117
- UserAndAccessSteps.typePassword(testPassword);
118
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
119
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
120
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
121
- UserAndAccessSteps.getWriteAccessForRepo(repositoryId).should('be.checked');
122
- UserAndAccessSteps.confirmUserCreate();
123
- UserAndAccessSteps.toggleSecurity();
124
-
125
- LoginSteps.visitLoginPage();
126
-
127
- LoginSteps.loginWithUser(rwUsername, testPassword);
128
- MainMenuSteps.clickOnSparqlMenu();
129
-
130
- YasqeSteps.clearEditor();
131
- const prefix = 'PREFIX ex: <http://example.org/>\n';
132
- const query = 'INSERT DATA {\n' +
133
- 'ex:greeting ex:text "Hello, world!" .\n' +
134
- '}';
135
- cy.pasteIntoCodeMirror('.CodeMirror', prefix + query);
136
- YasqeSteps.executeQueryWithoutWaiteResult();
137
- // Verify read access
138
- YasrSteps.getResponseInfo()
139
- .should('not.have.class', 'hidden')
140
- .should('not.have.class', 'empty')
141
- .should('be.visible')
142
- .should('contain.text', 'Added 1 statements.');
143
-
144
- LoginSteps.logout();
145
- });
146
- });
147
-
148
- describe('Create a new user – read only access', () => {
149
- const roUsername = `rouser-${Date.now()}`;
150
-
151
- afterEach(() =>{
152
- cy.loginAsAdmin();
153
- cy.switchOffSecurity(true);
154
- cy.deleteUser(roUsername);
155
- })
156
-
157
- it('should create, login, and verify read-only', () => {
158
- UserAndAccessSteps.clickCreateNewUserButton();
159
- UserAndAccessSteps.typeUsername(roUsername);
160
- UserAndAccessSteps.typePassword(testPassword);
161
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
162
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
163
- UserAndAccessSteps.getReadAccessForRepo(repositoryId).should('be.checked');
164
- UserAndAccessSteps.getWriteAccessForRepo(repositoryId).should('not.be.checked');
165
- UserAndAccessSteps.confirmUserCreate();
166
- UserAndAccessSteps.toggleSecurity();
167
-
168
- LoginSteps.visitLoginPage();
169
-
170
- LoginSteps.loginWithUser(roUsername, testPassword);
171
- MainMenuSteps.clickOnSparqlMenu();
172
-
173
- YasqeSteps.clearEditor();
174
- const prefix = 'PREFIX ex: <http://example.org/>\n';
175
- const query = 'INSERT DATA {\n' +
176
- 'ex:greeting ex:text "Hello, world!" .\n' +
177
- '}';
178
- cy.pasteIntoCodeMirror('.CodeMirror', prefix + query);
179
- // Verify no write access
180
- YasqeSteps.executeErrorQuery();
181
-
182
- YasqeSteps.clearEditor();
183
- const readQuery = 'select * where {\n' +
184
- '?s ?p ?o .\n' +
185
- '} limit 100';
186
- cy.pasteIntoCodeMirror('.CodeMirror', readQuery);
187
- // Verify read accessorQuery();
188
- YasqeSteps.executeQuery();
189
-
190
- LoginSteps.logout();
191
- });
192
- });
193
- });
@@ -1,126 +0,0 @@
1
- import {UserAndAccessSteps} from "../../../steps/setup/user-and-access-steps";
2
- import {LoginSteps} from "../../../steps/login-steps";
3
- import {GraphqlPlaygroundSteps} from "../../../steps/graphql/graphql-playground-steps";
4
- import {RepositorySteps} from "../../../steps/repository-steps";
5
-
6
- describe('GraphQL-only User – Playground Access & Mutation Restriction', () => {
7
- let repositoryId;
8
- const gqlUsername = `gqluser-${Date.now()}`;
9
- const testPassword = 'P@ssw0rd123!';
10
- const readQuery = `
11
- query StarshipById {
12
- starship(ID: "https://swapi.co/resource/starship/9") {
13
- name
14
- }
15
- }
16
- `;
17
- const mutation = `
18
- mutation CreateHuman {
19
- create_Human(
20
- objects: [
21
- {
22
- id: "file:/test/onto/vocabulary/Human1",
23
- rdfs_label: "New human with specific iri id"
24
- }
25
- ]
26
- ) {
27
- human { id }
28
- affected_objects { ids }
29
- }
30
- }
31
- `;
32
-
33
- beforeEach(() => {
34
- repositoryId = `repo-${Date.now()}`;
35
- cy.createRepository({ id: repositoryId });
36
- cy.presetRepository(repositoryId);
37
- cy.importServerFile(repositoryId, 'swapi-dataset.ttl');
38
- cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema.yaml', 'swapi');
39
- });
40
-
41
- afterEach(() => {
42
- cy.loginAsAdmin();
43
- cy.switchOffSecurity(true);
44
- cy.deleteUser(gqlUsername);
45
- cy.deleteRepository(repositoryId);
46
- });
47
-
48
- it('should see only the assigned repo, block SPARQL, allow GraphQL read and forbid writes, and hide create-repo everywhere', () => {
49
- UserAndAccessSteps.visit();
50
- UserAndAccessSteps.clickCreateNewUserButton();
51
- UserAndAccessSteps.typeUsername(gqlUsername);
52
- UserAndAccessSteps.typePassword(testPassword);
53
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
54
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
55
- UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
56
- UserAndAccessSteps.confirmUserCreate();
57
-
58
- UserAndAccessSteps.toggleSecurity();
59
-
60
- // Log in as GraphQL-only user
61
- LoginSteps.loginWithUser(gqlUsername, testPassword);
62
-
63
- // The repository is set
64
- RepositorySteps.verifyRepositoryIsSelected(repositoryId);
65
-
66
- // Verify only the assigned repository appears in endpoints
67
- GraphqlPlaygroundSteps.visit();
68
- GraphqlPlaygroundSteps.getView().should('be.visible');
69
- GraphqlPlaygroundSteps.getQueryEditor().should('be.visible');
70
- GraphqlPlaygroundSteps.getSelectedEndpoint().should('have.text', 'swapi');
71
- // And I can execute a query on the countries endpoint
72
- GraphqlPlaygroundSteps.setInEditor(readQuery);
73
- // And I execute the query
74
- GraphqlPlaygroundSteps.executeQuery();
75
- // Then I get expected result
76
- GraphqlPlaygroundSteps.getResponse().should('contain', '"name": "Death Star"');
77
-
78
- // Execute the create_Human mutation → expect errors
79
- GraphqlPlaygroundSteps.setInEditor(mutation);
80
- GraphqlPlaygroundSteps.executeQuery();
81
- GraphqlPlaygroundSteps.getResponse().should('contain.text', 'errors');
82
- LoginSteps.logout();
83
- });
84
-
85
- it('should allow GraphQL mutation and hide SPARQL/Import/Create-repo menus', () => {
86
- UserAndAccessSteps.visit();
87
- UserAndAccessSteps.clickCreateNewUserButton();
88
- UserAndAccessSteps.typeUsername(gqlUsername);
89
- UserAndAccessSteps.typePassword(testPassword);
90
- UserAndAccessSteps.typeConfirmPasswordField(testPassword);
91
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
92
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
93
- UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
94
- UserAndAccessSteps.confirmUserCreate();
95
-
96
- UserAndAccessSteps.toggleSecurity();
97
-
98
- // Log in as the new user
99
- LoginSteps.loginWithUser(gqlUsername, testPassword);
100
-
101
- // The repository is set
102
- RepositorySteps.verifyRepositoryIsSelected(repositoryId);
103
-
104
- // Visit GraphQL Playground
105
- GraphqlPlaygroundSteps.visit();
106
- GraphqlPlaygroundSteps.getView().should('be.visible');
107
- GraphqlPlaygroundSteps.getQueryEditor().should('be.visible');
108
- GraphqlPlaygroundSteps.getSelectedEndpoint().should('have.text', 'swapi');
109
-
110
- // Execute a read query to verify read access
111
- GraphqlPlaygroundSteps.setInEditor(readQuery);
112
- GraphqlPlaygroundSteps.executeQuery();
113
- GraphqlPlaygroundSteps.getResponse()
114
- .should('contain.text', '"name": "Death Star"');
115
-
116
- // Execute the mutation and expect success
117
- GraphqlPlaygroundSteps.setInEditor(mutation);
118
- GraphqlPlaygroundSteps.executeQuery();
119
- GraphqlPlaygroundSteps.getResponse()
120
- .should('contain.text', 'data')
121
- .and('contain.text', 'create_Human')
122
- .and('contain.text', 'affected_objects');
123
-
124
- LoginSteps.logout();
125
- });
126
- });