graphdb-workbench-tests 3.4.0-TR4 → 3.4.0-TR5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +17 -0
- package/.nycrc +10 -0
- package/cypress-flaky.config.js +20 -6
- package/cypress-legacy.config.js +47 -0
- package/cypress-security.config.js +36 -0
- package/cypress.config.js +45 -6
- package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
- package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +2 -2
- package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
- package/e2e-flaky/import/import-user-data-url.spec.js +63 -0
- package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +10 -18
- package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +2 -12
- package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.spec.js +1 -7
- package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +3 -7
- package/{integration → e2e-legacy}/cluster/cluster-states.spec.js +3 -3
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +42 -0
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +43 -0
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +30 -0
- package/{integration/explore → e2e-legacy/explore/class-hierarchy}/class.hierarchy.spec.js +1 -1
- package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +42 -0
- package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +39 -0
- package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +21 -0
- package/{integration/explore/class.relationships.spec.js → e2e-legacy/explore/class-relationships/class-relationships.spec.js} +20 -50
- package/{integration/explore → e2e-legacy/explore/graphs-overview}/graphs.overview.spec.js +4 -4
- package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +44 -0
- package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +32 -0
- package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +38 -0
- package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +21 -0
- package/{integration → e2e-legacy}/explore/visual-graph/graphs-config.spec.js +5 -10
- package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +58 -0
- package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +142 -0
- package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.spec.js +14 -2
- package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +38 -0
- package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +21 -0
- package/{integration → e2e-legacy}/explore/visual-graph/visual.graph.spec.js +75 -96
- package/{integration → e2e-legacy}/graphql/create-graphql-endpoint.spec.js +0 -2
- package/{integration → e2e-legacy}/graphql/edit-graphql-enpoint.spec.js +1 -1
- package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
- package/{integration → e2e-legacy}/graphql/graphql-endpoint-management-view.spec.js +4 -4
- package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +43 -0
- package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +39 -0
- package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +21 -0
- package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +40 -0
- package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +38 -0
- package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +22 -0
- package/{integration → e2e-legacy}/graphql/graphql-playground.spec.js +1 -1
- package/e2e-legacy/graphql/graphql-theme.spec.js +73 -0
- package/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +0 -6
- package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +49 -0
- package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +89 -0
- package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +76 -0
- package/e2e-legacy/guides/connectors/connectors-guide.spec.js +163 -0
- package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +74 -0
- package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +55 -0
- package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +92 -0
- package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +63 -0
- package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +105 -0
- package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +302 -0
- package/e2e-legacy/guides/navigation/navigation-guide.spec.js +64 -0
- package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +42 -0
- package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +69 -0
- package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +168 -0
- package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +158 -0
- package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +92 -0
- package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +88 -0
- package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +372 -0
- package/e2e-legacy/guides/welcome/welcome-guide.spec.js +36 -0
- package/e2e-legacy/help/guides/guides-autostart.spec.js +126 -0
- package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +83 -0
- package/e2e-legacy/help/guides/guides-with-repository.spec.js +32 -0
- package/e2e-legacy/help/guides/guides-without-repository.spec.js +20 -0
- package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +71 -0
- package/{integration/guides/star-wars-interactive-guide.js → e2e-legacy/help/guides/star-wars-interactive-guide.spec.js} +3 -2
- package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +32 -0
- package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +20 -0
- package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +32 -0
- package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +20 -0
- package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +182 -0
- package/e2e-legacy/home/documentation-link.spec.js +41 -0
- package/{integration → e2e-legacy}/home/google-analytics.spec.js +4 -6
- package/e2e-legacy/home/home-page-with-selected-repository.spec.js +69 -0
- package/e2e-legacy/home/home-page-without-repositories.spec.js +87 -0
- package/e2e-legacy/home/home-page-without-selected-repository.spec.js +59 -0
- package/{integration → e2e-legacy}/home/language-change.spec.js +2 -2
- package/e2e-legacy/home/rdf-resource-search.spec.js +160 -0
- package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
- package/{integration → e2e-legacy}/import/import-server-files.spec.js +5 -3
- package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +19 -13
- package/{integration → e2e-legacy}/import/import-user-data-text-snippet.spec.js +0 -2
- package/{integration → e2e-legacy}/import/import-user-data-url.spec.js +0 -23
- package/{integration → e2e-legacy}/import/import-user-data.spec.js +11 -4
- package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +51 -0
- package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +45 -0
- package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +28 -0
- package/e2e-legacy/license/license-with-repository.spec.js +113 -0
- package/e2e-legacy/license/license-without-repository.spec.js +103 -0
- package/{integration → e2e-legacy}/license/license.spec.js +4 -4
- package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +36 -0
- package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +25 -0
- package/{integration/monitor/monitor.backup-and-restore.spec.js → e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js} +2 -2
- package/{integration → e2e-legacy}/monitor/global-operation-statuses-component.spec.js +12 -5
- package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +39 -0
- package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +21 -0
- package/{integration/monitor → e2e-legacy/monitor/system}/monitor.resources.spec.js +3 -2
- package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
- package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
- package/e2e-legacy/not-found/not-found.spec.js +23 -0
- package/{integration → e2e-legacy}/repository/ontop-repository.spec.js +1 -1
- package/{integration → e2e-legacy}/repository/repositories.spec.js +37 -45
- package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +181 -0
- package/{integration → e2e-legacy}/resource/resource.spec.js +50 -20
- package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +84 -0
- package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
- package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +4 -0
- package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +40 -0
- package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +27 -0
- package/{integration/setup → e2e-legacy/setup/autocomplete}/autocomplete.spec.js +6 -7
- package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +34 -0
- package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +25 -0
- package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +41 -0
- package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +21 -0
- package/{integration → e2e-legacy}/setup/connectors-lucene.spec.js +26 -10
- package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.spec.js +4 -4
- package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +39 -0
- package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +27 -0
- package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +44 -0
- package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +27 -0
- package/{integration/setup → e2e-legacy/setup/namespaces}/namespaces.spec.js +6 -5
- package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +38 -0
- package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +28 -0
- package/{integration/setup → e2e-legacy/setup/plugins}/plugins.spec.js +3 -3
- package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +40 -0
- package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +30 -0
- package/{integration/setup → e2e-legacy/setup/rdf-rank}/rdf-rank.spec.js +3 -5
- package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
- package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
- package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
- package/e2e-legacy/setup/settings/my-settings.spec.js +207 -0
- package/{integration/setup/sparql-template-create.js → e2e-legacy/setup/sparql-template/sparql-template-create.spec.js} +16 -8
- package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +39 -0
- package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +29 -0
- package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-templates.spec.js +4 -4
- package/{integration/setup → e2e-legacy/setup/users-and-access}/user-and-access.spec.js +184 -87
- package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
- package/{integration → e2e-legacy}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
- package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
- package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +10 -8
- package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +1 -6
- package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.spec.js +1 -1
- package/{integration → e2e-legacy}/sparql-editor/saved-query/edit-query.spec.js +3 -3
- package/{integration → e2e-legacy}/sparql-editor/saved-query/readonly-query.spec.js +15 -24
- package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +32 -1
- package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
- package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
- package/{integration → e2e-legacy}/sparql-editor/yasgui-tabs.spec.js +2 -12
- package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +54 -0
- package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +5 -18
- package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +1 -6
- package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +106 -0
- package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +80 -0
- package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +53 -2
- package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +25 -2
- package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +3 -14
- package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +74 -6
- package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +24 -2
- package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +37 -66
- package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +6 -4
- package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +1 -2
- package/e2e-legacy/ttyg/edit-agent.spec.js +178 -0
- package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +46 -0
- package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +45 -0
- package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
- package/{integration-flaky → e2e-legacy}/ttyg/ttyg-permission.spec.js +23 -17
- package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +2 -2
- package/e2e-security/repository/url-with-repository-id-parameter.spec.js +57 -0
- package/e2e-security/setup/home/cookie-policy.spec.js +290 -0
- package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +193 -0
- package/e2e-security/setup/users-and-access/graphql-user.spec.js +126 -0
- package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +70 -0
- package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +99 -0
- package/e2e-security/setup/users-and-access/user-and-access.spec.js +87 -0
- package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +38 -0
- package/eslint.config.js +39 -0
- package/fixtures/graph/graph-configurations.json +59 -0
- package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +12 -0
- package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +35 -0
- package/fixtures/guides/class-relations/class-relations-guide.json +33 -0
- package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +15 -0
- package/fixtures/guides/connectors/connectors-guide.json +66 -0
- package/fixtures/guides/connectors/lucene-connector-guide.json +120 -0
- package/fixtures/guides/create-repository/create-repository-guide.json +25 -0
- package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +36 -0
- package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +25 -0
- package/fixtures/guides/download-resource.ttl +629 -0
- package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +54 -0
- package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +30 -0
- package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +21 -0
- package/fixtures/guides/main-menu/main-menu-guide.json +98 -0
- package/fixtures/guides/navigation/navigation-guide.json +60 -0
- package/fixtures/guides/rdf-rank/rdf-rank-guide.json +18 -0
- package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +51 -0
- package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +25 -0
- package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +74 -0
- package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +26 -0
- package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +22 -0
- package/fixtures/guides/visual-graph/visual-graph-config-guide.json +39 -0
- package/fixtures/guides/visual-graph/visual-graph-guide.json +85 -0
- package/fixtures/guides/welcome/welcome-guide.json +18 -0
- package/fixtures/repositories/free-access.json +13 -0
- package/fixtures/similarity/get-ttyg-similarity-instances.json +10 -0
- package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +44 -0
- package/fixtures/ttyg/agent/get-agent-defaults.json +9 -2
- package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
- package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +8 -0
- package/fixtures/ttyg/agent/get-similarity-indexes.json +22 -0
- package/fixtures/ttyg/chats/ask-question-cancel.json +12 -0
- package/fixtures/ttyg/chats/ask-question.json +12 -2
- package/fixtures/ttyg/chats/cancel-question-response.json +1 -0
- package/fixtures/ttyg/chats/create/create-chat-response.json +10 -14
- package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +29 -0
- package/fixtures/ttyg/chats/explain-response-1.json +2 -48
- package/fixtures/ttyg/chats/explain-response-3.json +12 -0
- package/fixtures/ttyg/chats/get-chat.json +6 -1
- package/npm-shrinkwrap.json +11004 -3815
- package/package.json +58 -42
- package/plugins/index.js +10 -5
- package/steps/application-steps.js +8 -6
- package/steps/base-steps.js +29 -0
- package/steps/class-views-steps.js +35 -7
- package/steps/cluster/cluster-page-steps.js +12 -2
- package/steps/cookie-policy/cookie-consent-banner-steps.js +21 -0
- package/steps/cookie-policy/cookie-policy-modal.steps.js +56 -0
- package/steps/error-page-steps.js +9 -0
- package/steps/error-steps.js +15 -3
- package/steps/explore/class-relationships-steps.js +64 -0
- package/steps/explore/graphs-overview-steps.js +21 -1
- package/steps/explore/similarity-index-create-steps.js +5 -3
- package/steps/explore/similarity-indexes-steps.js +16 -2
- package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
- package/steps/graphql/playground-editor-steps.js +46 -0
- package/steps/guides/guide-dialog-steps.js +81 -2
- package/steps/guides/guide-steps.js +54 -2
- package/steps/guides/movies-guide-steps.js +2 -1
- package/steps/header-steps.js +22 -0
- package/steps/home-steps.js +184 -77
- package/steps/import/import-resource-message-dialog.js +1 -1
- package/steps/import/import-steps.js +12 -16
- package/steps/import/import-user-data-steps.js +5 -1
- package/steps/language-selector-steps.js +2 -2
- package/steps/license-steps.js +91 -9
- package/steps/login-steps.js +31 -6
- package/steps/main-menu-steps.js +244 -19
- package/steps/modal-dialog-steps.js +32 -1
- package/steps/monitoring/backup-and-restore-steps.js +9 -3
- package/steps/monitoring/queries-and-updates-steps.js +20 -0
- package/steps/monitoring/system-monitoring-steps.js +40 -0
- package/steps/not-found/not-found-steps.js +23 -0
- package/steps/operations-statuses-component-steps.js +5 -10
- package/steps/rdf-resource-search-steps.js +55 -0
- package/steps/repository-selector-steps.js +3 -3
- package/steps/repository-steps.js +88 -18
- package/steps/resource/resource-steps.js +6 -10
- package/steps/rest-api-documentation-steps.js +15 -0
- package/steps/setup/acl-management-steps.js +18 -2
- package/steps/setup/autocomplete-steps.js +23 -8
- package/steps/setup/connectors-steps.js +32 -0
- package/steps/setup/jdbc-steps.js +18 -4
- package/steps/setup/namespace-steps.js +10 -7
- package/steps/setup/plugins-steps.js +12 -5
- package/steps/setup/rdf-rank-steps.js +23 -9
- package/steps/setup/settings-steps.js +101 -2
- package/steps/setup/sparql-templates-steps.js +19 -1
- package/steps/setup/user-and-access-steps.js +50 -16
- package/steps/shared-modal-dialog-steps.js +45 -0
- package/steps/sparql-editor-steps.js +21 -2
- package/steps/sparql-steps.js +13 -1
- package/steps/system-information-steps.js +70 -0
- package/steps/toaster-steps.js +18 -6
- package/steps/ttyg/chat-panel-steps.js +40 -2
- package/steps/ttyg/ttyg-agent-settings-modal.steps.js +136 -31
- package/steps/ttyg/ttyg-view-steps.js +80 -10
- package/steps/visual-graph-split-button-steps.js +45 -0
- package/steps/visual-graph-steps.js +106 -10
- package/steps/widgets/active-repository-widget-steps.js +29 -0
- package/steps/widgets/license-widget-steps.js +9 -0
- package/steps/widgets/repository-errors-widget-steps.js +21 -0
- package/steps/widgets/saved-sparql-queries-widget-steps.js +9 -0
- package/steps/yasgui/yasgui-loader.js +3 -3
- package/steps/yasgui/yasgui-steps.js +1 -1
- package/steps/yasgui/yasqe-steps.js +35 -4
- package/steps/yasgui/yasr-steps.js +35 -5
- package/stubs/autocomplete/autocomplete-stubs.js +7 -0
- package/stubs/browser-stubs.js +21 -0
- package/stubs/environment-stubs.js +9 -1
- package/stubs/graph-config-stubs.js +17 -0
- package/stubs/guides/guides-stubs.js +103 -0
- package/stubs/license-stubs.js +51 -0
- package/stubs/repositories/repositories-stubs.js +180 -75
- package/stubs/saved-queries-stubs.js +5 -0
- package/stubs/security-stubs.js +12 -0
- package/stubs/similarity-index-stubs.js +4 -0
- package/stubs/sparql-stubs.js +10 -0
- package/stubs/ttyg/ttyg-stubs.js +64 -15
- package/stubs/yasgui/query-stubs.js +5 -1
- package/support/commands.js +22 -1
- package/support/connector-commands.js +13 -0
- package/support/e2e-security.js +9 -0
- package/support/{index.js → e2e.js} +9 -3
- package/support/repository-commands.js +29 -4
- package/support/settings-commands.js +33 -1
- package/support/url-commands.js +13 -0
- package/support/user-commands.js +9 -4
- package/utils/html-util.js +24 -4
- package/Dockerfile +0 -11
- package/fixtures/locale-en.json +0 -3342
- package/integration/explore/similarity-index/similarity-index-create.spec.js +0 -333
- package/integration/explore/similarity-index/similarity-index.spec.js +0 -88
- package/integration/explore/similarity-index/similarity.spec.js +0 -628
- package/integration/guides/movies-interactive-guide.spec.js +0 -73
- package/integration/home/cookie-policy.spec.js +0 -90
- package/integration/home/documentation-link.spec.js +0 -60
- package/integration/home/language-selector.spec.js +0 -19
- package/integration/home/rdf-resource-search.spec.js +0 -177
- package/integration/home/view-resource-autocomplete.spec.js +0 -52
- package/integration/home/workbench.home.spec.js +0 -30
- package/integration/monitor/monitor.queries.spec.js +0 -31
- package/integration/setup/my-settings.spec.js +0 -289
- package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -57
- package/integration/ttyg/edit-agent.spec.js +0 -99
- package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
- package/stubs/repositories-stub.js +0 -73
- package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
- package/{integration-flaky → e2e-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
- package/{integration-flaky → e2e-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/cluster-legend.spec.js +0 -0
- package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
- package/{integration → e2e-legacy}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
- package/{integration → e2e-legacy}/graphql/delete-graphql-endpoint.spec.js +0 -0
- package/{integration → e2e-legacy}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
- package/{integration → e2e-legacy}/graphql/set-default-graphql-endpoint.spec.js +0 -0
- package/{integration/help → e2e-legacy/help/system-information}/system-information.spec.js +0 -0
- package/{integration → e2e-legacy}/home/create-repository.spec.js +0 -0
- package/{integration → e2e-legacy}/import/import-server-files-batch-operations.spec.js +0 -0
- package/{integration → e2e-legacy}/import/import-user-data-settings-dialog.spec.js +0 -0
- package/{integration → e2e-legacy}/import/import-view.spec.js +0 -0
- package/{integration → e2e-legacy}/repository/attach-remote-location.spec.js +1 -1
- /package/{integration → e2e-legacy}/repository/repository-commands.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/delete-rule.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/edit-rule.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/render-rules.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/reorder-rules.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/revert-rules.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/scopes.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/aclmanagement/update-rules.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/jdbc/jdbc.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/actions/execute-query.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/saved-query/delete-query.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/sparql-editor.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
|
@@ -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('not.exist');
|
|
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.
|
|
13
|
-
LicenseSteps.
|
|
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.
|
|
24
|
-
LicenseSteps.
|
|
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 "
|
|
2
|
-
import {BackupAndRestoreStubs} from "
|
|
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
|
|
|
@@ -2,6 +2,7 @@ import HomeSteps from "../../steps/home-steps";
|
|
|
2
2
|
import {OperationsStatusesComponentSteps} from "../../steps/operations-statuses-component-steps";
|
|
3
3
|
import {GlobalOperationsStatusesStub} from "../../stubs/global-operations-statuses-stub";
|
|
4
4
|
import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
|
|
5
|
+
import {BrowserStubs} from "../../stubs/browser-stubs";
|
|
5
6
|
|
|
6
7
|
describe('Operations Status Component', () => {
|
|
7
8
|
|
|
@@ -72,7 +73,7 @@ describe('Operations Status Component', () => {
|
|
|
72
73
|
OperationsStatusesComponentSteps.openOperationStatusesDialog();
|
|
73
74
|
// When I click on "Running query" operation element.
|
|
74
75
|
// Then I expect to be redirected to "Query and Update monitoring" view.
|
|
75
|
-
|
|
76
|
+
checkOperationElementUrl('monitor/queries', 3);
|
|
76
77
|
// Then I expect "Global Operations Component" to still be displayed.
|
|
77
78
|
OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
|
|
78
79
|
});
|
|
@@ -87,7 +88,7 @@ describe('Operations Status Component', () => {
|
|
|
87
88
|
OperationsStatusesComponentSteps.openOperationStatusesDialog();
|
|
88
89
|
// When I click on "Running updates" operation element.
|
|
89
90
|
// Then I expect to be redirected to "Query and Update monitoring" view.
|
|
90
|
-
|
|
91
|
+
checkOperationElementUrl('monitor/queries', 4);
|
|
91
92
|
// Then I expect "Global Operations Component" to still be displayed.
|
|
92
93
|
OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
|
|
93
94
|
});
|
|
@@ -102,7 +103,7 @@ describe('Operations Status Component', () => {
|
|
|
102
103
|
OperationsStatusesComponentSteps.openOperationStatusesDialog();
|
|
103
104
|
// When I click on "Running imports" operation element.
|
|
104
105
|
// Then I expect to be redirected to "Query and Update monitoring" view.
|
|
105
|
-
|
|
106
|
+
checkOperationElementUrl('import', 2);
|
|
106
107
|
// Then I expect "Global Operations Component" to still be displayed.
|
|
107
108
|
OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
|
|
108
109
|
});
|
|
@@ -117,7 +118,7 @@ describe('Operations Status Component', () => {
|
|
|
117
118
|
OperationsStatusesComponentSteps.openOperationStatusesDialog();
|
|
118
119
|
// When I click on "Creating backup" operation element.
|
|
119
120
|
// Then I expect to be redirected to "Backup and Restore" view.
|
|
120
|
-
|
|
121
|
+
checkOperationElementUrl('monitor/backup-and-restore', 1);
|
|
121
122
|
// Then I expect "Global Operations Component" to still be displayed.
|
|
122
123
|
OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
|
|
123
124
|
|
|
@@ -133,9 +134,15 @@ describe('Operations Status Component', () => {
|
|
|
133
134
|
OperationsStatusesComponentSteps.openOperationStatusesDialog();
|
|
134
135
|
// When I click on "Unavailable nodes" operation element.
|
|
135
136
|
// Then I expect to be redirected to "Cluster Monitoring" view.
|
|
136
|
-
|
|
137
|
+
checkOperationElementUrl('cluster', 0);
|
|
137
138
|
// Then I expect "Global Operations Component" to still be displayed.
|
|
138
139
|
OperationsStatusesComponentSteps.getOperationsStatusesComponent().should('exist');
|
|
139
140
|
|
|
140
141
|
});
|
|
142
|
+
|
|
143
|
+
function checkOperationElementUrl(expectedUrl, operationIndex = 0) {
|
|
144
|
+
BrowserStubs.spyNavigateToUrl();
|
|
145
|
+
OperationsStatusesComponentSteps.getOperationStatuses().eq(operationIndex).click();
|
|
146
|
+
cy.get(BrowserStubs.NAVIGATE_TO_URL_ALIAS()).should('have.been.calledWithMatch', expectedUrl)
|
|
147
|
+
}
|
|
141
148
|
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {QueriesAndUpdatesSteps} from "../../../steps/monitoring/queries-and-updates-steps";
|
|
4
|
+
|
|
5
|
+
describe('Queries and Updates with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'queries-and-updates-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 Query and Updates page via URL with a repository selected
|
|
20
|
+
QueriesAndUpdatesSteps.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 Query and Updates page via the navigation menu with a repository selected
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnQueryAndUpdate();
|
|
29
|
+
// Then,
|
|
30
|
+
verifyInitialStateWithSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
34
|
+
QueriesAndUpdatesSteps.getQueryAndUpdatePage().should('be.visible');
|
|
35
|
+
QueriesAndUpdatesSteps.getPauseButton().should('be.visible');
|
|
36
|
+
QueriesAndUpdatesSteps.getNoRunningQueriesOrUpdates().should('be.visible')
|
|
37
|
+
.contains('No running queries or updates');
|
|
38
|
+
};
|
|
39
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
4
|
+
import {QueriesAndUpdatesSteps} from "../../../steps/monitoring/queries-and-updates-steps";
|
|
5
|
+
|
|
6
|
+
describe('Query and Updates without selected repository', () => {
|
|
7
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
8
|
+
// Given, I visit the Query and Updates page via URL without a repository selected
|
|
9
|
+
QueriesAndUpdatesSteps.visit();
|
|
10
|
+
// Then,
|
|
11
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('Should display the correct initial state when navigating via the navigation menu', () => {
|
|
15
|
+
// Given, I visit the Query and Updates page via the navigation menu without a repository selected
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnQueryAndUpdate();
|
|
18
|
+
// Then,
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
})
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
|
|
2
|
+
|
|
1
3
|
describe('Monitor Resources', () => {
|
|
2
4
|
|
|
3
5
|
let repositoryId;
|
|
@@ -10,8 +12,7 @@ describe('Monitor Resources', () => {
|
|
|
10
12
|
beforeEach(() => {
|
|
11
13
|
cy.presetRepository(repositoryId);
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
cy.window();
|
|
15
|
+
SystemMonitoringSteps.visit();
|
|
15
16
|
|
|
16
17
|
// Wait for loaders to disappear
|
|
17
18
|
getTabsPanel().should('be.visible');
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
|
|
4
|
+
|
|
5
|
+
describe('System monitoring with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'system-monitoring-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 System monitoring page via URL with a repository selected
|
|
20
|
+
SystemMonitoringSteps.visit();
|
|
21
|
+
// Then,
|
|
22
|
+
SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should display the correct initial state when navigating via the navigation bar', () => {
|
|
26
|
+
// Given, I visit the System monitoring page via the navigation menu with a repository selected
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnSystemMonitoring();
|
|
29
|
+
// Then,
|
|
30
|
+
SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {SystemMonitoringSteps} from "../../../steps/monitoring/system-monitoring-steps";
|
|
4
|
+
|
|
5
|
+
describe('System monitoring without selected repository', () => {
|
|
6
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
7
|
+
// Given, I visit the System monitoring page via URL without a repository selected
|
|
8
|
+
SystemMonitoringSteps.visit();
|
|
9
|
+
// Then,
|
|
10
|
+
SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('Should display the correct initial state when navigating via the navigation menu', () => {
|
|
14
|
+
// Given, I visit the System monitoring page via the navigation menu without a repository selected
|
|
15
|
+
HomeSteps.visit();
|
|
16
|
+
MainMenuSteps.clickOnSystemMonitoring();
|
|
17
|
+
// Then,
|
|
18
|
+
SystemMonitoringSteps.verifyInitialStateWithSelectedRepository();
|
|
19
|
+
});
|
|
20
|
+
})
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {NotFoundSteps} from "../../steps/not-found/not-found-steps.js";
|
|
2
|
+
|
|
3
|
+
describe('Not found page', () => {
|
|
4
|
+
|
|
5
|
+
it('Should display the 404 not found page for an unknown route', () => {
|
|
6
|
+
// Given, I navigate to an unknown route
|
|
7
|
+
NotFoundSteps.visit('/unknown-route');
|
|
8
|
+
|
|
9
|
+
// Then, I expect to see the 404 not found page
|
|
10
|
+
NotFoundSteps.getNotFoundBanner().should('be.visible');
|
|
11
|
+
NotFoundSteps.getNotFoundContent().should('contain', '404 That’s an error!');
|
|
12
|
+
NotFoundSteps.getNotFoundContent().should('contain', 'The requested URL was not found on this server. That’s all I know.');
|
|
13
|
+
NotFoundSteps.getGoHomeButton().should('be.visible');
|
|
14
|
+
|
|
15
|
+
// When, I click on the "Go Home" button
|
|
16
|
+
NotFoundSteps.clickGoHomeButton();
|
|
17
|
+
|
|
18
|
+
// Then, I expect to be redirected to the home page
|
|
19
|
+
NotFoundSteps.getUrl().should('eq', `${Cypress.config('baseUrl')}/`);
|
|
20
|
+
// And the banner should no longer be visible
|
|
21
|
+
NotFoundSteps.getNotFoundBanner().should('not.exist');
|
|
22
|
+
});
|
|
23
|
+
});
|