graphdb-workbench-tests 3.0.2 → 3.1.0-TR2

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 (252) hide show
  1. package/.editorconfig +17 -0
  2. package/cypress-flaky.config.js +15 -4
  3. package/cypress-legacy.config.js +32 -0
  4. package/cypress.config.js +8 -4
  5. package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
  6. package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +1 -1
  7. package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +9 -2
  8. package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +2 -1
  9. package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +44 -0
  10. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +42 -0
  11. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +43 -0
  12. package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +30 -0
  13. package/{integration/explore → e2e-legacy/explore/class-hierarchy}/class.hierarchy.spec.js +1 -1
  14. package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +42 -0
  15. package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +39 -0
  16. package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +21 -0
  17. package/{integration/explore/class.relationships.spec.js → e2e-legacy/explore/class-relationships/class-relationships.spec.js} +18 -50
  18. package/{integration/explore → e2e-legacy/explore/graphs-overview}/graphs.overview.spec.js +3 -3
  19. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +44 -0
  20. package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +32 -0
  21. package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +38 -0
  22. package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +21 -0
  23. package/{integration → e2e-legacy}/explore/visual-graph/graphs-config.spec.js +1 -6
  24. package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +38 -0
  25. package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +21 -0
  26. package/{integration → e2e-legacy}/explore/visual-graph/visual.graph.spec.js +2 -7
  27. package/{integration → e2e-legacy}/graphql/create-graphql-endpoint.spec.js +0 -2
  28. package/{integration → e2e-legacy}/graphql/edit-graphql-enpoint.spec.js +1 -1
  29. package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
  30. package/e2e-legacy/graphql/graphql-endpoint management-without-selected-repository.spec.js +21 -0
  31. package/{integration → e2e-legacy}/graphql/graphql-endpoint-management-view.spec.js +4 -4
  32. package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +43 -0
  33. package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.jsx +39 -0
  34. package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +40 -0
  35. package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +38 -0
  36. package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +22 -0
  37. package/{integration → e2e-legacy}/graphql/graphql-playground.spec.js +1 -1
  38. package/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +4 -7
  39. package/e2e-legacy/help/guides/guides-with-repository.spec.js +32 -0
  40. package/e2e-legacy/help/guides/guides-without-repository.spec.js +20 -0
  41. package/{integration → e2e-legacy/help}/guides/movies-interactive-guide.spec.js +3 -3
  42. package/{integration → e2e-legacy/help}/guides/star-wars-interactive-guide.js +3 -2
  43. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +32 -0
  44. package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +20 -0
  45. package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +32 -0
  46. package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +20 -0
  47. package/{integration → e2e-legacy}/home/cookie-policy.spec.js +6 -7
  48. package/{integration → e2e-legacy}/home/documentation-link.spec.js +27 -23
  49. package/e2e-legacy/home/home-page-with-selected-repository.spec.js +69 -0
  50. package/e2e-legacy/home/home-page-without-repositories.spec.js +87 -0
  51. package/e2e-legacy/home/home-page-without-selected-repository.spec.js +59 -0
  52. package/{integration → e2e-legacy}/home/language-change.spec.js +2 -2
  53. package/e2e-legacy/home/rdf-resource-search.spec.js +149 -0
  54. package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
  55. package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +16 -10
  56. package/{integration → e2e-legacy}/import/import-user-data-text-snippet.spec.js +0 -2
  57. package/{integration → e2e-legacy}/import/import-user-data.spec.js +9 -2
  58. package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +51 -0
  59. package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +45 -0
  60. package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +28 -0
  61. package/e2e-legacy/license/license-with-repository.spec.js +113 -0
  62. package/e2e-legacy/license/license-without-repository.spec.js +103 -0
  63. package/{integration → e2e-legacy}/license/license.spec.js +4 -4
  64. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +36 -0
  65. package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +25 -0
  66. package/{integration/monitor/monitor.backup-and-restore.spec.js → e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js} +2 -2
  67. package/{integration → e2e-legacy}/monitor/global-operation-statuses-component.spec.js +12 -5
  68. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +39 -0
  69. package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +21 -0
  70. package/{integration/monitor → e2e-legacy/monitor/system}/monitor.resources.spec.js +3 -2
  71. package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
  72. package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
  73. package/{integration → e2e-legacy}/repository/repositories.spec.js +34 -45
  74. package/{integration → e2e-legacy}/resource/resource.spec.js +16 -1
  75. package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +40 -0
  76. package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
  77. package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +1 -0
  78. package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +40 -0
  79. package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +27 -0
  80. package/{integration/setup → e2e-legacy/setup/autocomplete}/autocomplete.spec.js +2 -2
  81. package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +34 -0
  82. package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +25 -0
  83. package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +41 -0
  84. package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +21 -0
  85. package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +39 -0
  86. package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +27 -0
  87. package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +44 -0
  88. package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +27 -0
  89. package/{integration/setup → e2e-legacy/setup/namespaces}/namespaces.spec.js +6 -5
  90. package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +38 -0
  91. package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +28 -0
  92. package/{integration/setup → e2e-legacy/setup/plugins}/plugins.spec.js +3 -3
  93. package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +40 -0
  94. package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +30 -0
  95. package/{integration/setup → e2e-legacy/setup/rdf-rank}/rdf-rank.spec.js +1 -1
  96. package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
  97. package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
  98. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
  99. package/{integration/setup → e2e-legacy/setup/settings}/my-settings.spec.js +5 -75
  100. package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-template-create.js +16 -8
  101. package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +39 -0
  102. package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +29 -0
  103. package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-templates.spec.js +4 -4
  104. package/{integration/setup → e2e-legacy/setup/users-and-access}/user-and-access.spec.js +50 -15
  105. package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
  106. package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +3 -1
  107. package/{integration → e2e-legacy}/sparql-editor/saved-query/edit-query.spec.js +3 -3
  108. package/{integration → e2e-legacy}/sparql-editor/saved-query/readonly-query.spec.js +7 -13
  109. package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +3 -1
  110. package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
  111. package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
  112. package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +20 -0
  113. package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +24 -0
  114. package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +29 -3
  115. package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +3 -1
  116. package/{integration → e2e-legacy}/ttyg/edit-agent.spec.js +19 -9
  117. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +46 -0
  118. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +43 -0
  119. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
  120. package/e2e-legacy/ttyg/ttyg-permission.spec.js +66 -0
  121. package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +1 -0
  122. package/fixtures/locale-en.json +22 -4
  123. package/fixtures/repositories/free-access.json +13 -0
  124. package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
  125. package/fixtures/ttyg/chats/ask-question.json +12 -2
  126. package/fixtures/ttyg/chats/get-chat.json +6 -1
  127. package/npm-shrinkwrap.json +3557 -3815
  128. package/package.json +42 -42
  129. package/plugins/index.js +2 -2
  130. package/steps/application-steps.js +1 -1
  131. package/steps/base-steps.js +21 -0
  132. package/steps/class-views-steps.js +16 -0
  133. package/steps/cluster/cluster-page-steps.js +12 -2
  134. package/steps/error-steps.js +15 -0
  135. package/steps/explore/class-relationships-steps.js +64 -0
  136. package/steps/explore/graphs-overview-steps.js +21 -1
  137. package/steps/explore/similarity-indexes-steps.js +12 -2
  138. package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
  139. package/steps/guides/guide-steps.js +20 -1
  140. package/steps/home-steps.js +137 -48
  141. package/steps/import/import-steps.js +11 -15
  142. package/steps/import/import-user-data-steps.js +4 -0
  143. package/steps/language-selector-steps.js +2 -2
  144. package/steps/license-steps.js +91 -9
  145. package/steps/login-steps.js +3 -3
  146. package/steps/main-menu-steps.js +198 -13
  147. package/steps/modal-dialog-steps.js +20 -0
  148. package/steps/monitoring/backup-and-restore-steps.js +9 -3
  149. package/steps/monitoring/queries-and-updates-steps.js +20 -0
  150. package/steps/monitoring/system-monitoring-steps.js +40 -0
  151. package/steps/operations-statuses-component-steps.js +5 -10
  152. package/steps/rdf-resource-search-steps.js +55 -0
  153. package/steps/repository-selector-steps.js +3 -3
  154. package/steps/repository-steps.js +17 -12
  155. package/steps/resource/resource-steps.js +4 -0
  156. package/steps/rest-api-documentation-steps.js +15 -0
  157. package/steps/setup/autocomplete-steps.js +13 -6
  158. package/steps/setup/connectors-steps.js +19 -0
  159. package/steps/setup/jdbc-steps.js +18 -4
  160. package/steps/setup/namespace-steps.js +9 -6
  161. package/steps/setup/plugins-steps.js +11 -4
  162. package/steps/setup/rdf-rank-steps.js +22 -4
  163. package/steps/setup/settings-steps.js +82 -1
  164. package/steps/setup/sparql-templates-steps.js +19 -1
  165. package/steps/setup/user-and-access-steps.js +9 -1
  166. package/steps/system-information-steps.js +70 -0
  167. package/steps/ttyg/chat-panel-steps.js +1 -1
  168. package/steps/ttyg/ttyg-agent-settings-modal.steps.js +8 -12
  169. package/steps/ttyg/ttyg-view-steps.js +59 -8
  170. package/steps/visual-graph-steps.js +4 -0
  171. package/steps/widgets/active-repository-widget-steps.js +25 -0
  172. package/steps/widgets/license-widget-steps.js +9 -0
  173. package/steps/widgets/repository-errors-widget-steps.js +21 -0
  174. package/steps/widgets/saved-sparql-queries-widget-steps.js +9 -0
  175. package/stubs/autocomplete/autocomplete-stubs.js +7 -0
  176. package/stubs/browser-stubs.js +31 -0
  177. package/stubs/environment-stubs.js +9 -1
  178. package/stubs/license-stubs.js +51 -0
  179. package/stubs/repositories/repositories-stubs.js +8 -0
  180. package/stubs/repositories-stub.js +6 -6
  181. package/stubs/saved-queries-stubs.js +5 -0
  182. package/stubs/ttyg/ttyg-stubs.js +4 -7
  183. package/support/commands.js +19 -0
  184. package/support/repository-commands.js +20 -4
  185. package/Dockerfile +0 -11
  186. package/integration/explore/similarity-index/similarity-index-create.spec.js +0 -333
  187. package/integration/explore/similarity-index/similarity-index.spec.js +0 -88
  188. package/integration/explore/similarity-index/similarity.spec.js +0 -628
  189. package/integration/home/language-selector.spec.js +0 -19
  190. package/integration/home/rdf-resource-search.spec.js +0 -177
  191. package/integration/home/view-resource-autocomplete.spec.js +0 -52
  192. package/integration/home/workbench.home.spec.js +0 -30
  193. package/integration/monitor/monitor.queries.spec.js +0 -31
  194. package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
  195. package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +0 -0
  196. package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
  197. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +0 -0
  198. package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.spec.js +0 -0
  199. package/{integration-flaky → e2e-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
  200. package/{integration-flaky → e2e-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
  201. package/{integration-flaky → e2e-flaky}/ttyg/ttyg-permission.spec.js +0 -0
  202. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
  203. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
  204. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
  205. package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
  206. package/{integration → e2e-legacy}/cluster/cluster-legend.spec.js +0 -0
  207. package/{integration → e2e-legacy}/cluster/cluster-states.spec.js +0 -0
  208. package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.spec.js +0 -0
  209. package/{integration → e2e-legacy}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
  210. package/{integration → e2e-legacy}/graphql/delete-graphql-endpoint.spec.js +0 -0
  211. package/{integration → e2e-legacy}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
  212. package/{integration → e2e-legacy}/graphql/set-default-graphql-endpoint.spec.js +0 -0
  213. package/{integration/help → e2e-legacy/help/system-information}/system-information.spec.js +0 -0
  214. package/{integration → e2e-legacy}/home/create-repository.spec.js +0 -0
  215. package/{integration → e2e-legacy}/home/google-analytics.spec.js +0 -0
  216. package/{integration → e2e-legacy}/import/import-server-files-batch-operations.spec.js +0 -0
  217. package/{integration → e2e-legacy}/import/import-server-files.spec.js +0 -0
  218. package/{integration → e2e-legacy}/import/import-user-data-settings-dialog.spec.js +0 -0
  219. package/{integration → e2e-legacy}/import/import-user-data-url.spec.js +0 -0
  220. package/{integration → e2e-legacy}/import/import-view.spec.js +0 -0
  221. package/{integration → e2e-legacy}/repository/attach-remote-location.spec.js +1 -1
  222. /package/{integration → e2e-legacy}/repository/ontop-repository.spec.js +0 -0
  223. /package/{integration → e2e-legacy}/repository/repository-commands.spec.js +0 -0
  224. /package/{integration → e2e-legacy}/setup/aclmanagement/delete-rule.spec.js +0 -0
  225. /package/{integration → e2e-legacy}/setup/aclmanagement/edit-rule.spec.js +0 -0
  226. /package/{integration → e2e-legacy}/setup/aclmanagement/render-rules.spec.js +0 -0
  227. /package/{integration → e2e-legacy}/setup/aclmanagement/reorder-rules.spec.js +0 -0
  228. /package/{integration → e2e-legacy}/setup/aclmanagement/revert-rules.spec.js +0 -0
  229. /package/{integration → e2e-legacy}/setup/aclmanagement/scopes.spec.js +0 -0
  230. /package/{integration → e2e-legacy}/setup/aclmanagement/update-rules.spec.js +0 -0
  231. /package/{integration → e2e-legacy}/setup/connectors-lucene.spec.js +0 -0
  232. /package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.spec.js +0 -0
  233. /package/{integration → e2e-legacy}/setup/jdbc/jdbc.spec.js +0 -0
  234. /package/{integration → e2e-legacy}/sparql-editor/actions/execute-query.spec.js +0 -0
  235. /package/{integration → e2e-legacy}/sparql-editor/actions/expand-results-over-sameas.spec.js +0 -0
  236. /package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +0 -0
  237. /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
  238. /package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +0 -0
  239. /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
  240. /package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.spec.js +0 -0
  241. /package/{integration → e2e-legacy}/sparql-editor/saved-query/delete-query.spec.js +0 -0
  242. /package/{integration → e2e-legacy}/sparql-editor/sparql-editor.spec.js +0 -0
  243. /package/{integration → e2e-legacy}/sparql-editor/yasgui-tabs.spec.js +0 -0
  244. /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
  245. /package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +0 -0
  246. /package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +0 -0
  247. /package/{integration → e2e-legacy}/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -0
  248. /package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +0 -0
  249. /package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +0 -0
  250. /package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +0 -0
  251. /package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +0 -0
  252. /package/support/{index.js → e2e.js} +0 -0
@@ -0,0 +1,65 @@
1
+ import HomeSteps from '../../steps/home-steps';
2
+ import {BrowserStubs} from "../../stubs/browser-stubs";
3
+
4
+ describe('View resource autocomplete', () => {
5
+
6
+ const FOAT_SNIPPET = '@base <http://example.org/> .\n' +
7
+ '@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
8
+ '<#green-goblin>\n' +
9
+ 'a foaf:Person ; # in the context of the Marvel universe\n' +
10
+ 'foaf:name "Green Goblin" .\n';
11
+ const GOBLIN_URI = 'http://example.org/#green-goblin';
12
+
13
+ let repositoryId;
14
+
15
+ beforeEach(() => {
16
+ cy.viewport(1280, 1000);
17
+ repositoryId = 'view-resource-autocomplete-' + Date.now();
18
+ cy.createRepository({id: repositoryId});
19
+ BrowserStubs.stubWindowOpen();
20
+ });
21
+
22
+ afterEach(() => {
23
+ cy.deleteRepository(repositoryId);
24
+ });
25
+
26
+ it('Test homepage autocomplete when it is enabled', () => {
27
+ HomeSteps.selectRepo(repositoryId);
28
+
29
+ // Type an invalid resource
30
+ HomeSteps.getAutocompleteInput().type('hfsafa');
31
+ HomeSteps.noAutocompleteToast();
32
+
33
+ cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
34
+ cy.enableAutocomplete(repositoryId);
35
+
36
+ HomeSteps.visitAndWaitLoader();
37
+ BrowserStubs.stubWindowOpen();
38
+
39
+ // When: The table display button is active
40
+ HomeSteps.getAutocompleteDisplayTypeButton('table').click();
41
+ // And: select an autocomplete suggestion
42
+ HomeSteps.autocompleteText('Green', GOBLIN_URI)
43
+ HomeSteps.autocompleteText('Green', GOBLIN_URI)
44
+ HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click()
45
+ // Then: The clicked suggestion should be opened in new window
46
+ cy.get(BrowserStubs.WINDOW_OPEN_ALIAS()).should('be.calledWith', 'resource?uri=http%3A%2F%2Fexample.org%2F%23green-goblin');
47
+
48
+ // When: The visual display button is active
49
+ HomeSteps.getAutocompleteDisplayTypeButton('visual').click();
50
+ // And: select an autocomplete suggestion
51
+ HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click()
52
+ // Then: clicked suggestion should be opened in new window
53
+ cy.get(BrowserStubs.WINDOW_OPEN_ALIAS()).should('be.calledWith', 'graphs-visualizations?uri=http%3A%2F%2Fexample.org%2F%23green-goblin')
54
+ });
55
+
56
+ it('should not suggest resources in "View resources" when autocomplete is not enabled', () => {
57
+ cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
58
+
59
+ HomeSteps.visitAndWaitLoader();
60
+ HomeSteps.selectRepo(repositoryId);
61
+
62
+ HomeSteps.getAutocompleteInput().type('Green');
63
+ HomeSteps.noAutocompleteToast();
64
+ });
65
+ });
@@ -15,7 +15,6 @@ const jsonld = JSON.stringify({
15
15
  });
16
16
 
17
17
  describe('Import user data: File upload', () => {
18
-
19
18
  let repositoryId;
20
19
  const testFiles = [
21
20
  'bnodes.ttl',
@@ -39,7 +38,8 @@ describe('Import user data: File upload', () => {
39
38
  // Given there are no files uploaded yet
40
39
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
41
40
  // When I start to upload a file
42
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
41
+ const file1 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
42
+ ImportUserDataSteps.selectFile(file1);
43
43
  // Then the import settings dialog should open automatically
44
44
  ImportSettingsDialogSteps.getDialog().should('be.visible');
45
45
  ImportSettingsDialogSteps.import();
@@ -63,7 +63,8 @@ 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
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
66
+ const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
67
+ ImportUserDataSteps.selectFile(file);
67
68
  ImportSettingsDialogSteps.getDialog().should('be.visible');
68
69
  // When I cancel the file upload via the cancel button
69
70
  ImportSettingsDialogSteps.cancelUpload();
@@ -72,7 +73,7 @@ describe('Import user data: File upload', () => {
72
73
  // And there should be no files uploaded
73
74
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
74
75
  // When I select to upload a file again
75
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
76
+ ImportUserDataSteps.selectFile(file);
76
77
  // Then the import settings dialog should open
77
78
  ImportSettingsDialogSteps.getDialog().should('be.visible');
78
79
  // And I close the file upload dialog via the close button
@@ -87,7 +88,8 @@ describe('Import user data: File upload', () => {
87
88
  // Given there are no files uploaded yet
88
89
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
89
90
  // When I start to upload a file
90
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
91
+ const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
92
+ ImportUserDataSteps.selectFile(file);
91
93
  // Then the import settings dialog should open automatically
92
94
  ImportSettingsDialogSteps.getDialog().should('be.visible');
93
95
  // And the option for replace graph should be active
@@ -98,21 +100,24 @@ describe('Import user data: File upload', () => {
98
100
  // Given there are no files uploaded yet
99
101
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
100
102
  // When I upload a file
101
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
103
+ const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
104
+ ImportUserDataSteps.selectFile(file);
102
105
  // Then the import settings dialog should open automatically
103
106
  ImportSettingsDialogSteps.getDialog().should('be.visible');
104
107
  ImportSettingsDialogSteps.import();
105
108
  // Then I should see the uploaded file
106
109
  ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
107
110
  // When I upload another file
108
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[1], jsonld));
111
+ const file2 = ImportUserDataSteps.createFile(testFiles[1], jsonld);
112
+ ImportUserDataSteps.selectFile(file2);
109
113
  ImportSettingsDialogSteps.getDialog().should('be.visible');
110
114
  ImportSettingsDialogSteps.import();
111
115
  // Then I should see the uploaded file - it becomes first in the list
112
116
  ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
113
117
  ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
114
118
  // When I override the first file
115
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
119
+ const file3 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
120
+ ImportUserDataSteps.selectFile(file3);
116
121
  FileOverwriteDialogSteps.overwrite();
117
122
  ImportSettingsDialogSteps.getDialog().should('be.visible');
118
123
  ImportSettingsDialogSteps.import();
@@ -121,7 +126,7 @@ describe('Import user data: File upload', () => {
121
126
  ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
122
127
  ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
123
128
  // When I override the second file
124
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[1], jsonld));
129
+ ImportUserDataSteps.selectFile(file2);
125
130
  FileOverwriteDialogSteps.overwrite();
126
131
  ImportSettingsDialogSteps.getDialog().should('be.visible');
127
132
  ImportSettingsDialogSteps.import();
@@ -134,7 +139,8 @@ describe('Import user data: File upload', () => {
134
139
  // Given there are no files uploaded yet
135
140
  ImportUserDataSteps.getResourcesTable().should('be.hidden');
136
141
  // When I start to upload a file
137
- ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
142
+ const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
143
+ ImportUserDataSteps.selectFile(file);
138
144
  // Then the import settings dialog should open automatically
139
145
  ImportSettingsDialogSteps.getDialog().should('be.visible');
140
146
  ImportSettingsDialogSteps.uploadOnly();
@@ -127,7 +127,6 @@ 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');
131
130
 
132
131
  const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
133
132
 
@@ -216,7 +215,6 @@ describe('Import user data: Text snippet', () => {
216
215
 
217
216
  // Go to Graphs overview
218
217
  cy.visit('/graphs');
219
- cy.get('.ot-splash').should('not.be.visible');
220
218
 
221
219
  const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
222
220
 
@@ -28,11 +28,18 @@ describe('Import user data', () => {
28
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');
31
34
  ImportUserDataSteps.getPageInfoPopover()
32
35
  .should('be.visible')
33
36
  .find('a')
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');
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
+
36
43
  ImportUserDataSteps.hidePageInfoPopover();
37
44
  // And user data import tab should be selected by default
38
45
  ImportUserDataSteps.getActiveTab().should('have.text', 'User data');
@@ -0,0 +1,51 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import ImportSteps from "../../../steps/import/import-steps";
5
+ import HomeSteps from "../../../steps/home-steps";
6
+
7
+ describe('Initial state of the import view with a selected repository', () => {
8
+ const RDF_SNIPPET = '@base <http://example.org/> .\n' +
9
+ '@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
10
+ '<#green-goblin>\n' +
11
+ 'a foaf:Person ; # in the context of the Marvel universe\n' +
12
+ 'foaf:name "Green Goblin" .\n';
13
+
14
+ let repositoryId;
15
+
16
+ beforeEach(() => {
17
+ repositoryId = 'user-import-' + Date.now();
18
+ cy.createRepository({id: repositoryId});
19
+ cy.presetRepository(repositoryId);
20
+ cy.importRDFTextSnippet(repositoryId, RDF_SNIPPET);
21
+ });
22
+
23
+ afterEach(() => {
24
+ cy.deleteRepository(repositoryId);
25
+ });
26
+
27
+ it('Should have the correct initial state when navigating via URL', () => {
28
+ // When: I visit the import page by URL with a selected repository and at least one imported file
29
+ ImportSteps.visit();
30
+ // Then:
31
+ verifyInitialStateWhenFilesAreImported();
32
+ });
33
+
34
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
35
+ // When: I navigate to the import page using the navigation menu with a selected repository and at least one imported file
36
+ HomeSteps.visit();
37
+ MainMenuSteps.clickOnMenuImport();
38
+ // Then:
39
+ verifyInitialStateWhenFilesAreImported();
40
+ });
41
+
42
+ const verifyInitialStateWhenFilesAreImported = () => {
43
+ RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
44
+ ImportSteps.getUploadRdfFilesButton().should('be.visible');
45
+ ImportSteps.getUploadFromUrlButton().should('be.visible');
46
+ ImportSteps.getUploadTextSnippetButton().should('be.visible');
47
+ ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
48
+ ImportUserDataSteps.getHelpMessage().should('not.exist');
49
+ ImportUserDataSteps.getResourcesTable().should('be.visible');
50
+ };
51
+ });
@@ -0,0 +1,45 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import ImportSteps from "../../../steps/import/import-steps";
5
+ import HomeSteps from "../../../steps/home-steps";
6
+
7
+ describe('Initial state of the import view with a selected repository and no imported files', () => {
8
+
9
+ let repositoryId;
10
+
11
+ beforeEach(() => {
12
+ repositoryId = 'user-import-' + Date.now();
13
+ cy.createRepository({id: repositoryId});
14
+ cy.presetRepository(repositoryId);
15
+ });
16
+
17
+ afterEach(() => {
18
+ cy.deleteRepository(repositoryId);
19
+ });
20
+
21
+ it('Should have the correct initial state when navigating via URL', () => {
22
+ // When: I visit the import page via URL with a selected repository and no imported files
23
+ ImportSteps.visit();
24
+ // Then:
25
+ verifyInitialStateWhenNoFilesAreImported();
26
+ });
27
+
28
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
29
+ // When: I visit the import page via the navigation menu with a selected repository and no imported files
30
+ HomeSteps.visit();
31
+ MainMenuSteps.clickOnMenuImport();
32
+ // Then:
33
+ verifyInitialStateWhenNoFilesAreImported();
34
+ });
35
+
36
+ const verifyInitialStateWhenNoFilesAreImported = () => {
37
+ RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
38
+ ImportSteps.getUploadRdfFilesButton().should('be.visible');
39
+ ImportSteps.getUploadFromUrlButton().should('be.visible');
40
+ ImportSteps.getUploadTextSnippetButton().should('be.visible');
41
+ ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
42
+ ImportUserDataSteps.getHelpMessage().should('be.visible');
43
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
44
+ };
45
+ });
@@ -0,0 +1,28 @@
1
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
2
+ import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
3
+ import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
4
+ import HomeSteps from "../../../steps/home-steps";
5
+ import ImportSteps from "../../../steps/import/import-steps";
6
+
7
+ describe('Initial state of the import view without a selected repository', () => {
8
+
9
+ it('Should have the correct initial state when navigating via URL', () => {
10
+ // When: I visit the import page via URL with no repository selected
11
+ ImportSteps.visit();
12
+ // Then:
13
+ verifyInitialStateWhenNoRepositoryIsSelected();
14
+ });
15
+
16
+ it('Should have the correct initial state when navigating via the navigation bar', () => {
17
+ // When: I visit the import page via the navigation menu with no repository selected
18
+ HomeSteps.visit();
19
+ MainMenuSteps.clickOnMenuImport();
20
+ // Then:
21
+ verifyInitialStateWhenNoRepositoryIsSelected();
22
+ });
23
+
24
+ const verifyInitialStateWhenNoRepositoryIsSelected = () => {
25
+ RepositoryErrorsWidgetSteps.getWidget().should('be.visible');
26
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
27
+ };
28
+ });
@@ -0,0 +1,113 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {LicenseSteps} from "../../steps/license-steps";
4
+ import {LicenseStubs} from "../../stubs/license-stubs";
5
+
6
+ describe('License with selected repository', () => {
7
+ let repositoryId;
8
+
9
+ beforeEach(() => {
10
+ repositoryId = 'license-init-' + Date.now();
11
+ cy.createRepository({id: repositoryId});
12
+ cy.presetRepository(repositoryId);
13
+ });
14
+
15
+ afterEach(() => {
16
+ cy.deleteRepository(repositoryId);
17
+ });
18
+
19
+ it('Should display the correct initial state when navigating via URL and there is no license', () => {
20
+ LicenseStubs.stubLicenseHardcoded(false)
21
+ LicenseStubs.stubLicenseNotSet();
22
+ // Given, I visit the License page via URL with a repository selected and there is no license
23
+ LicenseSteps.visit();
24
+ // Then,
25
+ LicenseSteps.verifyLicenseNotSet();
26
+ });
27
+
28
+ it('Should display the correct initial state when navigating via the navigation bar and there is no license', () => {
29
+ LicenseStubs.stubLicenseHardcoded(false)
30
+ LicenseStubs.stubLicenseNotSet();
31
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no license
32
+ HomeSteps.visit();
33
+ MainMenuSteps.clickOnLicense();
34
+ // Then,
35
+ LicenseSteps.verifyLicenseNotSet();
36
+ });
37
+
38
+ it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
39
+ LicenseStubs.stubLicenseHardcoded(false);
40
+ LicenseStubs.stubNoValidLicense();
41
+ // Given, I visit the License page via URL with a repository selected and there is no valid license
42
+ LicenseSteps.visit();
43
+ // Then,
44
+ LicenseSteps.verifyNoValidLicense();
45
+ });
46
+
47
+ it('Should display the correct initial state when navigating via the navigation bar and there is no valid license', () => {
48
+ LicenseStubs.stubLicenseHardcoded(false);
49
+ LicenseStubs.stubNoValidLicense();
50
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
51
+ HomeSteps.visit();
52
+ MainMenuSteps.clickOnLicense();
53
+ // Then,
54
+ LicenseSteps.verifyNoValidLicense();
55
+ });
56
+
57
+ it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
58
+ LicenseStubs.stubLicenseHardcoded(true);
59
+ LicenseStubs.stubNoValidLicense();
60
+ // Given, I visit the License page via URL with a repository selected and there is no valid hardcoded license
61
+ LicenseSteps.visit();
62
+ // Then,
63
+ LicenseSteps.verifyNoValidLicenseHardcoded();
64
+ });
65
+
66
+ it('Should display the correct initial state when navigating via the navigation bar and there is no valid hardcoded license', () => {
67
+ LicenseStubs.stubLicenseHardcoded(true);
68
+ LicenseStubs.stubNoValidLicense();
69
+ // Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
70
+ HomeSteps.visit();
71
+ MainMenuSteps.clickOnLicense();
72
+ // Then,
73
+ LicenseSteps.verifyNoValidLicenseHardcoded();
74
+ });
75
+
76
+ it('Should display the correct initial state when navigating via URL and there is valid license', () => {
77
+ LicenseStubs.stubLicenseHardcoded(false);
78
+ LicenseStubs.stubEnterpriseLicense();
79
+ // Given, I visit the License page via URL with a repository selected and there is valid license
80
+ LicenseSteps.visit();
81
+ // Then,
82
+ LicenseSteps.verifyValidLicense();
83
+ });
84
+
85
+ it('Should display the correct initial state when navigating via the navigation bar and there is valid license', () => {
86
+ LicenseStubs.stubLicenseHardcoded(false);
87
+ LicenseStubs.stubEnterpriseLicense();
88
+ // Given, I visit the License page via the navigation menu with a repository selected and there is valid license
89
+ HomeSteps.visit();
90
+ MainMenuSteps.clickOnLicense();
91
+ // Then,
92
+ LicenseSteps.verifyValidLicense();
93
+ });
94
+
95
+ it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
96
+ LicenseStubs.stubLicenseHardcoded(true);
97
+ LicenseStubs.stubEnterpriseLicense();
98
+ // Given, I visit the License page via URL with a repository selected and there is valid hardcoded license
99
+ LicenseSteps.visit();
100
+ // Then,
101
+ LicenseSteps.verifyValidLicenseHardcoded();
102
+ });
103
+
104
+ it('Should display the correct initial state when navigating via the navigation bar and there is valid hardcoded license', () => {
105
+ LicenseStubs.stubLicenseHardcoded(true);
106
+ LicenseStubs.stubEnterpriseLicense();
107
+ // Given, I visit the License page via the navigation menu with a repository selected and there is valid hardcoded license
108
+ HomeSteps.visit();
109
+ MainMenuSteps.clickOnLicense();
110
+ // Then,
111
+ LicenseSteps.verifyValidLicenseHardcoded();
112
+ });
113
+ })
@@ -0,0 +1,103 @@
1
+ import HomeSteps from "../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../steps/main-menu-steps";
3
+ import {LicenseSteps} from "../../steps/license-steps";
4
+ import {LicenseStubs} from "../../stubs/license-stubs";
5
+
6
+ describe('License without selected repository', () => {
7
+
8
+ it('Should display the correct initial state when navigating via URL and there is no license', () => {
9
+ LicenseStubs.stubLicenseHardcoded(false)
10
+ LicenseStubs.stubLicenseNotSet();
11
+ // Given, I visit the License page via URL without a repository selected and there is no license
12
+ LicenseSteps.visit();
13
+ // Then,
14
+ LicenseSteps.verifyLicenseNotSet();
15
+ });
16
+
17
+ it('Should display the correct initial state when navigating via the navigation menu and there is no license', () => {
18
+ LicenseStubs.stubLicenseHardcoded(false)
19
+ LicenseStubs.stubLicenseNotSet();
20
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no license
21
+ HomeSteps.visit();
22
+ MainMenuSteps.clickOnLicense();
23
+ // Then,
24
+ LicenseSteps.verifyLicenseNotSet();
25
+ });
26
+
27
+ it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
28
+ LicenseStubs.stubLicenseHardcoded(false);
29
+ LicenseStubs.stubNoValidLicense();
30
+ // Given, I visit the License page via URL without a repository selected and there is no valid license
31
+ LicenseSteps.visit();
32
+ // Then,
33
+ LicenseSteps.verifyNoValidLicense();
34
+ });
35
+
36
+ it('Should display the correct initial state when navigating via the navigation menu and there is no valid license', () => {
37
+ LicenseStubs.stubLicenseHardcoded(false);
38
+ LicenseStubs.stubNoValidLicense();
39
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no valid license
40
+ HomeSteps.visit();
41
+ MainMenuSteps.clickOnLicense();
42
+ // Then,
43
+ LicenseSteps.verifyNoValidLicense();
44
+ });
45
+
46
+ it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
47
+ LicenseStubs.stubLicenseHardcoded(true);
48
+ LicenseStubs.stubNoValidLicense();
49
+ // Given, I visit the License page via URL without a repository selected and there is no valid hardcoded license
50
+ LicenseSteps.visit();
51
+ // Then,
52
+ LicenseSteps.verifyNoValidLicenseHardcoded();
53
+ });
54
+
55
+ it('Should display the correct initial state when navigating via the navigation menu and there is no valid hardcoded license', () => {
56
+ LicenseStubs.stubLicenseHardcoded(true);
57
+ LicenseStubs.stubNoValidLicense();
58
+ // Given, I visit the License page via the navigation menu without a repository selected and there is no valid hardcoded license
59
+ HomeSteps.visit();
60
+ MainMenuSteps.clickOnLicense();
61
+ // Then,
62
+ LicenseSteps.verifyNoValidLicenseHardcoded();
63
+ });
64
+
65
+ it('Should display the correct initial state when navigating via URL and there is valid license', () => {
66
+ LicenseStubs.stubLicenseHardcoded(false);
67
+ LicenseStubs.stubEnterpriseLicense();
68
+ // Given, I visit the License page via URL without a repository selected and there is valid license
69
+ LicenseSteps.visit();
70
+ // Then,
71
+ LicenseSteps.verifyValidLicense();
72
+ });
73
+
74
+ it('Should display the correct initial state when navigating via the navigation menu and there is valid license', () => {
75
+ LicenseStubs.stubLicenseHardcoded(false);
76
+ LicenseStubs.stubEnterpriseLicense();
77
+ // Given, I visit the License page via the navigation menu without a repository selected and there is valid license
78
+ HomeSteps.visit();
79
+ MainMenuSteps.clickOnLicense();
80
+ // Then,
81
+ LicenseSteps.verifyValidLicense();
82
+ });
83
+
84
+
85
+ it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
86
+ LicenseStubs.stubLicenseHardcoded(true);
87
+ LicenseStubs.stubEnterpriseLicense();
88
+ // Given, I visit the License page via URL without a repository selected and there is valid hardcoded license
89
+ LicenseSteps.visit();
90
+ // Then,
91
+ LicenseSteps.verifyValidLicenseHardcoded();
92
+ });
93
+
94
+ it('Should display the correct initial state when navigating via the navigation menu and there is valid harcoded license', () => {
95
+ LicenseStubs.stubLicenseHardcoded(true);
96
+ LicenseStubs.stubEnterpriseLicense();
97
+ // Given, I visit the License page via the navigation menu without a repository selected and there is valid hardcoded license
98
+ HomeSteps.visit();
99
+ MainMenuSteps.clickOnLicense();
100
+ // Then,
101
+ LicenseSteps.verifyValidLicenseHardcoded();
102
+ });
103
+ })
@@ -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.getRemoveLicenseLicenseButton().should('not.exist');
13
- LicenseSteps.getSetNewLicenseElement().should('not.exist');
12
+ LicenseSteps.getRemoveLicenseButton().should('not.exist');
13
+ LicenseSteps.getSetNewLicenseButton().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.getRemoveLicenseLicenseButton().should('exist');
24
- LicenseSteps.getSetNewLicenseElement().should('exist');
23
+ LicenseSteps.getRemoveLicenseButton().should('exist');
24
+ LicenseSteps.getSetNewLicenseButton().should('exist');
25
25
  });
