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
|
@@ -2,6 +2,8 @@ import { LicenseStubs } from "../../../stubs/license-stubs";
|
|
|
2
2
|
import { VisualGraphSteps } from "../../../steps/visual-graph-steps";
|
|
3
3
|
import { HtmlUtil } from "../../../utils/html-util";
|
|
4
4
|
|
|
5
|
+
const LONG_LABEL = 'A looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong label for Node Four'
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* RDF snippet with the necessary data to test all possible label scenarios:
|
|
7
9
|
* 1. (ex:node1) Node with a plain text label;
|
|
@@ -19,7 +21,7 @@ const RDF_SNIPPETS_WITH_NODE_LABELS_DATA =
|
|
|
19
21
|
'ex:node1 rdfs:label "Node One" .\n' +
|
|
20
22
|
'ex:node2 rdfs:label "Node<br>Two" .\n' +
|
|
21
23
|
'ex:node3 rdfs:label "Node\\nThree" .\n' +
|
|
22
|
-
|
|
24
|
+
`ex:node4 rdfs:label "${LONG_LABEL}" .\n` +
|
|
23
25
|
'\n' +
|
|
24
26
|
'# Relationships Between Nodes\n' +
|
|
25
27
|
'ex:node1 ex:connectedTo ex:node2 .\n' +
|
|
@@ -60,9 +62,19 @@ describe("Node Basics", () => {
|
|
|
60
62
|
VisualGraphSteps.getNodeLabel('http://example.com/node3').should('have.html', 'Node<br>Three');
|
|
61
63
|
|
|
62
64
|
// The label of ex:node4 to be displayed with a long label (no truncation).
|
|
63
|
-
VisualGraphSteps.getNodeLabel('http://example.com/node4').should('have.html',
|
|
65
|
+
VisualGraphSteps.getNodeLabel('http://example.com/node4').should('have.html', LONG_LABEL);
|
|
64
66
|
|
|
65
67
|
// The label of ex:node4 should be truncated with ellipsis because it has a long label.
|
|
66
68
|
HtmlUtil.verifyEllipsis(VisualGraphSteps.getNodeLabel('http://example.com/node4'));
|
|
69
|
+
|
|
70
|
+
// When: I disable the "Truncate long labels" setting.
|
|
71
|
+
VisualGraphSteps.openVisualGraphSettings();
|
|
72
|
+
VisualGraphSteps.getTruncateLabelsCheckbox().should('be.checked');
|
|
73
|
+
VisualGraphSteps.toggleTruncateLabelsCheckbox();
|
|
74
|
+
VisualGraphSteps.getTruncateLabelsCheckbox().should('not.be.checked');
|
|
75
|
+
VisualGraphSteps.saveSettings();
|
|
76
|
+
|
|
77
|
+
// Then, I expect to see a full non-truncated label for ex:node4.
|
|
78
|
+
HtmlUtil.verifyNoEllipsis(VisualGraphSteps.getNodeLabel('http://example.com/node4'));
|
|
67
79
|
});
|
|
68
80
|
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {VisualGraphSteps} from "../../../steps/visual-graph-steps";
|
|
4
|
+
|
|
5
|
+
describe('Visual Graph with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'visual-graph-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cy.deleteRepository(repositoryId);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should render Visual Graph with selected repository via URL', () => {
|
|
19
|
+
// Given, I visit the Visual Graph page via URL and I have a selected repository
|
|
20
|
+
VisualGraphSteps.visit();
|
|
21
|
+
// Then, I expect to see the Visual Graph with the classes and relationships
|
|
22
|
+
verifyVisualGraphWithSelectedRepository();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should render Visual Graph with selected repository via navigation menu', () => {
|
|
26
|
+
// Given, I visit the Visual Graph page via navigation menu and I have a selected repository
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnVisualGraph();
|
|
29
|
+
// Then, I expect to see the Visual Graph with the classes and relationships
|
|
30
|
+
verifyVisualGraphWithSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function verifyVisualGraphWithSelectedRepository() {
|
|
35
|
+
VisualGraphSteps.getSearchField().should('be.visible');
|
|
36
|
+
VisualGraphSteps.getGraphConfigurationsArea().should('be.visible');
|
|
37
|
+
VisualGraphSteps.getSavedGraphsArea().should('be.visible');
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
4
|
+
import {VisualGraphSteps} from "../../../steps/visual-graph-steps";
|
|
5
|
+
|
|
6
|
+
describe('Visual Graph without selected repository', () => {
|
|
7
|
+
it('Should render Visual Graph without selected repository via URL', () => {
|
|
8
|
+
// Given, I visit the Visual Graph page via URL and I don't have any repositories
|
|
9
|
+
VisualGraphSteps.visit();
|
|
10
|
+
// Then
|
|
11
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('Should render Visual Graph without selected repository via navigation menu', () => {
|
|
15
|
+
// Given, I visit the Visual Graph page via navigation menu and I don't have any repositories
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnVisualGraph();
|
|
18
|
+
// Then
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
})
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {VisualGraphSteps} from
|
|
2
|
-
import {ApplicationSteps} from
|
|
3
|
-
import {LicenseStubs} from
|
|
4
|
-
import {AutocompleteStubs} from
|
|
1
|
+
import {VisualGraphSteps} from '../../../steps/visual-graph-steps';
|
|
2
|
+
import {ApplicationSteps} from '../../../steps/application-steps';
|
|
3
|
+
import {LicenseStubs} from '../../../stubs/license-stubs';
|
|
4
|
+
import {AutocompleteStubs} from '../../../stubs/autocomplete/autocomplete-stubs';
|
|
5
|
+
import {MainMenuSteps} from '../../../steps/main-menu-steps.js';
|
|
6
|
+
import HomeSteps from '../../../steps/home-steps.js';
|
|
5
7
|
|
|
6
8
|
const FILE_TO_IMPORT = 'wine.rdf';
|
|
7
9
|
const VALID_RESOURCE = 'USRegion';
|
|
@@ -24,7 +26,17 @@ describe('Visual graph screen validation', () => {
|
|
|
24
26
|
cy.deleteRepository(repositoryId);
|
|
25
27
|
});
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
describe('Embedded', () => {
|
|
30
|
+
it('Should not show main manu, header and footer in embedded mode', () => {
|
|
31
|
+
cy.visit('/graphs-visualizations?uri=http:%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23Chardonnay&embedded');
|
|
32
|
+
VisualGraphSteps.verifyPageLoaded();
|
|
33
|
+
MainMenuSteps.getMainMenu().should('not.exist');
|
|
34
|
+
HomeSteps.getPageFooter().should('not.exist');
|
|
35
|
+
HomeSteps.getPageHeader().should('not.exist');
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
describe('When autocomplete is disabled', () => {
|
|
28
40
|
it('Test notification when autocomplete is disabled', () => {
|
|
29
41
|
cy.visit('graphs-visualizations');
|
|
30
42
|
cy.window();
|
|
@@ -38,7 +50,7 @@ describe('Visual graph screen validation', () => {
|
|
|
38
50
|
});
|
|
39
51
|
});
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
describe('When autocomplete is enabled', () => {
|
|
42
54
|
beforeEach(() => {
|
|
43
55
|
cy.enableAutocomplete(repositoryId);
|
|
44
56
|
//http://localhost:9000/graphs-visualizations?uri=http:%2F%2Fwww.w3.org%2FTR%2F2003%2FPR-owl-guide-20031209%2Fwine%23USRegion
|
|
@@ -54,12 +66,7 @@ describe('Visual graph screen validation', () => {
|
|
|
54
66
|
ApplicationSteps.getErrorNotifications().should('be.visible').and('contain', 'Invalid IRI');
|
|
55
67
|
});
|
|
56
68
|
|
|
57
|
-
it('Test search for a valid resource', {
|
|
58
|
-
retries: {
|
|
59
|
-
openMode: 0,
|
|
60
|
-
runMode: 1
|
|
61
|
-
}
|
|
62
|
-
}, () => {
|
|
69
|
+
it('Test search for a valid resource', () => {
|
|
63
70
|
AutocompleteStubs.spyAutocompleteStatus();
|
|
64
71
|
VisualGraphSteps.visit();
|
|
65
72
|
// Verify autocomplete is ON, because sometimes in CI it is OFF and fails when searching for Resource
|
|
@@ -72,17 +79,17 @@ describe('Visual graph screen validation', () => {
|
|
|
72
79
|
VisualGraphSteps.verifyPageLoaded();
|
|
73
80
|
VisualGraphSteps.searchForResourceAndOpen(VALID_RESOURCE, VALID_RESOURCE);
|
|
74
81
|
// Verify redirection to existing visual graph
|
|
75
|
-
cy.url().should('
|
|
82
|
+
cy.url().should('include', 'USRegion');
|
|
76
83
|
});
|
|
77
84
|
|
|
78
85
|
it('Test default graph state', () => {
|
|
79
86
|
VisualGraphSteps.openUSRegionUri();
|
|
80
|
-
|
|
87
|
+
// Verify that the default settings are as follows:
|
|
88
|
+
// Maximum links to show: 100
|
|
89
|
+
VisualGraphSteps.getLinksNumberField().and('have.value', '100');
|
|
81
90
|
|
|
91
|
+
VisualGraphSteps.openVisualGraphSettings();
|
|
82
92
|
cy.get('.filter-sidepanel').as('sidepanel').should('be.visible').within(() => {
|
|
83
|
-
// Verify that the default settings are as follows:
|
|
84
|
-
// Maximum links to show: 20
|
|
85
|
-
VisualGraphSteps.getLinksNumberField().and('have.value', '20');
|
|
86
93
|
// Preferred lang: en
|
|
87
94
|
cy.get('.preferred-languages .tag-item').should('have.length', 1)
|
|
88
95
|
.and('contain', 'en');
|
|
@@ -119,40 +126,20 @@ describe('Visual graph screen validation', () => {
|
|
|
119
126
|
|
|
120
127
|
it('Test invalid links limit should show error to user ', () => {
|
|
121
128
|
VisualGraphSteps.openUSRegionUri();
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
.should('be.visible')
|
|
134
|
-
.and('contain.text', 'Invalid links limit');
|
|
135
|
-
});
|
|
136
|
-
// Try to save the invalid value
|
|
137
|
-
VisualGraphSteps.getSaveSettingsButton().and('not.be.disabled')
|
|
138
|
-
.click();
|
|
139
|
-
// Then reset to default settings
|
|
140
|
-
VisualGraphSteps.getResetSettingsButton().and('not.be.disabled')
|
|
141
|
-
.click()
|
|
142
|
-
.then(() => {
|
|
143
|
-
VisualGraphSteps.getLinksNumberField().and('have.value', '20');
|
|
144
|
-
cy.get('.idError')
|
|
145
|
-
.should('not.exist');
|
|
146
|
-
});
|
|
147
|
-
});
|
|
129
|
+
// Verify that the default settings are as follows:
|
|
130
|
+
// Maximum links to show: 100
|
|
131
|
+
VisualGraphSteps.getLinksNumberField().and('have.value', '100');
|
|
132
|
+
// Update default 100
|
|
133
|
+
VisualGraphSteps.updateLinksLimitField('1001')
|
|
134
|
+
.then(() => {
|
|
135
|
+
// Try to put invalid value such as 1001
|
|
136
|
+
cy.get('.idError')
|
|
137
|
+
.should('be.visible')
|
|
138
|
+
.and('contain.text', 'Enter a number up to 1000');
|
|
139
|
+
});
|
|
148
140
|
});
|
|
149
141
|
|
|
150
|
-
it('Test search for a valid resource with links', {
|
|
151
|
-
retries: {
|
|
152
|
-
runMode: 1,
|
|
153
|
-
openMode: 0
|
|
154
|
-
}
|
|
155
|
-
}, () => {
|
|
142
|
+
it('Test search for a valid resource with links', () => {
|
|
156
143
|
VisualGraphSteps.openUSRegionUri();
|
|
157
144
|
// Check include inferred
|
|
158
145
|
VisualGraphSteps.toggleInferredStatements(true);
|
|
@@ -160,10 +147,10 @@ describe('Visual graph screen validation', () => {
|
|
|
160
147
|
VisualGraphSteps.openVisualGraphHome();
|
|
161
148
|
// Search for "USRegion" again
|
|
162
149
|
VisualGraphSteps.searchForResourceAndOpen(VALID_RESOURCE, VALID_RESOURCE);
|
|
163
|
-
// Verify that
|
|
164
|
-
VisualGraphSteps.getPredicates().should('have.length',
|
|
150
|
+
// Verify that 36 links (nodes) are displayed
|
|
151
|
+
VisualGraphSteps.getPredicates().should('have.length', 36);
|
|
165
152
|
// Verify that links are counted by nodes and not by triples (predicates)
|
|
166
|
-
VisualGraphSteps.getNodes().and('have.length',
|
|
153
|
+
VisualGraphSteps.getNodes().and('have.length', 37);
|
|
167
154
|
});
|
|
168
155
|
|
|
169
156
|
it('Test collapse and expand a node', () => {
|
|
@@ -211,9 +198,10 @@ describe('Visual graph screen validation', () => {
|
|
|
211
198
|
// Verify that before given node is removed there are 4 of them
|
|
212
199
|
VisualGraphSteps.getNodes().and('have.length', 4);
|
|
213
200
|
// Click once on node different than parent one with the mouse
|
|
201
|
+
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
|
214
202
|
cy.get('.node-wrapper circle').eq(1)
|
|
215
|
-
|
|
216
|
-
|
|
203
|
+
// The wait is needed because mouseover event will result in
|
|
204
|
+
// pop-up of menu icons only if nodes are not moving
|
|
217
205
|
.should('be.visible').wait(5000)
|
|
218
206
|
.trigger('mouseover', {force: true});
|
|
219
207
|
// Select remove function
|
|
@@ -262,34 +250,34 @@ describe('Visual graph screen validation', () => {
|
|
|
262
250
|
});
|
|
263
251
|
|
|
264
252
|
it('Test verify mouse/keyboard actions', () => {
|
|
265
|
-
const mouseActions = '
|
|
266
|
-
'\n
|
|
267
|
-
'
|
|
268
|
-
'
|
|
269
|
-
'
|
|
270
|
-
'
|
|
271
|
-
'
|
|
272
|
-
'Removes a node and its links\n
|
|
273
|
-
'Ctrl
|
|
274
|
-
'
|
|
275
|
-
'Click
|
|
276
|
-
'
|
|
277
|
-
'
|
|
278
|
-
'
|
|
279
|
-
'
|
|
280
|
-
'
|
|
281
|
-
|
|
282
|
-
'
|
|
283
|
-
|
|
284
|
-
'Tap
|
|
285
|
-
'
|
|
286
|
-
'Tap
|
|
287
|
-
'
|
|
288
|
-
|
|
289
|
-
'
|
|
290
|
-
|
|
291
|
-
'
|
|
292
|
-
'Rotate the graph to the right\n';
|
|
253
|
+
const mouseActions = 'MOUSE ACTIONS\n \n \n ' +
|
|
254
|
+
'Single click\n ' +
|
|
255
|
+
'View node details and properties\n \n \n ' +
|
|
256
|
+
'Double click\n ' +
|
|
257
|
+
'Load node connections\n \n \n ' +
|
|
258
|
+
'Ctrl|Cmd\n ' +
|
|
259
|
+
'Click\n ' +
|
|
260
|
+
'Removes a node and its links\n \n \n ' +
|
|
261
|
+
'Ctrl|Cmd\n ' +
|
|
262
|
+
'Shift\n ' +
|
|
263
|
+
'Click\n ' +
|
|
264
|
+
'Restart the view with that node as a central one\n \n \n ' +
|
|
265
|
+
'Click and drag a node\n ' +
|
|
266
|
+
'Move a node by dragging it (will also pin down the node)\n \n \n ' +
|
|
267
|
+
'Right click a node\n ' +
|
|
268
|
+
'Pin down or unpin the node\n \n \n ' +
|
|
269
|
+
'Click and drag outside a node\n ' +
|
|
270
|
+
'Move the whole graph\n \n \n \n \n';
|
|
271
|
+
const touchActions = 'TOUCH ACTIONS\n \n \n ' +
|
|
272
|
+
'Tap\n ' +
|
|
273
|
+
'View node details and properties\n \n \n ' +
|
|
274
|
+
'Tap and hold\n ' +
|
|
275
|
+
'Removes a node and its links\n \n \n ' +
|
|
276
|
+
'Tap twice\n ' +
|
|
277
|
+
'Load node connections\n \n \n \n \n';
|
|
278
|
+
const keyboardActions = 'KEYBOARD ACTIONS\n \n \n \n ' +
|
|
279
|
+
'Rotate the graph to the left\n \n \n \n ' +
|
|
280
|
+
'Rotate the graph to the right\n \n \n \n \n \n';
|
|
293
281
|
|
|
294
282
|
VisualGraphSteps.openUSRegionUri();
|
|
295
283
|
// Click on "mouse and keyboard actions" in the lower right corner of the screen
|
|
@@ -309,20 +297,16 @@ describe('Visual graph screen validation', () => {
|
|
|
309
297
|
it('Test maximum links to show', () => {
|
|
310
298
|
VisualGraphSteps.openUSRegionUri();
|
|
311
299
|
|
|
312
|
-
// Verify that
|
|
313
|
-
VisualGraphSteps.getPredicates().should('have.length',
|
|
300
|
+
// Verify that 36 links (nodes) are displayed
|
|
301
|
+
VisualGraphSteps.getPredicates().should('have.length', 36);
|
|
314
302
|
|
|
315
|
-
VisualGraphSteps.openVisualGraphSettings();
|
|
316
303
|
// Set maximum links to 2
|
|
317
304
|
VisualGraphSteps.updateLinksLimitField('2');
|
|
318
|
-
VisualGraphSteps.saveSettings();
|
|
319
305
|
// Verify that the diagram is updated
|
|
320
306
|
VisualGraphSteps.getPredicates().should('have.length', 2);
|
|
321
307
|
|
|
322
|
-
VisualGraphSteps.openVisualGraphSettings();
|
|
323
308
|
// Set maximum links to 100
|
|
324
309
|
VisualGraphSteps.updateLinksLimitField('100');
|
|
325
|
-
VisualGraphSteps.saveSettings();
|
|
326
310
|
// Verify that the diagram is updated
|
|
327
311
|
VisualGraphSteps.getPredicates().should('have.length', 36);
|
|
328
312
|
});
|
|
@@ -333,10 +317,10 @@ describe('Visual graph screen validation', () => {
|
|
|
333
317
|
VisualGraphSteps.toggleInferredStatements(true);
|
|
334
318
|
|
|
335
319
|
// Verify that many results are displayed
|
|
336
|
-
// Verify that
|
|
337
|
-
VisualGraphSteps.getPredicates().should('have.length',
|
|
320
|
+
// Verify that 36 links (nodes) are displayed
|
|
321
|
+
VisualGraphSteps.getPredicates().should('have.length', 36);
|
|
338
322
|
// Verify that more than three nodes are displayed
|
|
339
|
-
VisualGraphSteps.getNodes().and('have.length',
|
|
323
|
+
VisualGraphSteps.getNodes().and('have.length', 37);
|
|
340
324
|
|
|
341
325
|
// Switch Include Inferred Statements off
|
|
342
326
|
VisualGraphSteps.toggleInferredStatements(false);
|
|
@@ -432,9 +416,6 @@ describe('Visual graph screen validation', () => {
|
|
|
432
416
|
// Modify the settings first
|
|
433
417
|
VisualGraphSteps.openVisualGraphSettings();
|
|
434
418
|
// Verify that the default settings are as follows:
|
|
435
|
-
// Maximum links to show: 20
|
|
436
|
-
VisualGraphSteps.updateLinksLimitField('10')
|
|
437
|
-
.should('have.value', '10');
|
|
438
419
|
// Preferred lang: en
|
|
439
420
|
cy.get('.preferred-languages .tag-item').should('have.length', 1)
|
|
440
421
|
.eq(0).should('contain', 'en');
|
|
@@ -475,8 +456,6 @@ describe('Visual graph screen validation', () => {
|
|
|
475
456
|
|
|
476
457
|
VisualGraphSteps.openVisualGraphSettings();
|
|
477
458
|
// Verify that the default settings are as follows:
|
|
478
|
-
// Maximum links to show: 20
|
|
479
|
-
VisualGraphSteps.getLinksNumberField().and('have.value', '20');
|
|
480
459
|
// Preferred lang: en
|
|
481
460
|
cy.get('.preferred-languages .tag-item').should('have.length', 1);
|
|
482
461
|
// Include inferred: false
|
|
@@ -245,7 +245,6 @@ describe('Graphql: create endpoint', () => {
|
|
|
245
245
|
// Then I should be on the generate endpoint step
|
|
246
246
|
CreateGraphqlEndpointSteps.getActiveStep().should('contain', 'Create');
|
|
247
247
|
CreateGraphqlEndpointSteps.getGenerateEndpointView().should('be.visible');
|
|
248
|
-
|
|
249
248
|
});
|
|
250
249
|
|
|
251
250
|
it('should be able to cancel the endpoint creation wizard', () => {
|
|
@@ -277,5 +276,4 @@ describe('Graphql: create endpoint', () => {
|
|
|
277
276
|
ModalDialogSteps.getDialog().should('not.exist');
|
|
278
277
|
cy.url().should('include', '/graphql/endpoints');
|
|
279
278
|
});
|
|
280
|
-
|
|
281
279
|
});
|
|
@@ -113,7 +113,7 @@ describe('Graphql: edit endpoint settings', () => {
|
|
|
113
113
|
"queryPrefix": null,
|
|
114
114
|
"mutationPrefix": null,
|
|
115
115
|
"sparqlFederatedServices": "{}",
|
|
116
|
-
"sparqlFederatedServicesPriority":
|
|
116
|
+
"sparqlFederatedServicesPriority": "Deployment configurations",
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
});
|
package/{integration → e2e-legacy}/graphql/filter-graphql-endpoints-on-management-view.spec.js
RENAMED
|
@@ -45,7 +45,7 @@ describe('GraphQL endpoints filtering', () => {
|
|
|
45
45
|
GraphqlEndpointManagementSteps.getEndpointsInfo().should('have.length', 3);
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
it
|
|
48
|
+
it('should render no results banner when all endpoints are filtered', () => {
|
|
49
49
|
// Given I have a repository with active GraphQL endpoints
|
|
50
50
|
// When I visit the endpoint management view
|
|
51
51
|
GraphqlEndpointManagementSteps.visit();
|
|
@@ -69,6 +69,8 @@ describe('GraphQL endpoints management', () => {
|
|
|
69
69
|
// Given I have a repository with active GraphQL endpoints
|
|
70
70
|
// When I visit the endpoint management view
|
|
71
71
|
GraphqlEndpointManagementSteps.visit();
|
|
72
|
+
// And I toggle the 3rd endpoint's active state to inactive
|
|
73
|
+
GraphqlEndpointManagementSteps.toggleEndpointActiveState(2);
|
|
72
74
|
// Then I should see the endpoints info
|
|
73
75
|
GraphqlEndpointManagementSteps.getEndpointTable().within(() => {
|
|
74
76
|
cy.get('thead th').should('have.length', 10);
|
|
@@ -85,7 +87,6 @@ describe('GraphQL endpoints management', () => {
|
|
|
85
87
|
GraphqlEndpointManagementSteps.getEndpointsInfo().should('have.length', 3);
|
|
86
88
|
GraphqlEndpointManagementSteps.verifyEndpointInfo([
|
|
87
89
|
{
|
|
88
|
-
status: 'deleted',
|
|
89
90
|
id: 'swapi',
|
|
90
91
|
label: 'Ontotext Star Wars Ontology',
|
|
91
92
|
description: '',
|
|
@@ -96,7 +97,6 @@ describe('GraphQL endpoints management', () => {
|
|
|
96
97
|
properties: 68
|
|
97
98
|
},
|
|
98
99
|
{
|
|
99
|
-
status: 'deleted',
|
|
100
100
|
id: 'swapi-planets',
|
|
101
101
|
label: 'Star Wars planets API',
|
|
102
102
|
description: '',
|
|
@@ -107,12 +107,12 @@ describe('GraphQL endpoints management', () => {
|
|
|
107
107
|
properties: 10
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
status:
|
|
110
|
+
status: "deleted",
|
|
111
111
|
id: 'swapi-species',
|
|
112
112
|
label: 'Star Wars species API',
|
|
113
113
|
description: '',
|
|
114
114
|
default: false,
|
|
115
|
-
active:
|
|
115
|
+
active: false,
|
|
116
116
|
modified: ApplicationSteps.getCurrentDate(),
|
|
117
117
|
types: 2,
|
|
118
118
|
properties: 17
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import HomeSteps from "../../steps/home-steps";
|
|
4
|
+
|
|
5
|
+
describe('GraphQL endpoint management with endpoints', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'graphql-endpoint-management-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
cy.importServerFile(repositoryId, 'swapi-dataset.ttl');
|
|
13
|
+
cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema.yaml', 'swapi');
|
|
14
|
+
cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema-film-restricted.yaml', 'swapi');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
cy.deleteRepository(repositoryId);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('Should render GraphQL endpoint management with endpoints via URL', () => {
|
|
22
|
+
// Given, I visit the GraphQL endpoint management page via URL and I have endpoints
|
|
23
|
+
GraphqlEndpointManagementSteps.visit();
|
|
24
|
+
// Then, I expect to see the GraphQL endpoint management page
|
|
25
|
+
validateGraphQlEndpointManagementPageWithEndpoints();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should render GraphQL endpoint management with endpoints via navigation menu', () => {
|
|
29
|
+
// Given, I visit the GraphQL endpoint management page via navigation menu and I have endpoints
|
|
30
|
+
HomeSteps.visit();
|
|
31
|
+
MainMenuSteps.clickOnEndpointManagement();
|
|
32
|
+
// Then, I expect to see the GraphQL endpoint management page
|
|
33
|
+
validateGraphQlEndpointManagementPageWithEndpoints();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
function validateGraphQlEndpointManagementPageWithEndpoints() {
|
|
38
|
+
GraphqlEndpointManagementSteps.getCreateEndpointButton().should('be.visible');
|
|
39
|
+
GraphqlEndpointManagementSteps.getImportEndpointSchemaDefinitionButton().should('be.visible');
|
|
40
|
+
GraphqlEndpointManagementSteps.getEndpointFilterField().should('be.visible');
|
|
41
|
+
GraphqlEndpointManagementSteps.getEndpointTable().should('be.visible');
|
|
42
|
+
GraphqlEndpointManagementSteps.getNoEndpointsInRepositoryBanner().should('not.exist');
|
|
43
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import HomeSteps from "../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
|
|
4
|
+
|
|
5
|
+
describe('GraphQL endpoint management with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'graphql-endpoint-management-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cy.deleteRepository(repositoryId);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should render GraphQL endpoint management with selected repository via URL', () => {
|
|
19
|
+
// Given, I visit the GraphQL endpoint management page via URL and I have a selected repository
|
|
20
|
+
GraphqlEndpointManagementSteps.visit();
|
|
21
|
+
// Then, I expect to see the GraphQL endpoint management page
|
|
22
|
+
validateNoEndpointsGraphQlEndpointManagementPage();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should render GraphQL endpoint management with selected repository via navigation menu', () => {
|
|
26
|
+
// Given, I visit the GraphQL endpoint management page via navigation menu and I have a selected repository'
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnEndpointManagement();
|
|
29
|
+
// Then, I expect to see the GraphQL endpoint management page
|
|
30
|
+
validateNoEndpointsGraphQlEndpointManagementPage()
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function validateNoEndpointsGraphQlEndpointManagementPage() {
|
|
35
|
+
GraphqlEndpointManagementSteps.getCreateEndpointButton().should('be.visible');
|
|
36
|
+
GraphqlEndpointManagementSteps.getImportEndpointSchemaDefinitionButton().should('be.visible');
|
|
37
|
+
GraphqlEndpointManagementSteps.getNoEndpointsInRepositoryBanner().should('be.visible');
|
|
38
|
+
}
|
|
39
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {ErrorSteps} from "../../steps/error-steps";
|
|
2
|
+
import {GraphqlEndpointManagementSteps} from "../../steps/graphql/graphql-endpoint-management-steps";
|
|
3
|
+
import HomeSteps from "../../steps/home-steps";
|
|
4
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
5
|
+
|
|
6
|
+
describe('GraphQl endpoint management without selected repository', () => {
|
|
7
|
+
it('Should render GraphQL endpoint management page without selected repository via URL', () => {
|
|
8
|
+
// Given, I visit the GraphQL endpoint management page via URL and I haven't selected a repository
|
|
9
|
+
GraphqlEndpointManagementSteps.visit();
|
|
10
|
+
// Then
|
|
11
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('Should render GraphQL endpoint management without selected repository via navigation menu', () => {
|
|
15
|
+
// Given, I visit the GraphQL endpoint management page via navigation menu and I haven't selected a repository'
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnEndpointManagement();
|
|
18
|
+
// Then
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
})
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../steps/home-steps";
|
|
3
|
+
import {GraphqlPlaygroundSteps} from "../../steps/graphql/graphql-playground-steps";
|
|
4
|
+
|
|
5
|
+
describe('GraphQL playground with endpoints', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'graphql-playground-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
cy.importServerFile(repositoryId, 'swapi-dataset.ttl');
|
|
13
|
+
cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema.yaml', 'swapi');
|
|
14
|
+
cy.uploadGraphqlSchema(repositoryId, 'graphql/soml/swapi-schema-film-restricted.yaml', 'swapi');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
cy.deleteRepository(repositoryId);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('Should render GraphQL playground with endpoints via URL', () => {
|
|
22
|
+
// Given, I visit the GraphQL playground page via URL and I have endpoints
|
|
23
|
+
GraphqlPlaygroundSteps.visit();
|
|
24
|
+
// Then, I expect to see the GraphQL playground page
|
|
25
|
+
validateGraphQlPlaygroundWithEndpoints();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should render GraphQL playground with endpoints via navigation menu', () => {
|
|
29
|
+
// Given, I visit the GraphQL playground page via navigation menu and I have endpoints
|
|
30
|
+
HomeSteps.visit();
|
|
31
|
+
MainMenuSteps.clickOnGraphQLPlayground();
|
|
32
|
+
// Then, I expect to see the GraphQL playground page
|
|
33
|
+
validateGraphQlPlaygroundWithEndpoints();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
function validateGraphQlPlaygroundWithEndpoints() {
|
|
38
|
+
GraphqlPlaygroundSteps.getEndpointsSelectMenu().should('be.visible');
|
|
39
|
+
GraphqlPlaygroundSteps.getPlayground().should('be.visible');
|
|
40
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import HomeSteps from "../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import {GraphqlPlaygroundSteps} from "../../steps/graphql/graphql-playground-steps";
|
|
4
|
+
|
|
5
|
+
describe('GraphQL playground with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'graphql-playground-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cy.deleteRepository(repositoryId);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should render GraphQL playground with selected repository via URL', () => {
|
|
19
|
+
// Given, I visit the GraphQL playground page via URL and I have a selected repository
|
|
20
|
+
GraphqlPlaygroundSteps.visit();
|
|
21
|
+
// Then, I expect to see the GraphQL no schemas alert, because I don't have any endpoints
|
|
22
|
+
validateSelectedRepository();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should render GraphQL playground with selected repository via navigation menu', () => {
|
|
26
|
+
// Given, I visit the GraphQL playground page via navigation menu and I have a selected repository'
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnGraphQLPlayground();
|
|
29
|
+
// Then, I expect to see the GraphQL no schemas alert, because I don't have any endpoints
|
|
30
|
+
validateSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function validateSelectedRepository() {
|
|
35
|
+
GraphqlPlaygroundSteps.getNoSchemasAlert()
|
|
36
|
+
.should('be.visible')
|
|
37
|
+
.and('contain', 'No active endpoints found in the current repository. Manage the GraphQL schemas here');
|
|
38
|
+
}
|