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,28 +2,22 @@ import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
|
2
2
|
import {TTYGStubs} from "../../stubs/ttyg/ttyg-stubs";
|
|
3
3
|
import {RepositoriesStubs} from "../../stubs/repositories/repositories-stubs";
|
|
4
4
|
import {TtygAgentSettingsModalSteps} from "../../steps/ttyg/ttyg-agent-settings-modal.steps";
|
|
5
|
-
import {SimilarityIndexStubs} from "../../stubs/similarity-index-stubs";
|
|
6
5
|
import {ConnectorStubs} from "../../stubs/connector-stubs";
|
|
7
|
-
import {ModalDialogSteps} from "../../steps/modal-dialog-steps"
|
|
8
|
-
import {RepositoriesStub} from "../../stubs/repositories-stub";
|
|
6
|
+
import {ModalDialogSteps} from "../../steps/modal-dialog-steps"
|
|
9
7
|
import {AlertDialogSteps} from "../../steps/alert-dialog-steps";
|
|
8
|
+
import {ApplicationSteps} from '../../steps/application-steps.js';
|
|
10
9
|
|
|
11
10
|
describe('TTYG create new agent', () => {
|
|
12
11
|
const repositoryId = 'starwars';
|
|
13
12
|
|
|
14
13
|
beforeEach(() => {
|
|
15
14
|
RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
|
|
16
|
-
|
|
15
|
+
RepositoriesStubs.stubBaseEndpoints(repositoryId);
|
|
17
16
|
cy.presetRepository(repositoryId);
|
|
18
17
|
TTYGStubs.stubAgentDefaultsGet();
|
|
19
18
|
});
|
|
20
19
|
|
|
21
|
-
it('Should be able to cancel the new agent creation on the no agents view', {
|
|
22
|
-
retries: {
|
|
23
|
-
runMode: 1,
|
|
24
|
-
openMode: 0
|
|
25
|
-
}
|
|
26
|
-
}, () => {
|
|
20
|
+
it('Should be able to cancel the new agent creation on the no agents view', () => {
|
|
27
21
|
TTYGStubs.stubChatsListGetNoResults();
|
|
28
22
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
29
23
|
// Given I have opened the ttyg page
|
|
@@ -39,12 +33,7 @@ describe('TTYG create new agent', () => {
|
|
|
39
33
|
TTYGViewSteps.getNoAgentsView().should('be.visible');
|
|
40
34
|
});
|
|
41
35
|
|
|
42
|
-
it('Should be able to create a new agent with SPARQL extraction method on the no agents view', {
|
|
43
|
-
retries: {
|
|
44
|
-
runMode: 1,
|
|
45
|
-
openMode: 0
|
|
46
|
-
}
|
|
47
|
-
}, () => {
|
|
36
|
+
it('Should be able to create a new agent with SPARQL extraction method on the no agents view', () => {
|
|
48
37
|
TTYGStubs.stubChatsListGetNoResults();
|
|
49
38
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json', 1000);
|
|
50
39
|
// Given I have opened the ttyg page
|
|
@@ -68,10 +57,12 @@ describe('TTYG create new agent', () => {
|
|
|
68
57
|
// enable SPARQL extraction method and disable it again to check the error message for the extraction methods
|
|
69
58
|
TtygAgentSettingsModalSteps.enableSparqlExtractionMethod();
|
|
70
59
|
// The component here is the bootstrap collapse component, so we need to wait for the animation to finish, otherwise the test might fail randomly
|
|
60
|
+
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
|
71
61
|
cy.wait(1000);
|
|
72
62
|
TtygAgentSettingsModalSteps.getSparqlExtractionMethodPanel().should('be.visible');
|
|
73
63
|
TtygAgentSettingsModalSteps.disableSparqlExtractionMethod();
|
|
74
64
|
// The component here is the bootstrap collapse component, so we need to wait for the animation to finish, otherwise the test might fail randomly
|
|
65
|
+
// eslint-disable-next-line cypress/no-unnecessary-waiting
|
|
75
66
|
cy.wait(1000);
|
|
76
67
|
TtygAgentSettingsModalSteps.getSparqlExtractionMethodPanel().should('not.exist');
|
|
77
68
|
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.disabled');
|
|
@@ -105,12 +96,12 @@ describe('TTYG create new agent', () => {
|
|
|
105
96
|
|
|
106
97
|
// Validate the other agent settings
|
|
107
98
|
|
|
108
|
-
//
|
|
109
|
-
TtygAgentSettingsModalSteps.
|
|
110
|
-
TtygAgentSettingsModalSteps.
|
|
99
|
+
// LLM model
|
|
100
|
+
TtygAgentSettingsModalSteps.getLLMModelField().should('have.value', 'gpt-4o');
|
|
101
|
+
TtygAgentSettingsModalSteps.clearLLMModel();
|
|
111
102
|
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.disabled');
|
|
112
|
-
TtygAgentSettingsModalSteps.
|
|
113
|
-
TtygAgentSettingsModalSteps.
|
|
103
|
+
TtygAgentSettingsModalSteps.getLLMModelError().should('be.visible').and('contain', 'This field is required');
|
|
104
|
+
TtygAgentSettingsModalSteps.typeLLMModel('gpt-4o');
|
|
114
105
|
|
|
115
106
|
// temperature
|
|
116
107
|
TtygAgentSettingsModalSteps.setTemperature('0.2');
|
|
@@ -143,11 +134,13 @@ describe('TTYG create new agent', () => {
|
|
|
143
134
|
TtygAgentSettingsModalSteps.saveAgent();
|
|
144
135
|
TtygAgentSettingsModalSteps.getCreatingAgentLoader().should('be.visible');
|
|
145
136
|
cy.wait('@create-agent').then((interception) => {
|
|
137
|
+
// eslint-disable-next-line no-undef
|
|
146
138
|
assert.deepEqual(interception.request.body, {
|
|
147
139
|
"id": "id",
|
|
148
140
|
"name": "Test Agent",
|
|
149
141
|
"repositoryId": "starwars",
|
|
150
142
|
"model": "gpt-4o",
|
|
143
|
+
"contextSize": 128000,
|
|
151
144
|
"temperature": "0.2",
|
|
152
145
|
"topP": "0.2",
|
|
153
146
|
"seed": 0,
|
|
@@ -179,12 +172,7 @@ describe('TTYG create new agent', () => {
|
|
|
179
172
|
TTYGViewSteps.getAgent(0).should('contain', 'Test Agent').and('contain', 'starwars');
|
|
180
173
|
});
|
|
181
174
|
|
|
182
|
-
it('Should require FTS to be enabled for selected repository when creating agent with FTS extraction method', {
|
|
183
|
-
retries: {
|
|
184
|
-
runMode: 1,
|
|
185
|
-
openMode: 0
|
|
186
|
-
}
|
|
187
|
-
}, () => {
|
|
175
|
+
it('Should require FTS to be enabled for selected repository when creating agent with FTS extraction method', () => {
|
|
188
176
|
RepositoriesStubs.stubGetRepositoryConfig(repositoryId, '/repositories/get-repository-config-starwars-disabled-fts.json');
|
|
189
177
|
TTYGStubs.stubChatsListGetNoResults();
|
|
190
178
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
@@ -201,12 +189,7 @@ describe('TTYG create new agent', () => {
|
|
|
201
189
|
TtygAgentSettingsModalSteps.getFtsDisabledHelp().should('be.visible');
|
|
202
190
|
});
|
|
203
191
|
|
|
204
|
-
it('Should be able to create agent with FTS extraction method', {
|
|
205
|
-
retries: {
|
|
206
|
-
runMode: 1,
|
|
207
|
-
openMode: 0
|
|
208
|
-
}
|
|
209
|
-
}, () => {
|
|
192
|
+
it('Should be able to create agent with FTS extraction method', () => {
|
|
210
193
|
RepositoriesStubs.stubGetRepositoryConfig(repositoryId, '/repositories/get-repository-config-starwars-enabled-fts.json');
|
|
211
194
|
TTYGStubs.stubChatsListGetNoResults();
|
|
212
195
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
@@ -242,15 +225,10 @@ describe('TTYG create new agent', () => {
|
|
|
242
225
|
TTYGViewSteps.getAgent(0).should('contain', 'Test Agent').and('contain', 'starwars');
|
|
243
226
|
});
|
|
244
227
|
|
|
245
|
-
it('Should require similarity index in order to create agent with similarity search method', {
|
|
246
|
-
retries: {
|
|
247
|
-
runMode: 1,
|
|
248
|
-
openMode: 0
|
|
249
|
-
}
|
|
250
|
-
}, () => {
|
|
228
|
+
it('Should require similarity index in order to create agent with similarity search method', () => {
|
|
251
229
|
TTYGStubs.stubChatsListGetNoResults();
|
|
252
230
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
253
|
-
|
|
231
|
+
TTYGStubs.getSimilarityIndexesForRepo();
|
|
254
232
|
// Given I have opened the ttyg page
|
|
255
233
|
TTYGViewSteps.visit();
|
|
256
234
|
cy.wait('@get-all-repositories');
|
|
@@ -265,15 +243,10 @@ describe('TTYG create new agent', () => {
|
|
|
265
243
|
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.disabled');
|
|
266
244
|
});
|
|
267
245
|
|
|
268
|
-
it('Should be able to configure and create agent with similarity index search method', {
|
|
269
|
-
retries: {
|
|
270
|
-
runMode: 1,
|
|
271
|
-
openMode: 0
|
|
272
|
-
}
|
|
273
|
-
}, () => {
|
|
246
|
+
it('Should be able to configure and create agent with similarity index search method', () => {
|
|
274
247
|
TTYGStubs.stubChatsListGetNoResults();
|
|
275
248
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
276
|
-
|
|
249
|
+
TTYGStubs.getSimilarityIndexesForRepo(repositoryId);
|
|
277
250
|
// Given I have opened the ttyg page
|
|
278
251
|
TTYGViewSteps.visit();
|
|
279
252
|
cy.wait('@get-all-repositories');
|
|
@@ -285,8 +258,10 @@ describe('TTYG create new agent', () => {
|
|
|
285
258
|
TtygAgentSettingsModalSteps.selectRepository(repositoryId);
|
|
286
259
|
// And I enable the similarity search extraction method
|
|
287
260
|
TtygAgentSettingsModalSteps.enableSimilaritySearchMethodPanel();
|
|
288
|
-
// Then I expect similarity index to be selected
|
|
289
|
-
TtygAgentSettingsModalSteps.
|
|
261
|
+
// Then I expect the first similarity search index instance to be selected
|
|
262
|
+
TtygAgentSettingsModalSteps.getSimilarityIndexSelectedOption().should('have.text', 'otkg-vector-new');
|
|
263
|
+
// And I expect that no vector fields from that instance should be selected
|
|
264
|
+
TtygAgentSettingsModalSteps.getSimilarityIndexSelectedVectorFieldsValue().should('contain', 'Select field');
|
|
290
265
|
// Then agent save button should be enabled
|
|
291
266
|
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.enabled');
|
|
292
267
|
// When I set the similarity index threshold
|
|
@@ -296,6 +271,7 @@ describe('TTYG create new agent', () => {
|
|
|
296
271
|
TtygAgentSettingsModalSteps.getSimilarityIndexMaxTriplesField().should('have.value', '');
|
|
297
272
|
TtygAgentSettingsModalSteps.setSimilarityIndexMaxTriples('100');
|
|
298
273
|
// When I save the agent
|
|
274
|
+
// !!! This stub is not for agent with similarity search method, but it's ok for this test !!!
|
|
299
275
|
TTYGStubs.stubAgentCreate();
|
|
300
276
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-new-agent.json');
|
|
301
277
|
TtygAgentSettingsModalSteps.saveAgent();
|
|
@@ -310,12 +286,7 @@ describe('TTYG create new agent', () => {
|
|
|
310
286
|
TTYGViewSteps.getAgent(0).should('contain', 'Test Agent').and('contain', 'starwars');
|
|
311
287
|
});
|
|
312
288
|
|
|
313
|
-
it('Should require retrieval connector in order to create an agent with GPT retrieval connector method', {
|
|
314
|
-
retries: {
|
|
315
|
-
runMode: 1,
|
|
316
|
-
openMode: 0
|
|
317
|
-
}
|
|
318
|
-
}, () => {
|
|
289
|
+
it('Should require retrieval connector in order to create an agent with GPT retrieval connector method', () => {
|
|
319
290
|
TTYGStubs.stubChatsListGetNoResults();
|
|
320
291
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
321
292
|
ConnectorStubs.stubGetConnectors();
|
|
@@ -337,12 +308,7 @@ describe('TTYG create new agent', () => {
|
|
|
337
308
|
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.disabled');
|
|
338
309
|
});
|
|
339
310
|
|
|
340
|
-
it('Should be able to configure and create an agent with retrieval connector method', {
|
|
341
|
-
retries: {
|
|
342
|
-
runMode: 1,
|
|
343
|
-
openMode: 0
|
|
344
|
-
}
|
|
345
|
-
}, () => {
|
|
311
|
+
it('Should be able to configure and create an agent with retrieval connector method', () => {
|
|
346
312
|
TTYGStubs.stubChatsListGetNoResults();
|
|
347
313
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
348
314
|
ConnectorStubs.stubGetConnectors();
|
|
@@ -431,7 +397,7 @@ describe('TTYG create new agent', () => {
|
|
|
431
397
|
TTYGStubs.stubChatsListGetNoResults();
|
|
432
398
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
433
399
|
ConnectorStubs.stubGetConnectors();
|
|
434
|
-
|
|
400
|
+
TTYGStubs.getSimilarityIndexesForRepo(repositoryId );
|
|
435
401
|
// Given I have opened the ttyg page
|
|
436
402
|
TTYGViewSteps.visit();
|
|
437
403
|
cy.wait('@get-all-repositories');
|
|
@@ -443,16 +409,21 @@ describe('TTYG create new agent', () => {
|
|
|
443
409
|
|
|
444
410
|
// When I open Similarity index name panel
|
|
445
411
|
TtygAgentSettingsModalSteps.enableSimilaritySearchMethodPanel();
|
|
412
|
+
cy.wait('@get-similarity-indexes');
|
|
446
413
|
// Then I expect to see the first index selected.
|
|
447
|
-
TtygAgentSettingsModalSteps.verifySimilarityIndexSelected('
|
|
414
|
+
TtygAgentSettingsModalSteps.verifySimilarityIndexSelected('otkg-vector-new');
|
|
448
415
|
|
|
449
416
|
// When I select another repository that have similarity connectors
|
|
417
|
+
TTYGStubs.getSimilarityIndexesForRepo('biomarkers', '/ttyg/agent/get-similarity-indexes-for-another-repo.json');
|
|
450
418
|
TtygAgentSettingsModalSteps.selectRepository('biomarkers');
|
|
419
|
+
cy.wait('@get-similarity-indexes');
|
|
451
420
|
// Then I expect to see the first similarity index from new repository selected.
|
|
452
|
-
TtygAgentSettingsModalSteps.verifySimilarityIndexSelected('
|
|
421
|
+
TtygAgentSettingsModalSteps.verifySimilarityIndexSelected('biomarkers-vector');
|
|
453
422
|
|
|
454
423
|
// When I select a repository that not have similarity indexes
|
|
455
424
|
TtygAgentSettingsModalSteps.selectRepository('ttyg-repo-1725518186812');
|
|
425
|
+
// Then I expect an error message to be open for similarity search index missing
|
|
426
|
+
ApplicationSteps.getErrorNotifications().should('be.visible');
|
|
456
427
|
// Then I expect help message to be open
|
|
457
428
|
TtygAgentSettingsModalSteps.getSimilaritySearchIndexMissingHelp().should('be.visible');
|
|
458
429
|
|
|
@@ -480,7 +451,7 @@ describe('TTYG create new agent', () => {
|
|
|
480
451
|
TtygAgentSettingsModalSteps.setTemperature('1.2');
|
|
481
452
|
TtygAgentSettingsModalSteps.getTemperatureSliderField().should('have.value', '1.2');
|
|
482
453
|
// Then I should see a warning message
|
|
483
|
-
TtygAgentSettingsModalSteps.
|
|
454
|
+
TtygAgentSettingsModalSteps.scrollToTemperatureWarning().should('be.visible');
|
|
484
455
|
TtygAgentSettingsModalSteps.getTemperatureField().should('have.class', 'has-warning');
|
|
485
456
|
// When I change the temperature to value below 1.0
|
|
486
457
|
TtygAgentSettingsModalSteps.setTemperature('0.9');
|
|
@@ -521,7 +492,7 @@ describe('TTYG create new agent', () => {
|
|
|
521
492
|
// When I open agent settings dialog and make all steps so the create button became enabled.
|
|
522
493
|
TTYGStubs.stubChatsListGetNoResults();
|
|
523
494
|
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-0.json');
|
|
524
|
-
|
|
495
|
+
TTYGStubs.getSimilarityIndexesForRepo();
|
|
525
496
|
TTYGViewSteps.visit();
|
|
526
497
|
cy.wait('@get-all-repositories');
|
|
527
498
|
TTYGViewSteps.createFirstAgent();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {RepositoriesStubs} from "../../stubs/repositories/repositories-stubs";
|
|
2
|
-
import {RepositoriesStub} from "../../stubs/repositories-stub";
|
|
3
2
|
import {TTYGStubs} from "../../stubs/ttyg/ttyg-stubs";
|
|
4
3
|
import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
5
4
|
import {ChatPanelSteps} from "../../steps/ttyg/chat-panel-steps";
|
|
@@ -9,7 +8,7 @@ describe('TTYG create chat', () => {
|
|
|
9
8
|
beforeEach(() => {
|
|
10
9
|
// Create an actual repository to prevent stubbing all background requests that are not related to the ttyg view
|
|
11
10
|
RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
|
|
12
|
-
|
|
11
|
+
RepositoriesStubs.stubBaseEndpoints('starwars');
|
|
13
12
|
cy.presetRepository('starwars');
|
|
14
13
|
TTYGStubs.stubChatsListGet("/ttyg/chats/create/get-chats-before-create.json");
|
|
15
14
|
TTYGStubs.stubAgentListGet();
|
|
@@ -38,16 +37,19 @@ describe('TTYG create chat', () => {
|
|
|
38
37
|
// When I type a question
|
|
39
38
|
ChatPanelSteps.getQuestionInputElement()
|
|
40
39
|
.should('be.visible')
|
|
41
|
-
.and('not.
|
|
40
|
+
.and('not.have.attr', 'disabled');
|
|
41
|
+
ChatPanelSteps.getQuestionInputElement()
|
|
42
42
|
.type('Who is Han Solo?');
|
|
43
43
|
|
|
44
|
+
|
|
44
45
|
// Then I expect the "Ask" button be active.
|
|
45
46
|
ChatPanelSteps.getAskButtonElement().should('be.enabled');
|
|
46
47
|
|
|
47
48
|
// When I click on "Ask" button.
|
|
48
|
-
TTYGStubs.
|
|
49
|
+
TTYGStubs.stubCreateNewChat();
|
|
49
50
|
ChatPanelSteps.getAskButtonElement().scrollIntoView().click();
|
|
50
51
|
cy.wait('@create-chat');
|
|
52
|
+
cy.wait('@ask-first-chat-question');
|
|
51
53
|
|
|
52
54
|
// Then I expect new chat to be created in a new group "Today" and be selected
|
|
53
55
|
TTYGViewSteps.getChatGroup(0).should('contain', 'Today');
|
|
@@ -2,14 +2,13 @@ import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
|
2
2
|
import {TTYGStubs} from "../../stubs/ttyg/ttyg-stubs";
|
|
3
3
|
import {RepositoriesStubs} from "../../stubs/repositories/repositories-stubs";
|
|
4
4
|
import {ModalDialogSteps} from "../../steps/modal-dialog-steps";
|
|
5
|
-
import {RepositoriesStub} from "../../stubs/repositories-stub";
|
|
6
5
|
|
|
7
6
|
describe('TTYG delete agent', () => {
|
|
8
7
|
const repositoryId = 'starwars';
|
|
9
8
|
|
|
10
9
|
beforeEach(() => {
|
|
11
10
|
RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
|
|
12
|
-
|
|
11
|
+
RepositoriesStubs.stubBaseEndpoints(repositoryId);
|
|
13
12
|
cy.presetRepository(repositoryId);
|
|
14
13
|
});
|
|
15
14
|
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import {RepositoriesStubs} from "../../stubs/repositories/repositories-stubs";
|
|
2
|
+
import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
3
|
+
import {TTYGStubs} from "../../stubs/ttyg/ttyg-stubs";
|
|
4
|
+
import {TtygAgentSettingsModalSteps} from "../../steps/ttyg/ttyg-agent-settings-modal.steps";
|
|
5
|
+
import {ToasterSteps} from "../../steps/toaster-steps";
|
|
6
|
+
import {AutocompleteStubs} from "../../stubs/autocomplete/autocomplete-stubs";
|
|
7
|
+
import {ModalDialogSteps} from "../../steps/modal-dialog-steps";
|
|
8
|
+
|
|
9
|
+
describe('TTYG edit an agent', () => {
|
|
10
|
+
const repositoryId = 'starwars';
|
|
11
|
+
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
|
|
14
|
+
RepositoriesStubs.stubBaseEndpoints(repositoryId);
|
|
15
|
+
RepositoriesStubs.stubRepositoryModel(repositoryId);
|
|
16
|
+
cy.presetRepository(repositoryId);
|
|
17
|
+
TTYGStubs.stubAgentDefaultsGet();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it(' should be able to edit an agent.', () => {
|
|
21
|
+
TTYGStubs.stubChatsListGet();
|
|
22
|
+
TTYGStubs.stubAgentListGet();
|
|
23
|
+
TTYGStubs.stubChatGet();
|
|
24
|
+
// Given I have opened the ttyg page
|
|
25
|
+
TTYGViewSteps.visit();
|
|
26
|
+
cy.wait('@get-chat-list');
|
|
27
|
+
cy.wait('@get-agent-list');
|
|
28
|
+
cy.wait('@get-chat');
|
|
29
|
+
// When I select an agent that don't have activated additional extraction method
|
|
30
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
31
|
+
|
|
32
|
+
// Then I expect that the iri discovery checkbox is not checked
|
|
33
|
+
TtygAgentSettingsModalSteps.getIriDiscoverySearchCheckbox().should('not.be.checked');
|
|
34
|
+
|
|
35
|
+
// When I check the iri discovery checkbox
|
|
36
|
+
TtygAgentSettingsModalSteps.checkIriDiscoverySearchCheckbox();
|
|
37
|
+
|
|
38
|
+
// and save the agent.
|
|
39
|
+
TTYGStubs.stubAgentEdit();
|
|
40
|
+
TtygAgentSettingsModalSteps.saveAgent();
|
|
41
|
+
cy.wait('@edit-agent').then((interception) => {
|
|
42
|
+
expect(interception.request.body.additionalExtractionMethods[0].method).to.equal('iri_discovery_search');
|
|
43
|
+
});
|
|
44
|
+
// Then I expect the agent to be saved
|
|
45
|
+
ToasterSteps.verifySuccess('The agent \'agent-1\' was saved successfully.');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('should not be able to edit an agent if an extraction method is selected but the precondition has failed', () => {
|
|
49
|
+
TTYGStubs.stubChatsListGet();
|
|
50
|
+
TTYGStubs.stubAgentListGet();
|
|
51
|
+
TTYGStubs.stubChatGet();
|
|
52
|
+
RepositoriesStubs.stubFtsSearchDisabled(repositoryId);
|
|
53
|
+
// GIVEN: I have opened the TTYG page
|
|
54
|
+
TTYGViewSteps.visit();
|
|
55
|
+
cy.wait('@get-chat-list');
|
|
56
|
+
cy.wait('@get-agent-list');
|
|
57
|
+
cy.wait('@get-chat');
|
|
58
|
+
// WHEN: I try to edit an agent that has the FTS extraction method enabled, but FTS is disabled in the repository
|
|
59
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
60
|
+
|
|
61
|
+
// THEN: The Save Agent button should be disabled
|
|
62
|
+
TtygAgentSettingsModalSteps.getSaveAgentButton().should('be.disabled');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should be able to edit Autocomplete extraction method option', () => {
|
|
66
|
+
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-autocomplete-query.json');
|
|
67
|
+
// Given I have opened the ttyg page
|
|
68
|
+
TTYGViewSteps.visit();
|
|
69
|
+
cy.wait('@get-agent-list');
|
|
70
|
+
// When I select an agent that don't have activated additional extraction method
|
|
71
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
72
|
+
|
|
73
|
+
// Then I expect that the autocomplete iri discovery checkbox is not checked
|
|
74
|
+
TtygAgentSettingsModalSteps.getAutocompleteSearchCheckbox().should('not.be.checked');
|
|
75
|
+
|
|
76
|
+
// When I check the autocomplete iri discovery checkbox
|
|
77
|
+
TtygAgentSettingsModalSteps.checkAutocompleteSearchCheckbox();
|
|
78
|
+
|
|
79
|
+
// Then I can set a value for the max results
|
|
80
|
+
TtygAgentSettingsModalSteps.setAutocompleteMaxResults(2);
|
|
81
|
+
|
|
82
|
+
// When I save the agent
|
|
83
|
+
TTYGStubs.stubAgentEdit();
|
|
84
|
+
TtygAgentSettingsModalSteps.saveAgent();
|
|
85
|
+
cy.wait('@edit-agent').then((interception) => {
|
|
86
|
+
const additionalMethod = interception.request.body.additionalExtractionMethods[0];
|
|
87
|
+
expect(additionalMethod).to.not.be.undefined;
|
|
88
|
+
expect(additionalMethod.method).to.equal('autocomplete_iri_discovery_search');
|
|
89
|
+
expect(additionalMethod.limit).to.equal(2);
|
|
90
|
+
});
|
|
91
|
+
// Then I expect the agent to be saved
|
|
92
|
+
ToasterSteps.verifySuccess('The agent \'Test autocomplete extraction agent\' was saved successfully.');
|
|
93
|
+
TTYGViewSteps.editCurrentAgent();
|
|
94
|
+
TtygAgentSettingsModalSteps.toggleAutocompleteSearchPanel();
|
|
95
|
+
|
|
96
|
+
// When: I select a repository with disabled autocomplete
|
|
97
|
+
AutocompleteStubs.stubAutocompleteEnabled(false);
|
|
98
|
+
TtygAgentSettingsModalSteps.selectRepository('biomarkers');
|
|
99
|
+
// Then: I expect to see a disabled message
|
|
100
|
+
TtygAgentSettingsModalSteps.getAutocompleteDisabledMessage().should('be.visible');
|
|
101
|
+
|
|
102
|
+
// When: I click on the link to enable autocomplete
|
|
103
|
+
TtygAgentSettingsModalSteps.clickOnEnableFTSSearch();
|
|
104
|
+
// Then: I expect a confirmation dialog displayed.
|
|
105
|
+
ModalDialogSteps.getDialogBody().contains('If you proceed with enabling the autocomplete index, GraphDB will open in a new tab and switch to the biomarkers repository.');
|
|
106
|
+
|
|
107
|
+
// When: I don't confirm the dialog
|
|
108
|
+
ModalDialogSteps.cancelDialogWithBody('If you proceed with enabling the autocomplete index, GraphDB will open in a new tab and switch to the biomarkers repository.');
|
|
109
|
+
// Then: I expect the dialog be disappeared and the disabled message still visible
|
|
110
|
+
TtygAgentSettingsModalSteps.getAutocompleteDisabledMessage().should('be.visible');
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('should allow copy of External integration configuration', () => {
|
|
114
|
+
TTYGStubs.stubAgentListGet('/ttyg/agent/get-agent-list-autocomplete-query.json');
|
|
115
|
+
TTYGStubs.getExternalUrl();
|
|
116
|
+
// Given I have opened the ttyg page
|
|
117
|
+
TTYGViewSteps.visit();
|
|
118
|
+
cy.wait('@get-agent-list');
|
|
119
|
+
// When I select an agent
|
|
120
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
121
|
+
|
|
122
|
+
// Then I should see the External integration configuration button
|
|
123
|
+
TtygAgentSettingsModalSteps.getExtIntegrationConfigBtn().should('be.visible');
|
|
124
|
+
// When I click the button
|
|
125
|
+
TtygAgentSettingsModalSteps.openExtIntegrationConfig();
|
|
126
|
+
cy.wait('@external-url');
|
|
127
|
+
// The url dialog should open
|
|
128
|
+
TtygAgentSettingsModalSteps.getExternalIntegrationModal().should('be.visible');
|
|
129
|
+
// The dialog should have all the fields
|
|
130
|
+
TtygAgentSettingsModalSteps.getAgentUrlField().invoke('val')
|
|
131
|
+
.then((val) => {
|
|
132
|
+
expect(val).to.equal('asst_G8EtHyT8kAGeDmCa3Nh6y74v');
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
TtygAgentSettingsModalSteps.getMethodUrlField().invoke('val')
|
|
136
|
+
.then((val) => {
|
|
137
|
+
expect(val).to.equal('http://user-pc:7200/rest/llm/tool/ttyg/asst_G8EtHyT8kAGeDmCa3Nh6y74v');
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
TtygAgentSettingsModalSteps.getDifyUrlField().invoke('val')
|
|
141
|
+
.then((val) => {
|
|
142
|
+
expect(val).to.equal('http://user-pc:7200/rest/llm/ttyg/asst_G8EtHyT8kAGeDmCa3Nh6y74v/dify');
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it('should show Context size if not openai-assistants API', () => {
|
|
147
|
+
// Open TTYG page and select first agent
|
|
148
|
+
TTYGViewSteps.visit();
|
|
149
|
+
TTYGStubs.stubForApiType('default');
|
|
150
|
+
cy.wait('@get-agent-list');
|
|
151
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
152
|
+
|
|
153
|
+
// Then I should see the Context size field
|
|
154
|
+
TtygAgentSettingsModalSteps.getContextSizeField().should('be.visible');
|
|
155
|
+
// When I clear the value
|
|
156
|
+
TtygAgentSettingsModalSteps.clearContextSize();
|
|
157
|
+
// And click another field
|
|
158
|
+
TtygAgentSettingsModalSteps.clickLLMModelField();
|
|
159
|
+
// Then the error for required should appear
|
|
160
|
+
TtygAgentSettingsModalSteps.getContextSizeError().should('be.visible');
|
|
161
|
+
// When I type a value
|
|
162
|
+
TtygAgentSettingsModalSteps.enterContextSize('120000');
|
|
163
|
+
// Then the error disappears
|
|
164
|
+
TtygAgentSettingsModalSteps.getContextSizeError().should('not.exist');
|
|
165
|
+
// I should be allowed to reset the value of the Context size
|
|
166
|
+
TtygAgentSettingsModalSteps.resetContextSizeValue();
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
it('should NOT show Context size if openai-assistants API', () => {
|
|
170
|
+
// Open TTYG page and select first agent
|
|
171
|
+
TTYGViewSteps.visit();
|
|
172
|
+
TTYGStubs.stubForApiType('assistants');
|
|
173
|
+
cy.wait('@get-agent-list');
|
|
174
|
+
TTYGViewSteps.openAgentSettingsModalForAgent(0);
|
|
175
|
+
// Then I should see the Context size field
|
|
176
|
+
TtygAgentSettingsModalSteps.getContextSizeField().should('not.exist');
|
|
177
|
+
});
|
|
178
|
+
});
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import HomeSteps from "../../steps/home-steps";
|
|
4
|
+
import {TTYGStubs} from "../../stubs/ttyg/ttyg-stubs";
|
|
5
|
+
|
|
6
|
+
function verifyStateWithApiKey() {
|
|
7
|
+
TTYGViewSteps.getChatListComponent().should('be.visible');
|
|
8
|
+
TTYGViewSteps.getChatPanel().should('be.visible');
|
|
9
|
+
TTYGViewSteps.getAgentsMenu().should('be.visible');
|
|
10
|
+
TTYGViewSteps.getEditCurrentAgentButton().should('be.visible');
|
|
11
|
+
TTYGViewSteps.getHelpButton().should('be.visible');
|
|
12
|
+
TTYGViewSteps.getCreateAgentButton().should('be.visible');
|
|
13
|
+
TTYGViewSteps.getToggleAgentsSidebarButton().should('be.visible');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
describe('TTYG initial state with API key', () => {
|
|
17
|
+
let repositoryId;
|
|
18
|
+
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
repositoryId = 'ttyg-api-key-init-' + Date.now();
|
|
21
|
+
cy.createRepository({id: repositoryId});
|
|
22
|
+
cy.presetRepository(repositoryId);
|
|
23
|
+
TTYGStubs.stubAgentListGet();
|
|
24
|
+
TTYGStubs.stubChatsListGet();
|
|
25
|
+
TTYGStubs.stubChatGet();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
afterEach(() => {
|
|
29
|
+
cy.deleteRepository(repositoryId);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
33
|
+
// Given, I visit the TTYG page via URL
|
|
34
|
+
TTYGViewSteps.visit();
|
|
35
|
+
// Then,
|
|
36
|
+
verifyStateWithApiKey();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('Should display the correct initial state when navigating via the navigation menu', () => {
|
|
40
|
+
// Given, I visit the TTYG page via the navigation menu
|
|
41
|
+
HomeSteps.visit();
|
|
42
|
+
MainMenuSteps.clickOnTTYG();
|
|
43
|
+
// Then,
|
|
44
|
+
verifyStateWithApiKey();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import HomeSteps from "../../steps/home-steps";
|
|
4
|
+
|
|
5
|
+
function verifyStateWithSelectedRepository() {
|
|
6
|
+
TTYGViewSteps.getNoAgentsView().should('be.visible');
|
|
7
|
+
TTYGViewSteps.getCreateFirstAgentButton().should('be.visible');
|
|
8
|
+
TTYGViewSteps.getTtygInfoMessage().should('be.visible');
|
|
9
|
+
TTYGViewSteps.getTtygagentMessage().should('be.visible');
|
|
10
|
+
TTYGViewSteps.getApiKeyMessage().should('be.visible');
|
|
11
|
+
TTYGViewSteps.getMissingApiKeyToastMessage()
|
|
12
|
+
.should('be.visible')
|
|
13
|
+
.and('contain', 'Set the config property \'graphdb.llm.api-key\' to your LLM API key');
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// TODO: skipped until BE releases an updated version with the new API key.
|
|
17
|
+
// https://graphwise.atlassian.net/browse/GDB-12738
|
|
18
|
+
describe.skip('TTYG initial state with selected repository', () => {
|
|
19
|
+
let repositoryId;
|
|
20
|
+
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
repositoryId = 'ttyg-init-' + Date.now();
|
|
23
|
+
cy.createRepository({id: repositoryId});
|
|
24
|
+
cy.presetRepository(repositoryId);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
afterEach(() => {
|
|
28
|
+
cy.deleteRepository(repositoryId);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
32
|
+
// Given, I visit the TTYG page via URL with a repository selected
|
|
33
|
+
TTYGViewSteps.visit();
|
|
34
|
+
// Then,
|
|
35
|
+
verifyStateWithSelectedRepository();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('Should display the correct initial state when navigating via the navigation menu', () => {
|
|
39
|
+
// Given, I visit the TTYG page via the navigation menu with a repository selected
|
|
40
|
+
HomeSteps.visit();
|
|
41
|
+
MainMenuSteps.clickOnTTYG();
|
|
42
|
+
// Then,
|
|
43
|
+
verifyStateWithSelectedRepository();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../steps/home-steps";
|
|
3
|
+
import {TTYGViewSteps} from "../../steps/ttyg/ttyg-view-steps";
|
|
4
|
+
import {ErrorSteps} from "../../steps/error-steps";
|
|
5
|
+
|
|
6
|
+
describe('TTYG initial state without selected repository', () => {
|
|
7
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
8
|
+
// Given, I visit the TTYG page via URL without a repository selected
|
|
9
|
+
TTYGViewSteps.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 TTYG page via the navigation menu without a repository selected
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnTTYG();
|
|
18
|
+
// Then,
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
});
|