26
26
  });
@@ -0,0 +1,36 @@
1
+ import HomeSteps from "../../../steps/home-steps";
2
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
3
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
4
+
5
+ describe('Backup And Restore with selected repository', () => {
6
+ let repositoryId;
7
+
8
+ beforeEach(() => {
9
+ repositoryId = 'backup-and-restore-init-' + Date.now();
10
+ cy.createRepository({id: repositoryId});
11
+ cy.presetRepository(repositoryId);
12
+ });
13
+
14
+ afterEach(() => {
15
+ cy.deleteRepository(repositoryId);
16
+ });
17
+
18
+ it('Should display the correct initial state when navigating via URL', () => {
19
+ // Given, I visit the Backup And Restore page via URL with a repository selected
20
+ BackupAndRestoreSteps.visit();
21
+ // Then,
22
+ verifyInitialStateWithSelectedRepository();
23
+ });
24
+
25
+ it('Should display the correct initial state when navigating via the navigation bar', () => {
26
+ // Given, I visit the Backup And Restore page via the navigation menu with a repository selected
27
+ HomeSteps.visit();
28
+ MainMenuSteps.clickOnBackupAndRestore();
29
+ // Then,
30
+ verifyInitialStateWithSelectedRepository();
31
+ });
32
+
33
+ const verifyInitialStateWithSelectedRepository = () => {
34
+ BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
35
+ };
36
+ })
@@ -0,0 +1,25 @@
1
+ import {ErrorSteps} from "../../../steps/error-steps";
2
+ import HomeSteps from "../../../steps/home-steps";
3
+ import {MainMenuSteps} from "../../../steps/main-menu-steps";
4
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
5
+
6
+ describe('Backup and Restore without selected repository', () => {
7
+ it('Should display the correct initial state when navigating via URL', () => {
8
+ // Given, I visit the Backup and Restore page via URL without a repository selected
9
+ BackupAndRestoreSteps.visit();
10
+ // Then,
11
+ verifyInitialStateWithSelectedRepository();
12
+ });
13
+
14
+ it('Should display the correct initial state when navigating via the navigation menu', () => {
15
+ // Given, I visit the Backup and Restore page via the navigation menu without a repository selected
16
+ HomeSteps.visit();
17
+ MainMenuSteps.clickOnBackupAndRestore();
18
+ // Then,
19
+ verifyInitialStateWithSelectedRepository();
20
+ });
21
+
22
+ const verifyInitialStateWithSelectedRepository = () => {
23
+ BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
24
+ };
25
+ })
@@ -1,5 +1,5 @@
1
- import {BackupAndRestoreSteps} from "../../steps/monitoring/backup-and-restore-steps";
2
- import {BackupAndRestoreStubs} from "../../stubs/backup-and-restore-stubs";
1
+ import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
2
+ import {BackupAndRestoreStubs} from "../../../stubs/backup-and-restore-stubs";
3
3
 
4
4
  describe("Monitoring 'Backup And Restore'", () => {
5
5