graphdb-workbench-tests 3.0.2 → 3.1.0-RC1
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 +15 -4
- package/cypress-legacy.config.js +40 -0
- package/cypress-security.config.js +40 -0
- package/cypress.config.js +8 -4
- package/{integration-flaky → e2e-flaky}/explore/visual.graph.spec.js +4 -1
- package/{integration-flaky → e2e-flaky}/import/import-server-files-operations.spec.js +1 -1
- package/e2e-flaky/import/import-user-data-url.spec.js +63 -0
- package/{integration-flaky → e2e-flaky}/setup/sparql-template-create.js +9 -2
- package/{integration-flaky → e2e-flaky}/sparql-editor/yasr/table-plugin.spec.js +2 -1
- package/{integration → e2e-legacy}/cluster/edit-cluster-nodes-modal.spec.js +44 -0
- 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} +18 -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 +1 -6
- 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 +2 -7
- 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/e2e-legacy/graphql/graphql-endpoint management-without-selected-repository.spec.js +21 -0
- 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.jsx +39 -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/{integration → e2e-legacy}/graphql/import-graphql-endpoint-definitions.spec.js +0 -6
- 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/{integration → e2e-legacy/help}/guides/movies-interactive-guide.spec.js +3 -3
- package/{integration → e2e-legacy/help}/guides/star-wars-interactive-guide.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.spec.js +108 -0
- package/e2e-legacy/home/documentation-link.spec.js +61 -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 +148 -0
- package/e2e-legacy/home/view-resource-autocomplete.spec.js +65 -0
- package/{integration → e2e-legacy}/import/import-user-data-file-upload.spec.js +16 -10
- 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 +9 -2
- 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/{integration → e2e-legacy}/repository/repositories.spec.js +34 -45
- package/{integration → e2e-legacy}/resource/resource.spec.js +16 -1
- package/e2e-legacy/setup/aclmanagement/acl-management-with-selected repository.spec.js +40 -0
- package/e2e-legacy/setup/aclmanagement/acl-management-without-repositories.spec.js +21 -0
- package/{integration → e2e-legacy}/setup/aclmanagement/create-rule.spec.js +1 -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 +5 -6
- 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/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 +1 -1
- 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/{integration/setup → e2e-legacy/setup/settings}/my-settings.spec.js +5 -75
- package/{integration/setup → e2e-legacy/setup/sparql-template}/sparql-template-create.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 +53 -19
- package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
- package/{integration → e2e-legacy}/sparql-editor/actions/inferred-sameas.spec.js +3 -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 +7 -13
- package/{integration → e2e-legacy}/sparql-editor/saved-query/share-query.spec.js +2 -0
- 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}/ttyg/agent-list.spec.js +52 -0
- package/{integration → e2e-legacy}/ttyg/agent-select-menu.spec.js +24 -0
- package/{integration → e2e-legacy}/ttyg/chat-panel.spec.js +29 -3
- package/{integration → e2e-legacy}/ttyg/clone-agent.spec.js +1 -0
- package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +7 -6
- package/{integration → e2e-legacy}/ttyg/create-chat.spec.js +3 -1
- package/e2e-legacy/ttyg/edit-agent.spec.js +169 -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 +25 -15
- package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +1 -0
- package/e2e-security/setup/home/cookie-policy.spec.js +64 -0
- package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +184 -0
- package/e2e-security/setup/users-and-access/graphql-user.spec.js +123 -0
- package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +69 -0
- package/e2e-security/setup/users-and-access/turn-on-security-and-password-change.spec.js +87 -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/fixtures/locale-en.json +62 -19
- package/fixtures/repositories/free-access.json +13 -0
- package/fixtures/ttyg/agent/get-agent-defaults-assistant-api.json +44 -0
- package/fixtures/ttyg/agent/get-agent-defaults.json +2 -0
- package/fixtures/ttyg/agent/get-agent-list-with-incompatible-agents.json +79 -0
- package/fixtures/ttyg/chats/ask-question.json +12 -2
- package/fixtures/ttyg/chats/get-chat.json +6 -1
- package/npm-shrinkwrap.json +9356 -3815
- package/package.json +48 -42
- package/plugins/index.js +3 -2
- package/steps/application-steps.js +1 -1
- package/steps/base-steps.js +21 -0
- package/steps/class-views-steps.js +16 -0
- package/steps/cluster/cluster-page-steps.js +12 -2
- 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-indexes-steps.js +12 -2
- package/steps/graphql/graphql-endpoint-management-steps.js +2 -2
- package/steps/guides/guide-steps.js +20 -1
- package/steps/home-steps.js +158 -48
- package/steps/import/import-steps.js +11 -15
- package/steps/import/import-user-data-steps.js +4 -0
- package/steps/language-selector-steps.js +2 -2
- package/steps/license-steps.js +91 -9
- package/steps/login-steps.js +14 -3
- package/steps/main-menu-steps.js +207 -15
- package/steps/modal-dialog-steps.js +20 -0
- 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/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 +18 -12
- package/steps/resource/resource-steps.js +4 -0
- package/steps/rest-api-documentation-steps.js +15 -0
- package/steps/setup/autocomplete-steps.js +17 -6
- package/steps/setup/connectors-steps.js +19 -0
- package/steps/setup/jdbc-steps.js +18 -4
- package/steps/setup/namespace-steps.js +9 -6
- package/steps/setup/plugins-steps.js +11 -4
- package/steps/setup/rdf-rank-steps.js +22 -4
- package/steps/setup/settings-steps.js +100 -1
- package/steps/setup/sparql-templates-steps.js +19 -1
- package/steps/setup/user-and-access-steps.js +33 -3
- package/steps/system-information-steps.js +70 -0
- package/steps/ttyg/chat-panel-steps.js +1 -1
- package/steps/ttyg/ttyg-agent-settings-modal.steps.js +82 -23
- package/steps/ttyg/ttyg-view-steps.js +74 -8
- package/steps/visual-graph-steps.js +4 -0
- 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/yasr-steps.js +4 -0
- package/stubs/autocomplete/autocomplete-stubs.js +7 -0
- package/stubs/browser-stubs.js +21 -0
- package/stubs/environment-stubs.js +9 -1
- package/stubs/license-stubs.js +51 -0
- package/stubs/repositories/repositories-stubs.js +8 -0
- package/stubs/repositories-stub.js +6 -6
- package/stubs/saved-queries-stubs.js +5 -0
- package/stubs/security-stubs.js +4 -0
- package/stubs/ttyg/ttyg-stubs.js +19 -6
- package/support/commands.js +19 -0
- package/support/{index.js → e2e.js} +2 -1
- package/support/repository-commands.js +20 -4
- package/Dockerfile +0 -11
- 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/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/ttyg/edit-agent.spec.js +0 -99
- package/integration-flaky/setup/users-and-access/security-and-free-access.spec.js +0 -54
- package/{integration-flaky → e2e-flaky}/import/import-user-data-batch-operations.spec.js +0 -0
- package/{integration-flaky → e2e-flaky}/import/import.server.files.spec.js +0 -0
- package/{integration-flaky → e2e-flaky}/sparql-editor/actions/execute-update-query.spec.js +0 -0
- package/{integration-flaky → e2e-flaky}/sparql-editor/actions/share-query.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/cluster-states.spec.js +0 -0
- package/{integration → e2e-legacy}/explore/visual-graph/visual-graph-node-labels.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-server-files.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/ontop-repository.spec.js +0 -0
- /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/connectors-lucene.spec.js +0 -0
- /package/{integration → e2e-legacy}/setup/jdbc/jdbc-create.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/expand-results-over-sameas.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/actions/include-inferred-statements.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/actions/save-query.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/actions/show-saved-queries.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/internationalization.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/saved-query/abort-query.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/yasgui-tabs.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/yasr/download-as.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/yasr/pagination.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/yasr/table-plugin.spec.js +0 -0
- /package/{integration → e2e-legacy}/sparql-editor/yasr/toolbar/visual-graph-button.spec.js +0 -0
- /package/{integration → e2e-legacy}/ttyg/chat-list.spec.js +0 -0
- /package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +0 -0
package/.editorconfig
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
root = true
|
|
2
|
+
|
|
3
|
+
[*]
|
|
4
|
+
|
|
5
|
+
indent_style = space
|
|
6
|
+
indent_size = 4
|
|
7
|
+
|
|
8
|
+
end_of_line = lf
|
|
9
|
+
charset = utf-8
|
|
10
|
+
trim_trailing_whitespace = true
|
|
11
|
+
insert_final_newline = true
|
|
12
|
+
|
|
13
|
+
[*.md]
|
|
14
|
+
trim_trailing_whitespace = false
|
|
15
|
+
|
|
16
|
+
[*.txt]
|
|
17
|
+
insert_final_newline = false
|
package/.nycrc
ADDED
package/cypress-flaky.config.js
CHANGED
|
@@ -6,16 +6,27 @@ module.exports = defineConfig({
|
|
|
6
6
|
screenshotsFolder: 'report/screenshots',
|
|
7
7
|
videosFolder: 'report/videos',
|
|
8
8
|
video: true,
|
|
9
|
-
defaultCommandTimeout:
|
|
9
|
+
defaultCommandTimeout: 25000,
|
|
10
10
|
numTestsKeptInMemory: 10,
|
|
11
11
|
e2e: {
|
|
12
|
+
retries: {
|
|
13
|
+
runMode: 2,
|
|
14
|
+
openMode: 0
|
|
15
|
+
},
|
|
12
16
|
// We've imported your old cypress plugins here.
|
|
13
17
|
// You may want to clean this up later by importing these.
|
|
14
18
|
setupNodeEvents(on, config) {
|
|
15
|
-
return require('./plugins
|
|
19
|
+
return require('./plugins')(on, config);
|
|
16
20
|
},
|
|
17
21
|
baseUrl: 'http://localhost:9000',
|
|
18
|
-
specPattern: '
|
|
19
|
-
supportFile: 'support/
|
|
22
|
+
specPattern: 'e2e-flaky/**/*.{js,jsx,ts,tsx}',
|
|
23
|
+
supportFile: 'support/e2e.js',
|
|
24
|
+
reporter: "cypress-multi-reporters",
|
|
25
|
+
reporterOptions: {
|
|
26
|
+
configFile: 'cypress-reporter-config.json'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
env: {
|
|
30
|
+
set_default_user_data: true
|
|
20
31
|
}
|
|
21
32
|
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const {defineConfig} = require('cypress');
|
|
2
|
+
|
|
3
|
+
const isCoverage = process.env.COVERAGE === 'true';
|
|
4
|
+
|
|
5
|
+
module.exports = defineConfig({
|
|
6
|
+
projectId: 'v35btb',
|
|
7
|
+
fixturesFolder: 'fixtures',
|
|
8
|
+
screenshotsFolder: 'report/screenshots',
|
|
9
|
+
videosFolder: 'report/videos',
|
|
10
|
+
video: true,
|
|
11
|
+
defaultCommandTimeout: 25000,
|
|
12
|
+
numTestsKeptInMemory: 10,
|
|
13
|
+
viewportWidth: 1280,
|
|
14
|
+
viewportHeight: 720,
|
|
15
|
+
e2e: {
|
|
16
|
+
retries: {
|
|
17
|
+
runMode: 2,
|
|
18
|
+
openMode: 0
|
|
19
|
+
},
|
|
20
|
+
// We've imported your old cypress plugins here.
|
|
21
|
+
// You may want to clean this up later by importing these.
|
|
22
|
+
setupNodeEvents(on, config) {
|
|
23
|
+
require('./plugins')(on, config);
|
|
24
|
+
if (isCoverage) {
|
|
25
|
+
require('@bahmutov/cypress-code-coverage/plugin')(on, config)
|
|
26
|
+
}
|
|
27
|
+
return config;
|
|
28
|
+
},
|
|
29
|
+
baseUrl: 'http://localhost:9000',
|
|
30
|
+
specPattern: 'e2e-legacy/**/*.{js,jsx,ts,tsx}',
|
|
31
|
+
supportFile: 'support/e2e.js',
|
|
32
|
+
reporter: "cypress-multi-reporters",
|
|
33
|
+
reporterOptions: {
|
|
34
|
+
configFile: 'cypress-reporter-config.json'
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
env: {
|
|
38
|
+
set_default_user_data: true
|
|
39
|
+
}
|
|
40
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const {defineConfig} = require('cypress');
|
|
2
|
+
|
|
3
|
+
const isCoverage = process.env.COVERAGE === 'true';
|
|
4
|
+
|
|
5
|
+
module.exports = defineConfig({
|
|
6
|
+
projectId: 'v35btb',
|
|
7
|
+
fixturesFolder: 'fixtures',
|
|
8
|
+
screenshotsFolder: 'report/screenshots',
|
|
9
|
+
videosFolder: 'report/videos',
|
|
10
|
+
video: true,
|
|
11
|
+
defaultCommandTimeout: 25000,
|
|
12
|
+
numTestsKeptInMemory: 10,
|
|
13
|
+
viewportWidth: 1280,
|
|
14
|
+
viewportHeight: 720,
|
|
15
|
+
e2e: {
|
|
16
|
+
retries: {
|
|
17
|
+
runMode: 2,
|
|
18
|
+
openMode: 0
|
|
19
|
+
},
|
|
20
|
+
// We've imported your old cypress plugins here.
|
|
21
|
+
// You may want to clean this up later by importing these.
|
|
22
|
+
setupNodeEvents(on, config) {
|
|
23
|
+
require('./plugins')(on, config);
|
|
24
|
+
if (isCoverage) {
|
|
25
|
+
require('@bahmutov/cypress-code-coverage/plugin')(on, config)
|
|
26
|
+
}
|
|
27
|
+
return config;
|
|
28
|
+
},
|
|
29
|
+
baseUrl: 'http://localhost:9000',
|
|
30
|
+
specPattern: 'e2e-security/**/*.{js,jsx,ts,tsx}',
|
|
31
|
+
supportFile: 'support/e2e.js',
|
|
32
|
+
reporter: "cypress-multi-reporters",
|
|
33
|
+
reporterOptions: {
|
|
34
|
+
configFile: 'cypress-reporter-config.json'
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
env: {
|
|
38
|
+
set_default_user_data: true
|
|
39
|
+
}
|
|
40
|
+
});
|
package/cypress.config.js
CHANGED
|
@@ -6,8 +6,12 @@ module.exports = defineConfig({
|
|
|
6
6
|
screenshotsFolder: 'report/screenshots',
|
|
7
7
|
videosFolder: 'report/videos',
|
|
8
8
|
video: true,
|
|
9
|
-
|
|
9
|
+
screenshotOnRunFailure: true,
|
|
10
|
+
trashAssetsBeforeRuns: true,
|
|
11
|
+
defaultCommandTimeout: 10000,
|
|
10
12
|
numTestsKeptInMemory: 10,
|
|
13
|
+
viewportWidth: 1280,
|
|
14
|
+
viewportHeight: 720,
|
|
11
15
|
e2e: {
|
|
12
16
|
retries: {
|
|
13
17
|
runMode: 2,
|
|
@@ -16,11 +20,11 @@ module.exports = defineConfig({
|
|
|
16
20
|
// We've imported your old cypress plugins here.
|
|
17
21
|
// You may want to clean this up later by importing these.
|
|
18
22
|
setupNodeEvents(on, config) {
|
|
19
|
-
return require('./plugins
|
|
23
|
+
return require('./plugins')(on, config);
|
|
20
24
|
},
|
|
21
25
|
baseUrl: 'http://localhost:9000',
|
|
22
|
-
specPattern: '
|
|
23
|
-
supportFile: 'support/
|
|
26
|
+
specPattern: './**/*.{js,jsx,ts,tsx}',
|
|
27
|
+
supportFile: 'support/e2e.js',
|
|
24
28
|
reporter: "cypress-multi-reporters",
|
|
25
29
|
reporterOptions: {
|
|
26
30
|
configFile: 'cypress-reporter-config.json'
|
|
@@ -25,7 +25,10 @@ describe('Visual graph screen validation', () => {
|
|
|
25
25
|
cy.presetRepository(repositoryId);
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* TODO: Fix me. Broken due to migration (Error: unknown)
|
|
30
|
+
*/
|
|
31
|
+
it.skip('CRUD on saved graph', () => {
|
|
29
32
|
const graphConfigName = 'MyGraphConfig_' + Date.now();
|
|
30
33
|
const namedGraph = 'myGraph_' + Date.now();
|
|
31
34
|
const renamedGraph = 'myRenamedGraph_' + Date.now();
|
|
@@ -18,7 +18,7 @@ describe('Import server files - Operations', {retries: {runMode: 2}}, () => {
|
|
|
18
18
|
repositoryId = 'server-import-' + Date.now();
|
|
19
19
|
cy.createRepository({id: repositoryId});
|
|
20
20
|
ImportServerFilesSteps.visitServerImport(repositoryId);
|
|
21
|
-
ImportServerFilesSteps.getResources().should('have.length',
|
|
21
|
+
ImportServerFilesSteps.getResources().should('have.length', 18);
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
afterEach(() => {
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
|
|
2
|
+
import {ImportSettingsDialogSteps} from "../../steps/import/import-settings-dialog-steps";
|
|
3
|
+
|
|
4
|
+
describe('Import user data: URL import', () => {
|
|
5
|
+
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
const IMPORT_URL = 'https://www.w3.org/TR/owl-guide/wine.rdf';
|
|
9
|
+
const JSONLD_FORMAT = 'JSON-LD';
|
|
10
|
+
const VALID_URL_RDF_FORMAT = 'RDF/XML';
|
|
11
|
+
const RDF_ERROR_MESSAGE = 'RDF Parse Error:';
|
|
12
|
+
const IMPORT_JSONLD_URL = 'https://example.com/0007-context.jsonld';
|
|
13
|
+
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
repositoryId = 'user-import-' + Date.now();
|
|
16
|
+
cy.createRepository({id: repositoryId});
|
|
17
|
+
ImportUserDataSteps.visitUserImport(repositoryId);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
cy.deleteRepository(repositoryId);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// Test fails because GDB waits for the import link to be resolved and since it is invalid it waits for a timeout, blocking all other requests
|
|
25
|
+
it('should import JSON-LD file via URL with correct request body', () => {
|
|
26
|
+
cy.intercept('GET', `/rest/repositories/${repositoryId}/import/upload`).as('upload');
|
|
27
|
+
|
|
28
|
+
ImportUserDataSteps.stubPostJSONLDFromURL(repositoryId);
|
|
29
|
+
ImportUserDataSteps.openImportURLDialog(IMPORT_JSONLD_URL);
|
|
30
|
+
ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
|
|
31
|
+
ImportUserDataSteps.clickImportUrlButton();
|
|
32
|
+
ImportSettingsDialogSteps.import();
|
|
33
|
+
cy.wait('@postJsonldUrl').then((xhr) => {
|
|
34
|
+
expect(xhr.request.body.name).to.eq('https://example.com/0007-context.jsonld');
|
|
35
|
+
expect(xhr.request.body.data).to.eq('https://example.com/0007-context.jsonld');
|
|
36
|
+
expect(xhr.request.body.type).to.eq('url');
|
|
37
|
+
expect(xhr.request.body.hasContextLink).to.be.true;
|
|
38
|
+
});
|
|
39
|
+
cy.waitUntil(() =>
|
|
40
|
+
cy.wait('@upload').then((xhr) => {
|
|
41
|
+
console.log(xhr.response.body)
|
|
42
|
+
return xhr.response.body[0]?.status === 'ERROR'
|
|
43
|
+
}), {timeout: 10000, interval: 1000}
|
|
44
|
+
)
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('should show error on invalid JSON-LD URL', () => {
|
|
48
|
+
cy.intercept('GET', `/rest/repositories/${repositoryId}/import/upload`).as('upload');
|
|
49
|
+
|
|
50
|
+
ImportUserDataSteps.stubPostJSONLDFromURL();
|
|
51
|
+
ImportUserDataSteps.openImportURLDialog(IMPORT_JSONLD_URL);
|
|
52
|
+
ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
|
|
53
|
+
ImportUserDataSteps.clickImportUrlButton();
|
|
54
|
+
ImportSettingsDialogSteps.import();
|
|
55
|
+
cy.waitUntil(() =>
|
|
56
|
+
cy.wait('@upload').then((xhr) => {
|
|
57
|
+
console.log(xhr.response.body)
|
|
58
|
+
return xhr.response.body[0]?.status === 'ERROR'
|
|
59
|
+
}), {timeout: 10000, interval: 1000}
|
|
60
|
+
)
|
|
61
|
+
ImportUserDataSteps.checkImportedResource(0, IMPORT_JSONLD_URL, 'https://example.com/0007-context.jsonld');
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -6,6 +6,7 @@ import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
|
6
6
|
import {RepositorySelectorSteps} from "../../steps/repository-selector-steps";
|
|
7
7
|
import {SparqlTemplatesSteps} from "../../steps/setup/sparql-templates-steps";
|
|
8
8
|
|
|
9
|
+
// TODO: Fix me. Broken due to migration (Error: beforeEach)
|
|
9
10
|
describe('SPARQL create template', () => {
|
|
10
11
|
|
|
11
12
|
let repositoryId;
|
|
@@ -44,7 +45,10 @@ describe('SPARQL create template', () => {
|
|
|
44
45
|
SparqlCreateUpdateSteps.getInvalidQueryElement().contains('Invalid query');
|
|
45
46
|
});
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
/**
|
|
49
|
+
* TODO: Fix me. Broken due to migration (Repository selector changed)
|
|
50
|
+
*/
|
|
51
|
+
it.skip('should display confirm dialog I am updating a sparql template and change the repository', {
|
|
48
52
|
retries: {
|
|
49
53
|
runMode: 1,
|
|
50
54
|
openMode: 0
|
|
@@ -112,7 +116,10 @@ describe('SPARQL create template', () => {
|
|
|
112
116
|
RepositorySelectorSteps.getSelectedRepository().contains(repositoryId);
|
|
113
117
|
});
|
|
114
118
|
|
|
115
|
-
|
|
119
|
+
/**
|
|
120
|
+
* TODO: Fix me. Broken due to migration (Changes in main menu)
|
|
121
|
+
*/
|
|
122
|
+
it.skip('should confirm me before navigate when query is changed', {
|
|
116
123
|
retries: {
|
|
117
124
|
runMode: 1,
|
|
118
125
|
openMode: 0
|
|
@@ -5,7 +5,8 @@ import {YasrSteps} from "../../../steps/yasgui/yasr-steps";
|
|
|
5
5
|
import {ApplicationSteps} from "../../../steps/application-steps";
|
|
6
6
|
import {TablePluginSteps} from "../../../steps/yasgui/table-plugin-steps";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
//TODO: Fix me. Broken due to migration (Error: beforeEach)
|
|
9
|
+
describe.skip('Yasr Table plugin', () => {
|
|
9
10
|
let repositoryId;
|
|
10
11
|
beforeEach(() => {
|
|
11
12
|
repositoryId = 'sparql-editor-' + Date.now();
|
|
@@ -358,6 +358,50 @@ describe('Cluster management', () => {
|
|
|
358
358
|
ApplicationSteps.getSuccessNotifications().contains('Cluster updated successfully');
|
|
359
359
|
});
|
|
360
360
|
|
|
361
|
+
it('should not replace node after replace action is canceled and a new node is added', () => {
|
|
362
|
+
const clusterLocations = ['http://pc-desktop:7200', 'http://pc-desktop:7201', 'http://pc-desktop:7202'];
|
|
363
|
+
ClusterStubs.stubClusterConfigByList(clusterLocations);
|
|
364
|
+
ClusterStubs.stubClusterGroupStatus();
|
|
365
|
+
ClusterStubs.stubClusterNodeStatus();
|
|
366
|
+
RemoteLocationStubs.stubGetRemoteLocations(3);
|
|
367
|
+
RemoteLocationStubs.stubRemoteLocationFilter();
|
|
368
|
+
RemoteLocationStubs.stubRemoteLocationStatusInCluster();
|
|
369
|
+
RemoteLocationStubs.stubRemoteLocationCheckByAddress([
|
|
370
|
+
{uri: 'pc-desktop:7200', rpc: 'pc-desktop:7300'},
|
|
371
|
+
{uri: 'pc-desktop:7201', rpc: 'pc-desktop:7301'},
|
|
372
|
+
{uri: 'pc-desktop:7202', rpc: 'pc-desktop:7302'}
|
|
373
|
+
]);
|
|
374
|
+
|
|
375
|
+
// Given I have opened the cluster management page
|
|
376
|
+
ClusterPageSteps.visit();
|
|
377
|
+
// When I click on update cluster
|
|
378
|
+
ClusterPageSteps.updateCluster();
|
|
379
|
+
ClusterNodesConfigurationSteps.getClusterNodesConfigurationModal().should('be.visible');
|
|
380
|
+
// When I replace a node
|
|
381
|
+
ClusterNodesConfigurationSteps.clickReplaceNodeButtonByEndpoint('http://pc-desktop:7201');
|
|
382
|
+
// I expect to see replacing confirmation dialog
|
|
383
|
+
ModalDialogSteps.getDialogBody().should('contain', 'Are you sure you want to change the location?');
|
|
384
|
+
// When I confirm
|
|
385
|
+
ModalDialogSteps.clickOnConfirmButton();
|
|
386
|
+
// Then I should see the edit node row
|
|
387
|
+
ClusterNodesConfigurationSteps.getEditNodeRow().should('be.visible');
|
|
388
|
+
// Then I cancel the action
|
|
389
|
+
ClusterNodesConfigurationSteps.clickCancelNodeButton();
|
|
390
|
+
// Then I add a new node
|
|
391
|
+
ClusterNodesConfigurationSteps.clickAddNodeButton();
|
|
392
|
+
const newNodeEndpoint = 'http://pc-desktop:7233';
|
|
393
|
+
ClusterNodesConfigurationSteps.enterNodeEndpoint(newNodeEndpoint);
|
|
394
|
+
// And I save the new node
|
|
395
|
+
RemoteLocationStubs.stubAddRemoteLocation();
|
|
396
|
+
ClusterNodesConfigurationSteps.clickSaveNodeButton();
|
|
397
|
+
// Then the originally replaced node (canceled action) should not be replaced
|
|
398
|
+
ClusterNodesConfigurationSteps.getNodeStatusByEndpoint('http://pc-desktop:7201').should('eq', '');
|
|
399
|
+
// And the new node should be added
|
|
400
|
+
ClusterNodesConfigurationSteps.getNodeStatusByEndpoint('http://pc-desktop:7233').should('eq', 'Node will be added');
|
|
401
|
+
ClusterStubs.stubClusterGroupStatusAfterAdd();
|
|
402
|
+
ClusterNodesConfigurationSteps.clickOkButton();
|
|
403
|
+
});
|
|
404
|
+
|
|
361
405
|
it('Should be able to open a create cluster dialog', () => {
|
|
362
406
|
ClusterStubs.stubNoClusterNodeStatus();
|
|
363
407
|
ClusterStubs.stubNoClusterGroupStatus();
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import ClassViewsSteps from "../../../steps/class-views-steps";
|
|
5
|
+
|
|
6
|
+
describe('Initial state of the Class hierarchy view with a selected repository and without class hierarchy', () => {
|
|
7
|
+
|
|
8
|
+
let repositoryId;
|
|
9
|
+
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
repositoryId = 'class-hierarchy-' + Date.now();
|
|
12
|
+
cy.createRepository({id: repositoryId});
|
|
13
|
+
cy.presetRepository(repositoryId);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
cy.deleteRepository(repositoryId);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
21
|
+
// When: I visit the Class hierarchy page via URL with a repository selected and without class hierarchy
|
|
22
|
+
ClassViewsSteps.visit();
|
|
23
|
+
// Then:
|
|
24
|
+
verifyInitialStateWithSelectedRepository();
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('Should display the correct initial state when navigating via the navigation bar', () => {
|
|
28
|
+
// When: I visit the Class hierarchy page via the navigation menu with a repository selected and without class hierarchy
|
|
29
|
+
HomeSteps.visit();
|
|
30
|
+
MainMenuSteps.clickOnClassHierarchy();
|
|
31
|
+
// Then:
|
|
32
|
+
verifyInitialStateWithSelectedRepository();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
36
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
|
|
37
|
+
ClassViewsSteps.getNoHierarchyErrorElement().should('be.visible');
|
|
38
|
+
ClassViewsSteps.getToolbarHolder().should('be.hidden');
|
|
39
|
+
ClassViewsSteps.getSlider().should('be.hidden');
|
|
40
|
+
ClassViewsSteps.getRDFClassHierarchy().should('be.hidden');
|
|
41
|
+
};
|
|
42
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import ClassViewsSteps from "../../../steps/class-views-steps";
|
|
5
|
+
|
|
6
|
+
describe('Initial state of the Class hierarchy view with a selected repository', () => {
|
|
7
|
+
const FILE_TO_IMPORT = 'wine.rdf';
|
|
8
|
+
let repositoryId;
|
|
9
|
+
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
repositoryId = 'class-hierarchy-' + Date.now();
|
|
12
|
+
cy.createRepository({id: repositoryId});
|
|
13
|
+
cy.presetRepository(repositoryId);
|
|
14
|
+
cy.importServerFile(repositoryId, FILE_TO_IMPORT);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
cy.deleteRepository(repositoryId);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
22
|
+
// When: I visit the Class hierarchy page via URL with a repository selected
|
|
23
|
+
ClassViewsSteps.visit();
|
|
24
|
+
// Then:
|
|
25
|
+
verifyInitialStateWithSelectedRepository();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should display the correct initial state when navigating via the navigation bar', () => {
|
|
29
|
+
// When: I visit the Class hierarchy page via the navigation menu with a repository selected
|
|
30
|
+
HomeSteps.visit();
|
|
31
|
+
MainMenuSteps.clickOnClassHierarchy();
|
|
32
|
+
// Then:
|
|
33
|
+
verifyInitialStateWithSelectedRepository();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
37
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
|
|
38
|
+
ClassViewsSteps.getNoHierarchyErrorElement().should('be.hidden');
|
|
39
|
+
ClassViewsSteps.getToolbarHolder().should('be.visible');
|
|
40
|
+
ClassViewsSteps.getSlider().should('be.visible');
|
|
41
|
+
ClassViewsSteps.getRDFClassHierarchy().should('be.visible');
|
|
42
|
+
};
|
|
43
|
+
});
|
package/e2e-legacy/explore/class-hierarchy/class-hierarchy-without-selected-repository.spec.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import ClassViewsSteps from "../../../steps/class-views-steps";
|
|
5
|
+
|
|
6
|
+
describe('Initial state of the Class hierarchy view without a selected repository', () => {
|
|
7
|
+
|
|
8
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
9
|
+
// When: I visit the Class hierarchy page via URL without a repository selected
|
|
10
|
+
ClassViewsSteps.visit();
|
|
11
|
+
// Then:
|
|
12
|
+
verifyInitialStateWithoutSelectedRepository();
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('Should display the correct initial state when navigating via the navigation bar', () => {
|
|
16
|
+
// When: I visit the Class hierarchy page via the navigation menu without a repository selected
|
|
17
|
+
HomeSteps.visit();
|
|
18
|
+
MainMenuSteps.clickOnClassHierarchy();
|
|
19
|
+
// Then:
|
|
20
|
+
verifyInitialStateWithoutSelectedRepository();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const verifyInitialStateWithoutSelectedRepository = () => {
|
|
24
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.visible');
|
|
25
|
+
ClassViewsSteps.getNoHierarchyErrorElement().should('be.hidden');
|
|
26
|
+
ClassViewsSteps.getToolbarHolder().should('be.hidden');
|
|
27
|
+
ClassViewsSteps.getSlider().should('be.hidden');
|
|
28
|
+
ClassViewsSteps.getRDFClassHierarchy().should('be.hidden');
|
|
29
|
+
};
|
|
30
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import ClassViewsSteps, {ALL_GRAPHS, GRAPH_FILE, NEWS_GRAPH} from "
|
|
1
|
+
import ClassViewsSteps, {ALL_GRAPHS, GRAPH_FILE, NEWS_GRAPH} from "../../../steps/class-views-steps";
|
|
2
2
|
|
|
3
3
|
const INITIAL_CLASS_COUNT = 50;
|
|
4
4
|
const CLASS_COUNT_OF_NEWS_GRAPH = 35;
|
package/e2e-legacy/explore/class-relationships/class-relationships-repository-with-data.spec.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {ClassRelationshipsSteps} from "../../../steps/explore/class-relationships-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
4
|
+
|
|
5
|
+
describe('Class Relationships repository with date', () => {
|
|
6
|
+
let repositoryId
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'class-relationships-date-' + Date.now()
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
cy.importServerFile(repositoryId, 'wine.rdf');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
cy.deleteRepository(repositoryId);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('Should render Class Relationships with selected repository via URL', () => {
|
|
20
|
+
// Given, I visit the Class Relationships page via URL and I have a selected repository with data
|
|
21
|
+
ClassRelationshipsSteps.visit();
|
|
22
|
+
|
|
23
|
+
// Then
|
|
24
|
+
validateInitialStateWithData();
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('Should render Class Relationships with selected repository via navigation menu', () => {
|
|
28
|
+
// Given, I visit the Class Relationships page via navigation menu and I have a selected repository with data
|
|
29
|
+
HomeSteps.visit();
|
|
30
|
+
MainMenuSteps.clickOnClassRelationships();
|
|
31
|
+
|
|
32
|
+
// Then
|
|
33
|
+
validateInitialStateWithData();
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
function validateInitialStateWithData() {
|
|
38
|
+
ClassRelationshipsSteps.verifyRelationsToolbarContent();
|
|
39
|
+
ClassRelationshipsSteps.getFilterField().should('be.visible');
|
|
40
|
+
ClassRelationshipsSteps.getDependenciesList().should('be.visible');
|
|
41
|
+
ClassRelationshipsSteps.getDependenciesDiagram().should('be.visible');
|
|
42
|
+
}
|
package/e2e-legacy/explore/class-relationships/class-relationships-with-selected-repository.spec.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {ClassRelationshipsSteps} from "../../../steps/explore/class-relationships-steps";
|
|
4
|
+
|
|
5
|
+
describe('Class Relationships with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'class-relationships-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cy.deleteRepository(repositoryId);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should render Class Relationships with selected repository via URL', () => {
|
|
19
|
+
// Given, I visit the Class Relationships page via URL and I have a selected repository
|
|
20
|
+
ClassRelationshipsSteps.visit();
|
|
21
|
+
// Then
|
|
22
|
+
validateNoRelationshipsClassRelationshipsPage();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should render Class Relationships with selected repository via navigation menu', () => {
|
|
26
|
+
// Given, I visit the Class Relationships page via navigation menu and I have a selected repository'
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnClassRelationships();
|
|
29
|
+
// Then
|
|
30
|
+
validateNoRelationshipsClassRelationshipsPage();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
function validateNoRelationshipsClassRelationshipsPage() {
|
|
35
|
+
ClassRelationshipsSteps.getReloadDiagramButton().should('be.visible');
|
|
36
|
+
ClassRelationshipsSteps.getNoDataWarning()
|
|
37
|
+
.should('be.visible')
|
|
38
|
+
.and('contain', 'The currently selected repository contains no dependencies data. Please, reload the diagram if you have imported data recently.')
|
|
39
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {ClassRelationshipsSteps} from "../../../steps/explore/class-relationships-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
4
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
5
|
+
|
|
6
|
+
describe('Class Relationships without selected repository', () => {
|
|
7
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
8
|
+
// Given, I visit the Class Relationships page via URL without a repository selected
|
|
9
|
+
ClassRelationshipsSteps.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 Class Relationships page via the navigation menu without a repository selected
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnClassRelationships();
|
|
18
|
+
// Then,
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
})
|