graphdb-workbench-tests 3.4.0-TR2 → 3.4.0-TR4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +11 -0
- package/cypress-flaky.config.js +6 -20
- package/cypress.config.js +6 -45
- package/fixtures/locale-en.json +3342 -0
- package/fixtures/ttyg/agent/get-agent-defaults.json +2 -9
- package/fixtures/ttyg/chats/ask-question.json +2 -12
- package/fixtures/ttyg/chats/create/create-chat-response.json +14 -10
- package/fixtures/ttyg/chats/explain-response-1.json +48 -2
- package/fixtures/ttyg/chats/get-chat.json +1 -6
- package/{e2e-legacy → integration}/cluster/cluster-states.spec.js +3 -3
- package/{e2e-legacy/explore/class-hierarchy → integration/explore}/class.hierarchy.spec.js +1 -1
- package/{e2e-legacy/explore/class-relationships/class-relationships.spec.js → integration/explore/class.relationships.spec.js} +50 -20
- package/{e2e-legacy/explore/graphs-overview → integration/explore}/graphs.overview.spec.js +4 -4
- package/integration/explore/similarity-index/similarity-index-create.spec.js +333 -0
- package/integration/explore/similarity-index/similarity-index.spec.js +88 -0
- package/integration/explore/similarity-index/similarity.spec.js +628 -0
- package/{e2e-legacy → integration}/explore/visual-graph/graphs-config.spec.js +10 -5
- package/{e2e-legacy → integration}/explore/visual-graph/visual-graph-node-labels.spec.js +2 -14
- package/{e2e-legacy → integration}/explore/visual-graph/visual.graph.spec.js +96 -75
- package/{e2e-legacy → integration}/graphql/create-graphql-endpoint.spec.js +2 -0
- package/{e2e-legacy → integration}/graphql/edit-graphql-enpoint.spec.js +1 -1
- package/{e2e-legacy → integration}/graphql/filter-graphql-endpoints-on-management-view.spec.js +1 -1
- package/{e2e-legacy → integration}/graphql/graphql-endpoint-management-view.spec.js +4 -4
- package/{e2e-legacy → integration}/graphql/graphql-playground.spec.js +1 -1
- package/{e2e-legacy → integration}/graphql/import-graphql-endpoint-definitions.spec.js +6 -0
- package/integration/guides/movies-interactive-guide.spec.js +73 -0
- package/{e2e-legacy/help/guides/star-wars-interactive-guide.spec.js → integration/guides/star-wars-interactive-guide.js} +2 -3
- package/integration/home/cookie-policy.spec.js +90 -0
- package/integration/home/documentation-link.spec.js +60 -0
- package/{e2e-legacy → integration}/home/google-analytics.spec.js +6 -4
- package/{e2e-legacy → integration}/home/language-change.spec.js +2 -2
- package/integration/home/language-selector.spec.js +19 -0
- package/integration/home/rdf-resource-search.spec.js +177 -0
- package/integration/home/view-resource-autocomplete.spec.js +52 -0
- package/integration/home/workbench.home.spec.js +30 -0
- package/{e2e-legacy → integration}/import/import-server-files.spec.js +3 -5
- package/{e2e-legacy → integration}/import/import-user-data-file-upload.spec.js +13 -19
- package/{e2e-legacy → integration}/import/import-user-data-text-snippet.spec.js +2 -0
- package/{e2e-legacy → integration}/import/import-user-data-url.spec.js +23 -0
- package/{e2e-legacy → integration}/import/import-user-data.spec.js +4 -11
- package/{e2e-legacy → integration}/license/license.spec.js +4 -4
- package/{e2e-legacy → integration}/monitor/global-operation-statuses-component.spec.js +5 -12
- package/{e2e-legacy/monitor/backup-and-restore/backup-and-restore.spec.js → integration/monitor/monitor.backup-and-restore.spec.js} +2 -2
- package/integration/monitor/monitor.queries.spec.js +31 -0
- package/{e2e-legacy/monitor/system → integration/monitor}/monitor.resources.spec.js +2 -3
- package/{e2e-legacy → integration}/repository/ontop-repository.spec.js +1 -1
- package/{e2e-legacy → integration}/repository/repositories.spec.js +45 -37
- package/{e2e-legacy → integration}/resource/resource.spec.js +7 -17
- package/{e2e-legacy → integration}/setup/aclmanagement/create-rule.spec.js +0 -4
- package/{e2e-legacy/setup/autocomplete → integration/setup}/autocomplete.spec.js +7 -6
- package/{e2e-legacy → integration}/setup/connectors-lucene.spec.js +10 -26
- package/{e2e-legacy → integration}/setup/jdbc/jdbc-create.spec.js +4 -4
- package/integration/setup/my-settings.spec.js +289 -0
- package/{e2e-legacy/setup/namespaces → integration/setup}/namespaces.spec.js +5 -6
- package/{e2e-legacy/setup/plugins → integration/setup}/plugins.spec.js +3 -3
- package/{e2e-legacy/setup/rdf-rank → integration/setup}/rdf-rank.spec.js +5 -3
- package/{e2e-legacy/setup/sparql-template/sparql-template-create.spec.js → integration/setup/sparql-template-create.js} +8 -16
- package/{e2e-legacy/setup/sparql-template → integration/setup}/sparql-templates.spec.js +4 -4
- package/{e2e-legacy/setup/users-and-access → integration/setup}/user-and-access.spec.js +87 -184
- package/{e2e-legacy → integration}/sparql-editor/actions/expand-results-over-sameas.spec.js +12 -12
- package/{e2e-legacy → integration}/sparql-editor/actions/include-inferred-statements.spec.js +6 -6
- package/{e2e-legacy → integration}/sparql-editor/actions/inferred-sameas.spec.js +8 -10
- package/{e2e-legacy → integration}/sparql-editor/actions/show-saved-queries.spec.js +6 -1
- package/{e2e-legacy → integration}/sparql-editor/saved-query/abort-query.spec.js +1 -1
- package/{e2e-legacy → integration}/sparql-editor/saved-query/edit-query.spec.js +3 -3
- package/{e2e-legacy → integration}/sparql-editor/saved-query/readonly-query.spec.js +24 -15
- package/{e2e-legacy → integration}/sparql-editor/saved-query/share-query.spec.js +1 -32
- package/{e2e-legacy → integration}/sparql-editor/yasgui-tabs.spec.js +12 -2
- package/{e2e-legacy → integration}/sparql-editor/yasr/pagination.spec.js +18 -5
- package/{e2e-legacy → integration}/sparql-editor/yasr/table-plugin.spec.js +6 -1
- package/integration/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +57 -0
- package/{e2e-legacy → integration}/ttyg/agent-list.spec.js +2 -53
- package/{e2e-legacy → integration}/ttyg/agent-select-menu.spec.js +2 -25
- package/{e2e-legacy → integration}/ttyg/chat-list.spec.js +14 -3
- package/{e2e-legacy → integration}/ttyg/chat-panel.spec.js +6 -74
- package/{e2e-legacy → integration}/ttyg/clone-agent.spec.js +2 -24
- package/{e2e-legacy → integration}/ttyg/create-agent.spec.js +66 -37
- package/{e2e-legacy → integration}/ttyg/create-chat.spec.js +4 -6
- package/{e2e-legacy → integration}/ttyg/delete-agent.spec.js +2 -1
- package/integration/ttyg/edit-agent.spec.js +99 -0
- package/{e2e-legacy → integration}/ttyg/ttyg-view.spec.js +2 -2
- package/{e2e-flaky → integration-flaky}/explore/visual.graph.spec.js +1 -4
- package/{e2e-flaky → integration-flaky}/import/import-server-files-operations.spec.js +2 -2
- package/{e2e-flaky → integration-flaky}/import/import-user-data-batch-operations.spec.js +3 -3
- package/{e2e-flaky → integration-flaky}/setup/sparql-template-create.js +18 -10
- package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +54 -0
- package/{e2e-flaky → integration-flaky}/sparql-editor/actions/execute-update-query.spec.js +12 -2
- package/{e2e-flaky → integration-flaky}/sparql-editor/actions/share-query.spec.js +7 -1
- package/{e2e-flaky → integration-flaky}/sparql-editor/yasr/table-plugin.spec.js +7 -3
- package/{e2e-legacy → integration-flaky}/ttyg/ttyg-permission.spec.js +17 -23
- package/npm-shrinkwrap.json +3815 -11004
- package/package.json +42 -58
- package/plugins/index.js +5 -10
- package/steps/application-steps.js +6 -8
- package/steps/class-views-steps.js +7 -35
- package/steps/cluster/cluster-page-steps.js +2 -12
- package/steps/error-steps.js +3 -15
- package/steps/explore/graphs-overview-steps.js +1 -21
- package/steps/explore/similarity-index-create-steps.js +3 -5
- package/steps/explore/similarity-indexes-steps.js +2 -16
- package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
- package/steps/guides/guide-dialog-steps.js +2 -81
- package/steps/guides/guide-steps.js +2 -54
- package/steps/home-steps.js +77 -184
- package/steps/import/import-resource-message-dialog.js +1 -1
- package/steps/import/import-steps.js +16 -12
- package/steps/import/import-user-data-steps.js +1 -5
- package/steps/language-selector-steps.js +2 -2
- package/steps/license-steps.js +9 -91
- package/steps/login-steps.js +6 -31
- package/steps/main-menu-steps.js +19 -244
- package/steps/modal-dialog-steps.js +1 -32
- package/steps/monitoring/backup-and-restore-steps.js +3 -9
- package/steps/operations-statuses-component-steps.js +10 -5
- package/steps/repository-selector-steps.js +3 -3
- package/steps/repository-steps.js +18 -64
- package/steps/resource/resource-steps.js +2 -6
- package/steps/setup/acl-management-steps.js +2 -6
- package/steps/setup/autocomplete-steps.js +8 -23
- package/steps/setup/jdbc-steps.js +4 -18
- package/steps/setup/namespace-steps.js +7 -10
- package/steps/setup/plugins-steps.js +5 -12
- package/steps/setup/rdf-rank-steps.js +9 -23
- package/steps/setup/settings-steps.js +2 -101
- package/steps/setup/sparql-templates-steps.js +1 -19
- package/steps/setup/user-and-access-steps.js +16 -50
- package/steps/sparql-editor-steps.js +2 -8
- package/steps/sparql-steps.js +1 -13
- package/steps/toaster-steps.js +6 -18
- package/steps/ttyg/chat-panel-steps.js +2 -40
- package/steps/ttyg/ttyg-agent-settings-modal.steps.js +31 -136
- package/steps/ttyg/ttyg-view-steps.js +10 -80
- package/steps/visual-graph-steps.js +10 -106
- package/steps/yasgui/yasgui-loader.js +3 -3
- package/steps/yasgui/yasgui-steps.js +1 -1
- package/steps/yasgui/yasqe-steps.js +4 -35
- package/steps/yasgui/yasr-steps.js +3 -73
- package/stubs/autocomplete/autocomplete-stubs.js +0 -7
- package/stubs/environment-stubs.js +1 -9
- package/stubs/license-stubs.js +0 -51
- package/stubs/repositories/repositories-stubs.js +75 -180
- package/stubs/repositories-stub.js +73 -0
- package/stubs/security-stubs.js +0 -12
- package/stubs/similarity-index-stubs.js +0 -4
- package/stubs/ttyg/ttyg-stubs.js +15 -64
- package/stubs/yasgui/query-stubs.js +1 -5
- package/support/commands.js +1 -22
- package/support/{e2e.js → index.js} +3 -9
- package/support/repository-commands.js +4 -29
- package/support/settings-commands.js +1 -33
- package/support/user-commands.js +4 -9
- package/utils/html-util.js +4 -24
- package/.editorconfig +0 -17
- package/.nycrc +0 -10
- package/cypress-legacy.config.js +0 -47
- package/cypress-security.config.js +0 -36
- package/e2e-flaky/import/import-user-data-url.spec.js +0 -63
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js +0 -42
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-with-selected-repository.spec.js +0 -43
- package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js +0 -30
- package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js +0 -42
- package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js +0 -39
- package/e2e-legacy/explore/class-relationships/class-relationships-without-selected-repository.spec.js +0 -21
- package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-with-selected-repository.spec.js +0 -44
- package/e2e-legacy/explore/graphs-overview/initial-state/graphs-overview-without-selected-repository.spec.js +0 -32
- package/e2e-legacy/explore/similarity-index/similarity-index-with-repository.spec.js +0 -38
- package/e2e-legacy/explore/similarity-index/similarity-index-without-repository.spec.js +0 -21
- package/e2e-legacy/explore/visual-graph/node-info-panel.spec.js +0 -58
- package/e2e-legacy/explore/visual-graph/visual-graph-links-limit.spec.js +0 -140
- package/e2e-legacy/explore/visual-graph/visual-graph-with-selected-repository.js +0 -38
- package/e2e-legacy/explore/visual-graph/visual-graph-without-selected-repository.js +0 -21
- package/e2e-legacy/graphql/graphql-endpoint-management-with-endpoints.spec.js +0 -43
- package/e2e-legacy/graphql/graphql-endpoint-management-with-selected-repository.spec.js +0 -39
- package/e2e-legacy/graphql/graphql-endpoint-management-without-selected-repository.spec.js +0 -21
- package/e2e-legacy/graphql/graphql-playground-with-endpoints.spec.js +0 -40
- package/e2e-legacy/graphql/graphql-playground-with-selected-repository.spec.js +0 -38
- package/e2e-legacy/graphql/graphql-playground-without-selected-repository.spec.js +0 -22
- package/e2e-legacy/graphql/graphql-theme.spec.js +0 -73
- package/e2e-legacy/guides/autocomplete/enable-autocomplete-guide.spec.js +0 -49
- package/e2e-legacy/guides/class-hierarcy/class-hierarchy-guide.spec.js +0 -89
- package/e2e-legacy/guides/class-relations/class-relations-guide.spec.js +0 -76
- package/e2e-legacy/guides/connectors/connectors-guide.spec.js +0 -163
- package/e2e-legacy/guides/create-similarity-index/create-similarity-index-guide.spec.js +0 -74
- package/e2e-legacy/guides/download-guide-resource/download-guide-resource-guide.js +0 -55
- package/e2e-legacy/guides/execute-sparql-query/execute-sparql-query-guide.spec.js +0 -92
- package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +0 -63
- package/e2e-legacy/guides/import-rdf-file/import-rdf-file.spec.js +0 -105
- package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +0 -302
- package/e2e-legacy/guides/navigation/navigation-guide.spec.js +0 -64
- package/e2e-legacy/guides/rdf-rank/rdf-rank-guide.spec.js +0 -42
- package/e2e-legacy/guides/repositories/create-repository-guide.spec.js +0 -69
- package/e2e-legacy/guides/table-graph-explore/table-graph-explore-guide.spec.js +0 -167
- package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +0 -157
- package/e2e-legacy/guides/ttyg/conversation/ttyg-conversation-guide.spec.js +0 -92
- package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +0 -88
- package/e2e-legacy/guides/visual-graph/visual-graph-guide.spec.js +0 -372
- package/e2e-legacy/guides/welcome/welcome-guide.spec.js +0 -36
- package/e2e-legacy/help/guides/guides-autostart.spec.js +0 -126
- package/e2e-legacy/help/guides/guides-confirm-cancel-dialog.js +0 -83
- package/e2e-legacy/help/guides/guides-with-repository.spec.js +0 -32
- package/e2e-legacy/help/guides/guides-without-repository.spec.js +0 -20
- package/e2e-legacy/help/guides/movies-interactive-guide.spec.js +0 -71
- package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-with-repository.spec.js +0 -32
- package/e2e-legacy/help/rest-api-documentatio/rest-api-documentation-without-repository.spec.js +0 -20
- package/e2e-legacy/help/system-information/system-information-with-repository.spec.js +0 -32
- package/e2e-legacy/help/system-information/system-information-without-repository.spec.js +0 -20
- package/e2e-legacy/home/cookie-policy/cookie-policy.spec.js +0 -182
- package/e2e-legacy/home/documentation-link.spec.js +0 -41
- package/e2e-legacy/home/home-page-with-selected-repository.spec.js +0 -69
- package/e2e-legacy/home/home-page-without-repositories.spec.js +0 -87
- package/e2e-legacy/home/home-page-without-selected-repository.spec.js +0 -59
- package/e2e-legacy/home/rdf-resource-search.spec.js +0 -160
- package/e2e-legacy/home/view-resource-autocomplete.spec.js +0 -65
- package/e2e-legacy/import/initial-state/import-page-with-selected-repositor.js +0 -51
- package/e2e-legacy/import/initial-state/import-page-with-selected-repository-without-imported-files.js +0 -45
- package/e2e-legacy/import/initial-state/import-page-without-selected-repository.spec.js +0 -28
- package/e2e-legacy/license/license-with-repository.spec.js +0 -113
- package/e2e-legacy/license/license-without-repository.spec.js +0 -103
- package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-with-repository.spec.js +0 -36
- package/e2e-legacy/monitor/backup-and-restore/backup-and-restore-without-repository.spec.js +0 -25
- package/e2e-legacy/monitor/query-and-updates/queries-and-updates-with-repository.spec.js +0 -39
- package/e2e-legacy/monitor/query-and-updates/queries-and-updates-without-repository.spec.js +0 -21
- package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +0 -32
- package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +0 -20
- package/e2e-legacy/not-found/not-found.spec.js +0 -23
- package/e2e-legacy/repository/url-with-repository-id-parameter.spec.js +0 -181
- package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +0 -40
- package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +0 -21
- package/e2e-legacy/setup/autocomplete/autocomplete-with-repository.spec.js +0 -40
- package/e2e-legacy/setup/autocomplete/autocomplete-without-repository.spec.js +0 -27
- package/e2e-legacy/setup/cluster/cluster-initial-state-with-cluster.spec.js +0 -34
- package/e2e-legacy/setup/cluster/cluster-initial-state-without-cluster.spec.js +0 -25
- package/e2e-legacy/setup/connectors/connectors-initial-state-with-selected-repository.spec.js +0 -41
- package/e2e-legacy/setup/connectors/connectors-initial-state-without-repositories.spec.js +0 -21
- package/e2e-legacy/setup/jdbc/jdbc-with-repository.spec.js +0 -39
- package/e2e-legacy/setup/jdbc/jdbc-without-repository.spec.js +0 -27
- package/e2e-legacy/setup/namespaces/namespaces-with-repository.spec.js +0 -44
- package/e2e-legacy/setup/namespaces/namespaces-without-repository.spec.js +0 -27
- package/e2e-legacy/setup/plugins/plugins-with-repository.spec.js +0 -38
- package/e2e-legacy/setup/plugins/plugins-without-repository.spec.js +0 -28
- package/e2e-legacy/setup/rdf-rank/rdf-rank-with-repository.spec.js +0 -40
- package/e2e-legacy/setup/rdf-rank/rdf-rank-without-repository.spec.js +0 -30
- package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +0 -40
- package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +0 -28
- package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +0 -86
- package/e2e-legacy/setup/settings/my-settings.spec.js +0 -207
- package/e2e-legacy/setup/sparql-template/sparql-template-with-repository.spec.js +0 -39
- package/e2e-legacy/setup/sparql-template/sparql-template-without-repository.spec.js +0 -29
- package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +0 -25
- package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +0 -33
- package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +0 -26
- package/e2e-legacy/sparql-editor/yasqe-themes.spec.js +0 -54
- package/e2e-legacy/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -106
- package/e2e-legacy/sparql-editor/yasr/yasr.spec.js +0 -80
- package/e2e-legacy/ttyg/edit-agent.spec.js +0 -178
- package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +0 -46
- package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +0 -45
- package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +0 -21
- package/e2e-security/repository/url-with-repository-id-parameter.spec.js +0 -57
- package/e2e-security/setup/home/cookie-policy.spec.js +0 -290
- package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +0 -193
- package/e2e-security/setup/users-and-access/graphql-user.spec.js +0 -126
- package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +0 -70
- package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +0 -99
- package/e2e-security/setup/users-and-access/user-and-access.spec.js +0 -87
- package/e2e-security/setup/users-and-access/users-and-access-initial-state.spec.js +0 -38
- package/eslint.config.js +0 -39
- package/fixtures/graph/graph-configurations.json +0 -59
- package/fixtures/guides/autocomplete/enable-autocomplete-guide.json +0 -12
- package/fixtures/guides/class-hierarchy/class-hierarchy-guide.json +0 -35
- package/fixtures/guides/class-relations/class-relations-guide.json +0 -33
- package/fixtures/guides/confirm-cancel-dialog/confirm-cancel-dialog-guide.json +0 -15
- package/fixtures/guides/connectors/connectors-guide.json +0 -66
- package/fixtures/guides/connectors/lucene-connector-guide.json +0 -120
- package/fixtures/guides/create-repository/create-repository-guide.json +0 -25
- package/fixtures/guides/create-similarity-index/create-similarity-index-guide.json +0 -36
- package/fixtures/guides/download-guide-resource/download-guide-resource-guide.json +0 -25
- package/fixtures/guides/download-resource.ttl +0 -629
- package/fixtures/guides/execute-sparql-query/execute-sparql-query-guide.json +0 -54
- package/fixtures/guides/import-rdf-file/confirm-duplicate-rdf-file-guide.json +0 -30
- package/fixtures/guides/import-rdf-file/import-rdf-file-guide.json +0 -21
- package/fixtures/guides/main-menu/main-menu-guide.json +0 -98
- package/fixtures/guides/navigation/navigation-guide.json +0 -60
- package/fixtures/guides/rdf-rank/rdf-rank-guide.json +0 -18
- package/fixtures/guides/table-graph-explore/table-graph-explore-guide.json +0 -51
- package/fixtures/guides/table-graph-explore/table-graph-explore-without-substeps-guide.json +0 -25
- package/fixtures/guides/ttyg/configure-agent/configure-ttyg-agent-guide.json +0 -74
- package/fixtures/guides/ttyg/conversation/ttyg-conversation-guide.json +0 -26
- package/fixtures/guides/ttyg/edit-ttyg-agent/edit-ttyg-agent-guide.json +0 -22
- package/fixtures/guides/visual-graph/visual-graph-config-guide.json +0 -39
- package/fixtures/guides/visual-graph/visual-graph-guide.json +0 -85
- package/fixtures/guides/welcome/welcome-guide.json +0 -18
- package/fixtures/repositories/free-access.json +0 -13
- package/fixtures/similarity/get-ttyg-similarity-instances.json +0 -10
- package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +0 -44
- package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +0 -79
- package/fixtures/ttyg/agent/get-similarity-indexes-for-another-repo.json +0 -8
- package/fixtures/ttyg/agent/get-similarity-indexes.json +0 -22
- package/fixtures/ttyg/chats/ask-question-cancel.json +0 -12
- package/fixtures/ttyg/chats/cancel-question-response.json +0 -1
- package/fixtures/ttyg/chats/create/question-response-after-chat-creation.json +0 -29
- package/fixtures/ttyg/chats/explain-response-3.json +0 -12
- package/steps/base-steps.js +0 -29
- package/steps/cookie-policy/cookie-consent-banner-steps.js +0 -21
- package/steps/cookie-policy/cookie-policy-modal.steps.js +0 -56
- package/steps/error-page-steps.js +0 -9
- package/steps/explore/class-relationships-steps.js +0 -64
- package/steps/graphql/playground-editor-steps.js +0 -46
- package/steps/header-steps.js +0 -22
- package/steps/monitoring/queries-and-updates-steps.js +0 -20
- package/steps/monitoring/system-monitoring-steps.js +0 -40
- package/steps/not-found/not-found-steps.js +0 -23
- package/steps/rdf-resource-search-steps.js +0 -55
- package/steps/rest-api-documentation-steps.js +0 -15
- package/steps/setup/connectors-steps.js +0 -32
- package/steps/shared-modal-dialog-steps.js +0 -45
- package/steps/system-information-steps.js +0 -70
- package/steps/widgets/active-repository-widget-steps.js +0 -29
- package/steps/widgets/license-widget-steps.js +0 -9
- package/steps/widgets/repository-errors-widget-steps.js +0 -21
- package/steps/widgets/saved-sparql-queries-widget-steps.js +0 -9
- package/stubs/browser-stubs.js +0 -21
- package/stubs/graph-config-stubs.js +0 -17
- package/stubs/guides/guides-stubs.js +0 -103
- package/stubs/saved-queries-stubs.js +0 -5
- package/stubs/sparql-stubs.js +0 -10
- package/support/connector-commands.js +0 -13
- package/support/e2e-security.js +0 -9
- package/support/url-commands.js +0 -13
- package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +0 -0
- package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +0 -0
- package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration-properties.spec.js +0 -0
- package/{e2e-legacy → integration}/cluster/cluster-configuration/cluster-configuration.spec.js +0 -0
- package/{e2e-legacy → integration}/cluster/cluster-legend.spec.js +0 -0
- package/{e2e-legacy → integration}/cluster/edit-cluster-nodes-modal.spec.js +0 -0
- package/{e2e-legacy → integration}/graphql/activate-deactivate-graphql-endpoint.spec.js +0 -0
- package/{e2e-legacy → integration}/graphql/delete-graphql-endpoint.spec.js +0 -0
- package/{e2e-legacy → integration}/graphql/export-graphql-endpoint-definition.spec.js +0 -0
- package/{e2e-legacy → integration}/graphql/set-default-graphql-endpoint.spec.js +0 -0
- package/{e2e-legacy/help/system-information → integration/help}/system-information.spec.js +0 -0
- package/{e2e-legacy → integration}/home/create-repository.spec.js +0 -0
- package/{e2e-legacy → integration}/import/import-server-files-batch-operations.spec.js +0 -0
- package/{e2e-legacy → integration}/import/import-user-data-settings-dialog.spec.js +0 -0
- package/{e2e-legacy → integration}/import/import-view.spec.js +0 -0
- package/{e2e-legacy → integration}/repository/attach-remote-location.spec.js +1 -1
- /package/{e2e-legacy → integration}/repository/repository-commands.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/delete-rule.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/edit-rule.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/render-rules.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/reorder-rules.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/revert-rules.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/scopes.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/aclmanagement/update-rules.spec.js +0 -0
- /package/{e2e-legacy → integration}/setup/jdbc/jdbc.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/actions/execute-query.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/actions/save-query.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/internationalization.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/saved-query/delete-query.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/sparql-editor.spec.js +0 -0
- /package/{e2e-legacy → integration}/sparql-editor/yasr/download-as.spec.js +0 -0
- /package/{e2e-flaky → integration-flaky}/import/import.server.files.spec.js +0 -0
- /package/{e2e-flaky → integration-flaky}/sparql-editor/lucene-connector.spec.js +0 -0
- /package/{e2e-flaky → integration-flaky}/sparql-editor/plugins/error-plugin.spec.js +0 -0
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
import {SparqlEditorSteps} from "../../../steps/sparql-editor-steps";
|
|
2
|
+
import {YasqeSteps} from "../../../steps/yasgui/yasqe-steps";
|
|
3
|
+
import {YasrSteps} from "../../../steps/yasgui/yasr-steps";
|
|
4
|
+
import {SimilarityIndexCreateSteps} from "../../../steps/explore/similarity-index-create-steps";
|
|
5
|
+
import {SimilarityIndexesSteps} from "../../../steps/explore/similarity-indexes-steps";
|
|
6
|
+
import {ModalDialogSteps, VerifyConfirmationDialogOptions} from "../../../steps/modal-dialog-steps";
|
|
7
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
8
|
+
|
|
9
|
+
const INDEX_NAME = 'index-' + Date.now();
|
|
10
|
+
const FILE_TO_IMPORT = 'people.zip';
|
|
11
|
+
const INDEX_CREATE_URL = '/similarity/index/create';
|
|
12
|
+
const BUILD_PARAM = ' -trainingcycles 4';
|
|
13
|
+
const STOP_WORD = 'stopword';
|
|
14
|
+
const LUCENE_ANALYZER = 'org.apache.lucene.analysis.de.GermanAnalyzer';
|
|
15
|
+
const MODIFIED_SEARCH_QUERY = 'PREFIX :<http://www.ontotext.com/graphdb/similarity/> \n' +
|
|
16
|
+
'SELECT ?documentID ?score { \n' +
|
|
17
|
+
'?search a ?index ; \n' +
|
|
18
|
+
'?searchType ?query; \n' +
|
|
19
|
+
':searchParameters ?parameters; \n' +
|
|
20
|
+
'?resultType ?result . \n' +
|
|
21
|
+
'?result :value ?documentID ; \n' +
|
|
22
|
+
':score ?score. \n' +
|
|
23
|
+
'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate . }}';
|
|
24
|
+
const MODIFIED_ANALOGICAL_QUERY = 'PREFIX :<http://www.ontotext.com/graphdb/similarity/>\n' +
|
|
25
|
+
'PREFIX psi:<http://www.ontotext.com/graphdb/similarity/psi/>\n' +
|
|
26
|
+
'PREFIX inst:<http://www.ontotext.com/graphdb/similarity/instance/>\n' +
|
|
27
|
+
'\n' +
|
|
28
|
+
'SELECT ?resultValue ?score {\n' +
|
|
29
|
+
' ?search a ?index ;\n' +
|
|
30
|
+
' psi:givenSubject ?givenSubject;\n' +
|
|
31
|
+
' psi:givenObject ?givenObject;\n' +
|
|
32
|
+
' psi:searchSubject ?searchSubject;\n' +
|
|
33
|
+
' :searchParameters ?parameters;\n' +
|
|
34
|
+
' psi:resultObject ?result .\n' +
|
|
35
|
+
' ?result :value ?resultValue;\n' +
|
|
36
|
+
' :score ?score .\n' +
|
|
37
|
+
'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate . }}';
|
|
38
|
+
const MODIFIED_DATA_QUERY = 'SELECT ?documentID ?documentText { \n' +
|
|
39
|
+
'?documentID <http://dbpedia.org/ontology/birthDate> ?documentText . \n' +
|
|
40
|
+
'filter(isLiteral(?documentText)) \n' +
|
|
41
|
+
'}order by asc(str(?documentID))';
|
|
42
|
+
|
|
43
|
+
describe('Similarity screen validation', () => {
|
|
44
|
+
|
|
45
|
+
let repositoryId;
|
|
46
|
+
|
|
47
|
+
afterEach(() => {
|
|
48
|
+
cy.deleteRepository(repositoryId);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('Test similarity page default state', () => {
|
|
52
|
+
initRepositoryAndVisitSimilarityView();
|
|
53
|
+
checkSimilarityPageDefaultState();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
context('Creating similarity index', () => {
|
|
57
|
+
beforeEach(() => {
|
|
58
|
+
initRepositoryAndVisitSimilarityView();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('Create default text similarity index and view SPARQL query', () => {
|
|
62
|
+
openCreateNewIndexForm();
|
|
63
|
+
setIndexName();
|
|
64
|
+
createSimilarityIndex();
|
|
65
|
+
viewSPARQLQuery();
|
|
66
|
+
deleteSimilarityIndex();
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('Create default predication similarity index', () => {
|
|
70
|
+
openCreateNewIndexForm();
|
|
71
|
+
switchToPredicationIndex();
|
|
72
|
+
setIndexName();
|
|
73
|
+
createSimilarityIndex();
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('Create text similarity index with a build parameter, stop word and custom Lucene Analyzer', () => {
|
|
77
|
+
openCreateNewIndexForm();
|
|
78
|
+
setIndexName();
|
|
79
|
+
clickMoreOptionsMenu();
|
|
80
|
+
addBuildParam();
|
|
81
|
+
addStopWord();
|
|
82
|
+
addLuceneAnalyzer();
|
|
83
|
+
clickMoreOptionsMenu();
|
|
84
|
+
createSimilarityIndex();
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('Create predication similarity index with a build parameter', () => {
|
|
88
|
+
openCreateNewIndexForm();
|
|
89
|
+
switchToPredicationIndex();
|
|
90
|
+
setIndexName();
|
|
91
|
+
clickMoreOptionsMenu();
|
|
92
|
+
addBuildParam();
|
|
93
|
+
clickMoreOptionsMenu();
|
|
94
|
+
createSimilarityIndex();
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('Create text similarity - literal index', () => {
|
|
98
|
+
openCreateNewIndexForm();
|
|
99
|
+
setIndexName();
|
|
100
|
+
clickMoreOptionsMenu();
|
|
101
|
+
checkLiteralIndex();
|
|
102
|
+
createSimilarityIndex();
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('Should not allow create similarity index with name that already exist', () => {
|
|
106
|
+
// If we have a similarity index.
|
|
107
|
+
openCreateNewIndexForm();
|
|
108
|
+
setIndexName();
|
|
109
|
+
createSimilarityIndex();
|
|
110
|
+
|
|
111
|
+
// When I try to create a similarity index with same name.
|
|
112
|
+
openCreateNewIndexForm();
|
|
113
|
+
setIndexName();
|
|
114
|
+
getCreateIndexButton().click();
|
|
115
|
+
// Then I expect an error message to be displayed that describes me, that name is mandatory.
|
|
116
|
+
ErrorSteps.verifyError('Index with this name already exists.');
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
context('Index operations', () => {
|
|
121
|
+
beforeEach(() => {
|
|
122
|
+
initRepositoryAndVisitSimilarityView();
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it('Change Data query in Create index', () => {
|
|
126
|
+
openCreateNewIndexForm();
|
|
127
|
+
setIndexName();
|
|
128
|
+
changeDataQuery();
|
|
129
|
+
createSimilarityIndex();
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it('Change Search query in Create index', () => {
|
|
133
|
+
openCreateNewIndexForm();
|
|
134
|
+
setIndexName();
|
|
135
|
+
changeSearchQuery();
|
|
136
|
+
createSimilarityIndex();
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
it('Change Search query of existing text index', () => {
|
|
140
|
+
openCreateNewIndexForm();
|
|
141
|
+
setIndexName();
|
|
142
|
+
createSimilarityIndex();
|
|
143
|
+
openEditQueryView();
|
|
144
|
+
changeSearchQuery();
|
|
145
|
+
getSaveEditedQueryButton().click();
|
|
146
|
+
openEditQueryView();
|
|
147
|
+
verifyQueryIsChanged();
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it('Change Analogical query of existing predication index', () => {
|
|
151
|
+
openCreateNewIndexForm();
|
|
152
|
+
switchToPredicationIndex();
|
|
153
|
+
setIndexName();
|
|
154
|
+
createSimilarityIndex();
|
|
155
|
+
openEditQueryView(true);
|
|
156
|
+
changeAnalogicalQuery();
|
|
157
|
+
getSaveEditedQueryButton().click();
|
|
158
|
+
openEditQueryView(true);
|
|
159
|
+
getAnalogicalQueryTab()
|
|
160
|
+
.scrollIntoView()
|
|
161
|
+
.should('be.visible')
|
|
162
|
+
.click()
|
|
163
|
+
.then(() => {
|
|
164
|
+
verifyQueryIsChanged();
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
it('Clone existing similarity index', () => {
|
|
169
|
+
openCreateNewIndexForm();
|
|
170
|
+
setIndexName();
|
|
171
|
+
createSimilarityIndex();
|
|
172
|
+
cloneExistingIndex();
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it('Rebuild existing similarity index', () => {
|
|
176
|
+
openCreateNewIndexForm();
|
|
177
|
+
setIndexName();
|
|
178
|
+
createSimilarityIndex();
|
|
179
|
+
rebuildIndex();
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
context('Searching in index', () => {
|
|
184
|
+
beforeEach(() => {
|
|
185
|
+
initRepositoryAndVisitSimilarityView();
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it('Search for entity in index', () => {
|
|
189
|
+
// I have created similarity index
|
|
190
|
+
openCreateNewIndexForm();
|
|
191
|
+
setIndexName();
|
|
192
|
+
createSimilarityIndex();
|
|
193
|
+
// wait a bit for the edit icon to ensure index is created
|
|
194
|
+
cy.get('.icon-edit').should('be.visible');
|
|
195
|
+
|
|
196
|
+
// When I open the index
|
|
197
|
+
openIndex(0);
|
|
198
|
+
|
|
199
|
+
// Then I expect the indexes table to become hidden
|
|
200
|
+
cy.get('#indexes-table table').should('not.be.visible');
|
|
201
|
+
|
|
202
|
+
// And index search panel to be opened
|
|
203
|
+
cy.get('.index-search-panel').should('be.visible');
|
|
204
|
+
cy.get('.selected-index').should('be.visible').and('contain', `Search in ${INDEX_NAME}`);
|
|
205
|
+
getSearchIndexInput().should('be.visible');
|
|
206
|
+
// The search and result types should both be set to Term
|
|
207
|
+
SimilarityIndexesSteps.getSearchTypeButton().should('contain.text', 'Term');
|
|
208
|
+
SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Term');
|
|
209
|
+
|
|
210
|
+
// When I search for "Neal" in the index
|
|
211
|
+
searchIndex('Neal');
|
|
212
|
+
|
|
213
|
+
// Then I expect search results to be displayed
|
|
214
|
+
// And showing 20 results
|
|
215
|
+
YasrSteps.getResults().should('have.length', 20);
|
|
216
|
+
|
|
217
|
+
// When I select Document as the search type
|
|
218
|
+
SimilarityIndexesSteps.selectSearchTypeOption('Document');
|
|
219
|
+
|
|
220
|
+
// The result type should remain Term
|
|
221
|
+
SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Term');
|
|
222
|
+
|
|
223
|
+
// When I select Document as the result type
|
|
224
|
+
SimilarityIndexesSteps.selectResultTypeOption('Document');
|
|
225
|
+
|
|
226
|
+
// The search type should remain Document
|
|
227
|
+
SimilarityIndexesSteps.getSearchTypeButton().should('contain.text', 'Document');
|
|
228
|
+
|
|
229
|
+
// The result type should be Document
|
|
230
|
+
SimilarityIndexesSteps.getResultTypeButton().should('contain.text', 'Document');
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
it('Disable and enable similarity plugin', {
|
|
235
|
+
retries: {
|
|
236
|
+
openMode: 0,
|
|
237
|
+
runMode: 2
|
|
238
|
+
}
|
|
239
|
+
}, () => {
|
|
240
|
+
const disableSimilarityPlugin = 'INSERT DATA { <u:a> <http://www.ontotext.com/owlim/system#stopplugin> \'similarity\' . }';
|
|
241
|
+
initRepository();
|
|
242
|
+
cy.presetRepository(repositoryId);
|
|
243
|
+
|
|
244
|
+
SparqlEditorSteps.visitSparqlEditorPage();
|
|
245
|
+
|
|
246
|
+
// When I disable the plugin.
|
|
247
|
+
YasqeSteps.pasteQuery(disableSimilarityPlugin);
|
|
248
|
+
YasqeSteps.executeQuery();
|
|
249
|
+
|
|
250
|
+
// Then I expect a message to be displayed confirming that operation is complete.
|
|
251
|
+
YasrSteps.getResponseInfo().should('be.visible').and('contain', 'The number of statements did not change.');
|
|
252
|
+
|
|
253
|
+
// When I try to disable it while it's disabled.
|
|
254
|
+
YasqeSteps.executeErrorQuery();
|
|
255
|
+
|
|
256
|
+
// Then I expect an error message to be displayed informing me that the plugin has been already disabled.
|
|
257
|
+
YasrSteps.getErrorBody().should('be.visible').and('contain', 'Plugin similarity has been already disabled');
|
|
258
|
+
|
|
259
|
+
// When I visit similarity view while the plugin is disabled.
|
|
260
|
+
cy.visit('/similarity');
|
|
261
|
+
cy.window();
|
|
262
|
+
|
|
263
|
+
// Then I expect a message to be displayed informing me that the plugin is disabled.
|
|
264
|
+
cy.get('.plugin-not-active-warning').should('be.visible').and('contain', 'Similarity Plugin is not active for this repository.');
|
|
265
|
+
// cy.pause()
|
|
266
|
+
// When I enable the plugin
|
|
267
|
+
cy.get('.confirm-btn')
|
|
268
|
+
.should('be.visible')
|
|
269
|
+
.and('contain', 'Activate')
|
|
270
|
+
.click().then(() => {
|
|
271
|
+
// Should confirm that want to activate plugin
|
|
272
|
+
cy.get('.modal-footer > .btn-primary')
|
|
273
|
+
.should('be.visible')
|
|
274
|
+
.click()
|
|
275
|
+
.then(() => {
|
|
276
|
+
// Then I expect default similarity view with no indexes available
|
|
277
|
+
// cy.pause()
|
|
278
|
+
checkSimilarityPageDefaultState();
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
context('Confirmations when try to change location', () => {
|
|
284
|
+
|
|
285
|
+
beforeEach(() => {
|
|
286
|
+
initRepositoryAndVisitSimilarityView();
|
|
287
|
+
openCreateNewIndexForm();
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
it('should not display confirm message when there are not changes', () => {
|
|
291
|
+
// Given I opened the create similarity view.
|
|
292
|
+
// When I click on cancel button.
|
|
293
|
+
SimilarityIndexCreateSteps.cancel();
|
|
294
|
+
|
|
295
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
296
|
+
SimilarityIndexesSteps.verifyUrl();
|
|
297
|
+
|
|
298
|
+
});
|
|
299
|
+
|
|
300
|
+
it('should display confirm message if index name is filled', () => {
|
|
301
|
+
// Given I opened the create similarity view,
|
|
302
|
+
// and similarity index name is filled.
|
|
303
|
+
SimilarityIndexCreateSteps.typeSimilarityIndexName('index');
|
|
304
|
+
|
|
305
|
+
// When click on cancel button.
|
|
306
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
307
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
308
|
+
});
|
|
309
|
+
|
|
310
|
+
it('should display confirm message if data query is changed', () => {
|
|
311
|
+
// Given I opened the create similarity view,
|
|
312
|
+
// and data query is changed.
|
|
313
|
+
// During the initialization query is changed and this broke the test.
|
|
314
|
+
// Most the time the broken flow is:
|
|
315
|
+
// 1. cypress start to type 's';
|
|
316
|
+
// 2. query is changed
|
|
317
|
+
// 3. cypress continuous to type 'ome changes'.
|
|
318
|
+
// as result query is 'ome changes<data query>. YasqeSteps.writeInEditor function has check if parameter is filled, in our case 'some changes',
|
|
319
|
+
// and this broke the test. Add a little wait time to give chance yasqe query to be filled.
|
|
320
|
+
cy.wait(1000);
|
|
321
|
+
YasqeSteps.writeInEditor('some changes');
|
|
322
|
+
|
|
323
|
+
// When click on cancel button.
|
|
324
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
325
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
it('should display confirm message if "Semantic Vectors create index parameters" is changed', () => {
|
|
329
|
+
// Given I opened the create similarity view,
|
|
330
|
+
// and "Semantic Vectors create index parameters" is changed.
|
|
331
|
+
SimilarityIndexCreateSteps.showMoreOptions();
|
|
332
|
+
SimilarityIndexCreateSteps.getSemanticVectorsInput().type('semantic vector');
|
|
333
|
+
|
|
334
|
+
// When click on cancel button.
|
|
335
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
336
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
337
|
+
});
|
|
338
|
+
|
|
339
|
+
it('should display confirm message if "Stop words" is changed', () => {
|
|
340
|
+
// Given I opened the create similarity view,
|
|
341
|
+
// and "Stop words" is changed.
|
|
342
|
+
SimilarityIndexCreateSteps.showMoreOptions();
|
|
343
|
+
SimilarityIndexCreateSteps.getStopWordsInput().type('stop words');
|
|
344
|
+
|
|
345
|
+
// When click on cancel button.
|
|
346
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
347
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
it('should display confirm message if "Analyzer Class" is changed', () => {
|
|
351
|
+
// Given I opened the create similarity view,
|
|
352
|
+
// and "Analyzer Class" is changed.
|
|
353
|
+
SimilarityIndexCreateSteps.showMoreOptions();
|
|
354
|
+
SimilarityIndexCreateSteps.getAnalyzerClassInput().type('BulgarianAnalyzer');
|
|
355
|
+
|
|
356
|
+
// When click on cancel button.
|
|
357
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
358
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
it('should display confirm message if "Literal index" is changed', () => {
|
|
362
|
+
// Given I opened the create similarity view,
|
|
363
|
+
// and "Literal index" is changed.
|
|
364
|
+
SimilarityIndexCreateSteps.showMoreOptions();
|
|
365
|
+
SimilarityIndexCreateSteps.checkLiteralIndex();
|
|
366
|
+
|
|
367
|
+
// When click on cancel button.
|
|
368
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
369
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
370
|
+
});
|
|
371
|
+
|
|
372
|
+
it('should display confirm message if "Search query" is changed', () => {
|
|
373
|
+
// Given I opened the create similarity view,
|
|
374
|
+
// and "Search query" is changed.
|
|
375
|
+
SimilarityIndexCreateSteps.switchToSearchQueryTab();
|
|
376
|
+
YasqeSteps.writeInEditor('some changes');
|
|
377
|
+
|
|
378
|
+
// When click on cancel button.
|
|
379
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
380
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
it('should display confirm message if "Analogical query" is changed', () => {
|
|
384
|
+
// Given I opened the create similarity view,
|
|
385
|
+
// and "Analogical query" is changed.
|
|
386
|
+
SimilarityIndexCreateSteps.switchToCreatePredictionIndexTab();
|
|
387
|
+
SimilarityIndexCreateSteps.switchToAnalogicalQueryTab();
|
|
388
|
+
YasqeSteps.writeInEditor('some changes');
|
|
389
|
+
|
|
390
|
+
// When click on cancel button.
|
|
391
|
+
// Then I expect to be redirected to similarity indexes view.
|
|
392
|
+
ModalDialogSteps.verifyUrlChangedConfirmation(createVerifyConfirmationDialogOptions());
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
function initRepository() {
|
|
397
|
+
repositoryId = 'similarity-repo-' + Date.now();
|
|
398
|
+
cy.createRepository({id: repositoryId});
|
|
399
|
+
cy.importServerFile(repositoryId, FILE_TO_IMPORT);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
function initRepositoryAndVisitSimilarityView() {
|
|
403
|
+
initRepository();
|
|
404
|
+
cy.visit('/similarity', {
|
|
405
|
+
onBeforeLoad: (win) => {
|
|
406
|
+
win.localStorage.setItem('ls.repository-id', repositoryId);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
cy.window()
|
|
410
|
+
.then(() => getExistingIndexesPanel());
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
function openIndex(index) {
|
|
414
|
+
getIndexLinks().eq(index).click();
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
function getSearchIndexInput() {
|
|
418
|
+
// There are 6 such fields and it's not obvious what selectors they should have.
|
|
419
|
+
// So we select it by placeholders.
|
|
420
|
+
return cy.get('input[placeholder="Search RDF resources for RDF entity"]');
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
function searchIndex(entity) {
|
|
424
|
+
getSearchIndexInput().type(entity);
|
|
425
|
+
// there are two buttons so we search in the context
|
|
426
|
+
getSearchIndexInput().closest('.input-group').find('.autocomplete-visual-btn').click();
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
function checkSimilarityPageDefaultState() {
|
|
430
|
+
//TODO: Should change the 'contain' method to 'eq' once GDB-3699 is fixed.
|
|
431
|
+
cy.url().should('contain', Cypress.config('baseUrl') + '/similarity');
|
|
432
|
+
getExistingIndexesPanel()
|
|
433
|
+
.find('.no-indexes')
|
|
434
|
+
.should('be.visible')
|
|
435
|
+
.and('contain', 'No Indexes');
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
function openCreateNewIndexForm() {
|
|
439
|
+
cy.get('.create-similarity-index').click();
|
|
440
|
+
cy.url().should('contain', `${Cypress.config('baseUrl')}/similarity/index/create`);
|
|
441
|
+
// Wait for query editor to become ready because consecutive command for index creation might
|
|
442
|
+
// fail because the query may not be submitted with the request.
|
|
443
|
+
YasqeSteps.waitUntilQueryIsVisible();
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
function setIndexName() {
|
|
447
|
+
cy.url().should('eq', Cypress.config('baseUrl') + INDEX_CREATE_URL);
|
|
448
|
+
getSimilarity().invoke('val', INDEX_NAME).trigger('change')
|
|
449
|
+
.then(() => getSimilarity().should('have.value', INDEX_NAME));
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
function clickMoreOptionsMenu() {
|
|
453
|
+
cy.get('.more-options-btn').click();
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
function addBuildParam() {
|
|
457
|
+
cy.get('#indexParameters').type(BUILD_PARAM);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
function addStopWord() {
|
|
461
|
+
cy.get('.stop-words').type(STOP_WORD);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
function addLuceneAnalyzer() {
|
|
465
|
+
cy.get('.analyzer-class').type(Cypress.env('modifierKey') + 'a{backspace}', {force: true})
|
|
466
|
+
.invoke('val', LUCENE_ANALYZER).trigger('change', {force: true});
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
function checkLiteralIndex() {
|
|
470
|
+
cy.get('.literal-index').click();
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
function createSimilarityIndex() {
|
|
474
|
+
getCreateIndexButton().click()
|
|
475
|
+
.then(() => {
|
|
476
|
+
cy.url().should('eq', `${Cypress.config('baseUrl')}/similarity`);
|
|
477
|
+
getExistingIndexesPanel();
|
|
478
|
+
cy.get('#indexes-table table').should('be.visible')
|
|
479
|
+
.find('.index-row').should('have.length', 1);
|
|
480
|
+
// Just wait for the row in the table to appear and the cell with the index name to be
|
|
481
|
+
// visible. Waiting for the loading indicator to disappear is just too brittle.
|
|
482
|
+
// Also trying to check for the index name in the cell with `.and('contain', INDEX_NAME);`
|
|
483
|
+
// fails often because during completing the index name on a previous step the WB seems to
|
|
484
|
+
// cut off part of the name on the leading side.
|
|
485
|
+
getIndexLinks().should('be.visible');
|
|
486
|
+
cy.waitUntil(() =>
|
|
487
|
+
cy.get('.edit-query-btn')
|
|
488
|
+
.then((editBtn) => editBtn));
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
function deleteSimilarityIndex() {
|
|
493
|
+
waitForIndexBuildingIndicatorToHide();
|
|
494
|
+
getDeleteIndexButton().should('be.visible');
|
|
495
|
+
getDeleteIndexButton().click();
|
|
496
|
+
cy.get('.modal-footer .confirm-btn').click();
|
|
497
|
+
cy.get('.no-indexes').should('be.visible').and('contain', 'No Indexes');
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
function switchToPredicationIndex() {
|
|
501
|
+
cy.get('#create-predication-index').click();
|
|
502
|
+
// Wait for query editor to become ready because consecutive command for index creation might
|
|
503
|
+
// fail because the query may not be submitted with the request.
|
|
504
|
+
YasqeSteps.waitUntilQueryIsVisible();
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
function cloneExistingIndex() {
|
|
508
|
+
cy.url().should('eq', Cypress.config('baseUrl') + '/similarity');
|
|
509
|
+
cy.get('.clone-index-btn').click()
|
|
510
|
+
.then(() => cy.url().should('contain', `${Cypress.config('baseUrl')}/similarity/index/create`));
|
|
511
|
+
|
|
512
|
+
// Makes sure YASQE has loaded before we click the Create button
|
|
513
|
+
YasqeSteps.waitUntilQueryIsVisible();
|
|
514
|
+
getCreateIndexButton().should('be.visible').click();
|
|
515
|
+
|
|
516
|
+
getExistingIndexesPanel();
|
|
517
|
+
waitForIndexBuildingIndicatorToHide();
|
|
518
|
+
cy.waitUntil(() =>
|
|
519
|
+
cy.get('#indexes-table')
|
|
520
|
+
.find('.index-row')
|
|
521
|
+
.then((indexes) => indexes.length === 2));
|
|
522
|
+
|
|
523
|
+
cy.url().should('contain', Cypress.config('baseUrl') + '/similarity'); //Should change the 'contain' method to 'eq' once GDB-3699 is resolved
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function getIndexLinks() {
|
|
527
|
+
return cy.get('#indexes-table .index-name');
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
function rebuildIndex() {
|
|
531
|
+
cy.get('.similarity-index-icon-reload').should('be.visible').click();
|
|
532
|
+
cy.get('.modal-footer .btn-primary').click();
|
|
533
|
+
cy.get('.similarity-index-building-loader').should('be.visible');
|
|
534
|
+
getDeleteIndexButton().should('be.visible');
|
|
535
|
+
waitForIndexBuildingIndicatorToHide();
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
function viewSPARQLQuery() {
|
|
539
|
+
cy.get('.view-sparql-query-btn').click();
|
|
540
|
+
cy.get('.modal-title').should('be.visible').and('contain', 'View SPARQL Query');
|
|
541
|
+
cy.get('.btn-primary').should('be.visible').and('contain', 'Copy to clipboard');
|
|
542
|
+
cy.get('.close').click();
|
|
543
|
+
cy.get('.modal').should('not.exist');
|
|
544
|
+
cy.get('.modal-backdrop').should('not.exist');
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
function openEditQueryView(isPredication) {
|
|
548
|
+
cy.url().should('contain', Cypress.config('baseUrl') + '/similarity');
|
|
549
|
+
// Open "Edit search query" view
|
|
550
|
+
cy.get('.edit-query-btn').should('be.visible').click();
|
|
551
|
+
// Verify that 'similarity-index-name' input field is disabled
|
|
552
|
+
getSimilarity().should('be.disabled');
|
|
553
|
+
getSearchQueryTab().should('be.visible');
|
|
554
|
+
YasqeSteps.waitUntilQueryIsVisible();
|
|
555
|
+
const shouldAnalogicalTabBeVisible = (isPredication ? '' : 'not.') + 'exist';
|
|
556
|
+
getAnalogicalQueryTab().should(shouldAnalogicalTabBeVisible);
|
|
557
|
+
if (isPredication) {
|
|
558
|
+
YasqeSteps.verifyQueryContains('SELECT ?entity ?score {');
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function changeDataQuery() {
|
|
563
|
+
YasqeSteps.pasteQuery(MODIFIED_DATA_QUERY);
|
|
564
|
+
cy.get('.test-query-btn', {force: true}).click();
|
|
565
|
+
cy.get('.sparql-loader').should('not.exist');
|
|
566
|
+
YasrSteps.getResults().its('length').should('be.gt', 1);
|
|
567
|
+
YasrSteps.getResults().contains('http://dbpedia.org/resource/Aaron_Jay_Kernis');
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
function changeSearchQuery() {
|
|
571
|
+
SimilarityIndexCreateSteps.switchToSearchQueryTab();
|
|
572
|
+
YasqeSteps.pasteQuery(MODIFIED_SEARCH_QUERY);
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
function changeAnalogicalQuery() {
|
|
576
|
+
getAnalogicalQueryTab()
|
|
577
|
+
.scrollIntoView()
|
|
578
|
+
.should('be.visible').click()
|
|
579
|
+
.then(() => {
|
|
580
|
+
YasqeSteps.pasteQuery(MODIFIED_ANALOGICAL_QUERY);
|
|
581
|
+
});
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
function getDeleteIndexButton() {
|
|
585
|
+
return cy.get('.delete-index-btn');
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
function getCreateIndexButton() {
|
|
589
|
+
return cy.get('.create-similarity-index-btn');
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
function getSearchQueryTab() {
|
|
593
|
+
return cy.get('.search-query-tab');
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
function getAnalogicalQueryTab() {
|
|
597
|
+
return cy.get('.analogical-query-tab');
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
function getSaveEditedQueryButton() {
|
|
601
|
+
return cy.get('.save-query-btn').scrollIntoView().should('be.visible');
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
function getSimilarity() {
|
|
605
|
+
return cy.get('.similarity-index-name');
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
function getExistingIndexesPanel() {
|
|
609
|
+
return cy.get('.existing-indexes').should('be.visible');
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
function waitForIndexBuildingIndicatorToHide() {
|
|
613
|
+
cy.get('.similarity-index-building-loader').should('not.exist');
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
function verifyQueryIsChanged() {
|
|
617
|
+
const query = 'OPTIONAL { ?result <http://dbpedia.org/ontology/birthPlace> ?birthDate .';
|
|
618
|
+
YasqeSteps.verifyQueryContains(query);
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
function createVerifyConfirmationDialogOptions() {
|
|
622
|
+
return new VerifyConfirmationDialogOptions()
|
|
623
|
+
.setChangePageFunction(() => SimilarityIndexCreateSteps.getCancelButton().click())
|
|
624
|
+
.setConfirmationMessage('You have unsaved changes. Are you sure that you want to exit?')
|
|
625
|
+
.setVerifyCurrentUrl(() => cy.url().should('include', `${Cypress.config('baseUrl')}/similarity/index/create`))
|
|
626
|
+
.setVerifyRedirectedUrl(() => cy.url().should('eq', `${Cypress.config('baseUrl')}/similarity`));
|
|
627
|
+
}
|
|
628
|
+
});
|
|
@@ -189,7 +189,7 @@ describe('Graphs config', () => {
|
|
|
189
189
|
// When I click on cancel
|
|
190
190
|
VisualGraphSteps.cancelSaveConfig();
|
|
191
191
|
// Then I expect to be redirected to configs list view
|
|
192
|
-
cy.url().should('
|
|
192
|
+
cy.url().should('eq', Cypress.config('baseUrl') + '/graphs-visualizations');
|
|
193
193
|
});
|
|
194
194
|
|
|
195
195
|
it('Should not allow config creation without a name', () => {
|
|
@@ -217,7 +217,12 @@ describe('Graphs config', () => {
|
|
|
217
217
|
VisualGraphSteps.getGraphConfigSearchPanelName().should('contain', graphConfigName);
|
|
218
218
|
});
|
|
219
219
|
|
|
220
|
-
it('Should create graph config with fixed node',
|
|
220
|
+
it('Should create graph config with fixed node', {
|
|
221
|
+
retries: {
|
|
222
|
+
runMode: 1,
|
|
223
|
+
openMode: 0
|
|
224
|
+
}
|
|
225
|
+
}, () => {
|
|
221
226
|
cy.enableAutocomplete(repositoryId);
|
|
222
227
|
// Given I have started a create config wizard
|
|
223
228
|
startCreateConfigWizard();
|
|
@@ -349,7 +354,7 @@ describe('Graphs config', () => {
|
|
|
349
354
|
// When I click cancel without changing the query
|
|
350
355
|
VisualGraphSteps.cancelSaveConfig();
|
|
351
356
|
// Then I expect to be redirected to configs list without confirmation
|
|
352
|
-
cy.url().should('
|
|
357
|
+
cy.url().should('eq', Cypress.config('baseUrl') + '/graphs-visualizations');
|
|
353
358
|
// And I open it for edit
|
|
354
359
|
VisualGraphSteps.editConfig(graphConfigName);
|
|
355
360
|
checkEditorWithQuery(QUERY_START);
|
|
@@ -372,7 +377,7 @@ describe('Graphs config', () => {
|
|
|
372
377
|
ModalDialogSteps.clickOnConfirmButton();
|
|
373
378
|
// Then I expect to be redirected to configs list page
|
|
374
379
|
ModalDialogSteps.getDialog().should('not.exist');
|
|
375
|
-
cy.url().should('
|
|
380
|
+
cy.url().should('eq', Cypress.config('baseUrl') + '/graphs-visualizations');
|
|
376
381
|
});
|
|
377
382
|
|
|
378
383
|
it('Should prevent leaving with confirmation when expand query is changed', () => {
|
|
@@ -454,7 +459,7 @@ function saveGraphConfig(graphConfigName) {
|
|
|
454
459
|
// Then I expect a success notification
|
|
455
460
|
ApplicationSteps.getSuccessNotifications().should('be.visible');
|
|
456
461
|
// And I should be redirected to configs list view
|
|
457
|
-
cy.url().should('
|
|
462
|
+
cy.url().should('eq', Cypress.config('baseUrl') + '/graphs-visualizations');
|
|
458
463
|
// And the new config should be present in the list
|
|
459
464
|
VisualGraphSteps.getGraphConfig(graphConfigName).should('be.visible');
|
|
460
465
|
}
|