graphdb-workbench-tests 3.0.2 → 3.1.0-TR2
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/cypress-flaky.config.js +15 -4
- package/cypress-legacy.config.js +32 -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/{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 +3 -3
- 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 +4 -7
- 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/{integration → e2e-legacy}/home/cookie-policy.spec.js +6 -7
- package/{integration → e2e-legacy}/home/documentation-link.spec.js +27 -23
- 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 +149 -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.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 +2 -2
- 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 +50 -15
- 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 +3 -1
- package/e2e-legacy/sparql-editor/sparql-page-with-selected-repository.spec.js +33 -0
- package/e2e-legacy/sparql-editor/sparql-page-without-selected-repository.spec.js +26 -0
- package/{integration → e2e-legacy}/ttyg/agent-list.spec.js +20 -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/create-chat.spec.js +3 -1
- package/{integration → e2e-legacy}/ttyg/edit-agent.spec.js +19 -9
- 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 +43 -0
- package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +21 -0
- package/e2e-legacy/ttyg/ttyg-permission.spec.js +66 -0
- package/{integration → e2e-legacy}/ttyg/ttyg-view.spec.js +1 -0
- package/fixtures/locale-en.json +22 -4
- package/fixtures/repositories/free-access.json +13 -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 +3557 -3815
- package/package.json +42 -42
- package/plugins/index.js +2 -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 -0
- 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 +137 -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 +3 -3
- package/steps/main-menu-steps.js +198 -13
- 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 +17 -12
- package/steps/resource/resource-steps.js +4 -0
- package/steps/rest-api-documentation-steps.js +15 -0
- package/steps/setup/autocomplete-steps.js +13 -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 +82 -1
- package/steps/setup/sparql-templates-steps.js +19 -1
- package/steps/setup/user-and-access-steps.js +9 -1
- 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 +8 -12
- package/steps/ttyg/ttyg-view-steps.js +59 -8
- package/steps/visual-graph-steps.js +4 -0
- package/steps/widgets/active-repository-widget-steps.js +25 -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/stubs/autocomplete/autocomplete-stubs.js +7 -0
- package/stubs/browser-stubs.js +31 -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/ttyg/ttyg-stubs.js +4 -7
- package/support/commands.js +19 -0
- 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/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-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-flaky → e2e-flaky}/ttyg/ttyg-permission.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}/home/google-analytics.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-user-data-url.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/clone-agent.spec.js +0 -0
- /package/{integration → e2e-legacy}/ttyg/create-agent.spec.js +0 -0
- /package/{integration → e2e-legacy}/ttyg/delete-agent.spec.js +0 -0
- /package/support/{index.js → e2e.js} +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import HomeSteps from '../../steps/home-steps';
|
|
2
|
+
import {BrowserStubs} from "../../stubs/browser-stubs";
|
|
3
|
+
|
|
4
|
+
describe('View resource autocomplete', () => {
|
|
5
|
+
|
|
6
|
+
const FOAT_SNIPPET = '@base <http://example.org/> .\n' +
|
|
7
|
+
'@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
|
|
8
|
+
'<#green-goblin>\n' +
|
|
9
|
+
'a foaf:Person ; # in the context of the Marvel universe\n' +
|
|
10
|
+
'foaf:name "Green Goblin" .\n';
|
|
11
|
+
const GOBLIN_URI = 'http://example.org/#green-goblin';
|
|
12
|
+
|
|
13
|
+
let repositoryId;
|
|
14
|
+
|
|
15
|
+
beforeEach(() => {
|
|
16
|
+
cy.viewport(1280, 1000);
|
|
17
|
+
repositoryId = 'view-resource-autocomplete-' + Date.now();
|
|
18
|
+
cy.createRepository({id: repositoryId});
|
|
19
|
+
BrowserStubs.stubWindowOpen();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
afterEach(() => {
|
|
23
|
+
cy.deleteRepository(repositoryId);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('Test homepage autocomplete when it is enabled', () => {
|
|
27
|
+
HomeSteps.selectRepo(repositoryId);
|
|
28
|
+
|
|
29
|
+
// Type an invalid resource
|
|
30
|
+
HomeSteps.getAutocompleteInput().type('hfsafa');
|
|
31
|
+
HomeSteps.noAutocompleteToast();
|
|
32
|
+
|
|
33
|
+
cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
|
|
34
|
+
cy.enableAutocomplete(repositoryId);
|
|
35
|
+
|
|
36
|
+
HomeSteps.visitAndWaitLoader();
|
|
37
|
+
BrowserStubs.stubWindowOpen();
|
|
38
|
+
|
|
39
|
+
// When: The table display button is active
|
|
40
|
+
HomeSteps.getAutocompleteDisplayTypeButton('table').click();
|
|
41
|
+
// And: select an autocomplete suggestion
|
|
42
|
+
HomeSteps.autocompleteText('Green', GOBLIN_URI)
|
|
43
|
+
HomeSteps.autocompleteText('Green', GOBLIN_URI)
|
|
44
|
+
HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click()
|
|
45
|
+
// Then: The clicked suggestion should be opened in new window
|
|
46
|
+
cy.get(BrowserStubs.WINDOW_OPEN_ALIAS()).should('be.calledWith', 'resource?uri=http%3A%2F%2Fexample.org%2F%23green-goblin');
|
|
47
|
+
|
|
48
|
+
// When: The visual display button is active
|
|
49
|
+
HomeSteps.getAutocompleteDisplayTypeButton('visual').click();
|
|
50
|
+
// And: select an autocomplete suggestion
|
|
51
|
+
HomeSteps.getAutocompleteResultElement(GOBLIN_URI).click()
|
|
52
|
+
// Then: clicked suggestion should be opened in new window
|
|
53
|
+
cy.get(BrowserStubs.WINDOW_OPEN_ALIAS()).should('be.calledWith', 'graphs-visualizations?uri=http%3A%2F%2Fexample.org%2F%23green-goblin')
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('should not suggest resources in "View resources" when autocomplete is not enabled', () => {
|
|
57
|
+
cy.importRDFTextSnippet(repositoryId, FOAT_SNIPPET);
|
|
58
|
+
|
|
59
|
+
HomeSteps.visitAndWaitLoader();
|
|
60
|
+
HomeSteps.selectRepo(repositoryId);
|
|
61
|
+
|
|
62
|
+
HomeSteps.getAutocompleteInput().type('Green');
|
|
63
|
+
HomeSteps.noAutocompleteToast();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -15,7 +15,6 @@ const jsonld = JSON.stringify({
|
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
describe('Import user data: File upload', () => {
|
|
18
|
-
|
|
19
18
|
let repositoryId;
|
|
20
19
|
const testFiles = [
|
|
21
20
|
'bnodes.ttl',
|
|
@@ -39,7 +38,8 @@ describe('Import user data: File upload', () => {
|
|
|
39
38
|
// Given there are no files uploaded yet
|
|
40
39
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
41
40
|
// When I start to upload a file
|
|
42
|
-
ImportUserDataSteps.
|
|
41
|
+
const file1 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
42
|
+
ImportUserDataSteps.selectFile(file1);
|
|
43
43
|
// Then the import settings dialog should open automatically
|
|
44
44
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
45
45
|
ImportSettingsDialogSteps.import();
|
|
@@ -63,7 +63,8 @@ describe('Import user data: File upload', () => {
|
|
|
63
63
|
// Given there are no files uploaded yet
|
|
64
64
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
65
65
|
// And I have selected to upload a file
|
|
66
|
-
ImportUserDataSteps.
|
|
66
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
67
|
+
ImportUserDataSteps.selectFile(file);
|
|
67
68
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
68
69
|
// When I cancel the file upload via the cancel button
|
|
69
70
|
ImportSettingsDialogSteps.cancelUpload();
|
|
@@ -72,7 +73,7 @@ describe('Import user data: File upload', () => {
|
|
|
72
73
|
// And there should be no files uploaded
|
|
73
74
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
74
75
|
// When I select to upload a file again
|
|
75
|
-
ImportUserDataSteps.selectFile(
|
|
76
|
+
ImportUserDataSteps.selectFile(file);
|
|
76
77
|
// Then the import settings dialog should open
|
|
77
78
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
78
79
|
// And I close the file upload dialog via the close button
|
|
@@ -87,7 +88,8 @@ describe('Import user data: File upload', () => {
|
|
|
87
88
|
// Given there are no files uploaded yet
|
|
88
89
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
89
90
|
// When I start to upload a file
|
|
90
|
-
ImportUserDataSteps.
|
|
91
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
92
|
+
ImportUserDataSteps.selectFile(file);
|
|
91
93
|
// Then the import settings dialog should open automatically
|
|
92
94
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
93
95
|
// And the option for replace graph should be active
|
|
@@ -98,21 +100,24 @@ describe('Import user data: File upload', () => {
|
|
|
98
100
|
// Given there are no files uploaded yet
|
|
99
101
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
100
102
|
// When I upload a file
|
|
101
|
-
ImportUserDataSteps.
|
|
103
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
104
|
+
ImportUserDataSteps.selectFile(file);
|
|
102
105
|
// Then the import settings dialog should open automatically
|
|
103
106
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
104
107
|
ImportSettingsDialogSteps.import();
|
|
105
108
|
// Then I should see the uploaded file
|
|
106
109
|
ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
|
|
107
110
|
// When I upload another file
|
|
108
|
-
ImportUserDataSteps.
|
|
111
|
+
const file2 = ImportUserDataSteps.createFile(testFiles[1], jsonld);
|
|
112
|
+
ImportUserDataSteps.selectFile(file2);
|
|
109
113
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
110
114
|
ImportSettingsDialogSteps.import();
|
|
111
115
|
// Then I should see the uploaded file - it becomes first in the list
|
|
112
116
|
ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
|
|
113
117
|
ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
|
|
114
118
|
// When I override the first file
|
|
115
|
-
ImportUserDataSteps.
|
|
119
|
+
const file3 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
120
|
+
ImportUserDataSteps.selectFile(file3);
|
|
116
121
|
FileOverwriteDialogSteps.overwrite();
|
|
117
122
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
118
123
|
ImportSettingsDialogSteps.import();
|
|
@@ -121,7 +126,7 @@ describe('Import user data: File upload', () => {
|
|
|
121
126
|
ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
|
|
122
127
|
ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
|
|
123
128
|
// When I override the second file
|
|
124
|
-
ImportUserDataSteps.selectFile(
|
|
129
|
+
ImportUserDataSteps.selectFile(file2);
|
|
125
130
|
FileOverwriteDialogSteps.overwrite();
|
|
126
131
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
127
132
|
ImportSettingsDialogSteps.import();
|
|
@@ -134,7 +139,8 @@ describe('Import user data: File upload', () => {
|
|
|
134
139
|
// Given there are no files uploaded yet
|
|
135
140
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
136
141
|
// When I start to upload a file
|
|
137
|
-
ImportUserDataSteps.
|
|
142
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
143
|
+
ImportUserDataSteps.selectFile(file);
|
|
138
144
|
// Then the import settings dialog should open automatically
|
|
139
145
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
140
146
|
ImportSettingsDialogSteps.uploadOnly();
|
|
@@ -127,7 +127,6 @@ describe('Import user data: Text snippet', () => {
|
|
|
127
127
|
|
|
128
128
|
// Go to Graphs overview
|
|
129
129
|
cy.visit('/graphs');
|
|
130
|
-
cy.get('.ot-splash').should('not.be.visible');
|
|
131
130
|
|
|
132
131
|
const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
|
|
133
132
|
|
|
@@ -216,7 +215,6 @@ describe('Import user data: Text snippet', () => {
|
|
|
216
215
|
|
|
217
216
|
// Go to Graphs overview
|
|
218
217
|
cy.visit('/graphs');
|
|
219
|
-
cy.get('.ot-splash').should('not.be.visible');
|
|
220
218
|
|
|
221
219
|
const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
|
|
222
220
|
|
|
@@ -28,11 +28,18 @@ describe('Import user data', () => {
|
|
|
28
28
|
cy.url().should('include', '/import#user');
|
|
29
29
|
// Then I should see the user help icons
|
|
30
30
|
ImportUserDataSteps.showPageInfoPopover();
|
|
31
|
+
ImportUserDataSteps.getPageInfoPopoverTitle()
|
|
32
|
+
.should('be.visible')
|
|
33
|
+
.and('not.be.empty');
|
|
31
34
|
ImportUserDataSteps.getPageInfoPopover()
|
|
32
35
|
.should('be.visible')
|
|
33
36
|
.find('a')
|
|
34
|
-
.should('
|
|
35
|
-
.
|
|
37
|
+
.should('contain.text', 'Learn more in the GraphDB documentation')
|
|
38
|
+
.invoke('attr', 'href')
|
|
39
|
+
.then((href) => {
|
|
40
|
+
expect(href).to.match(/https:\/\/graphdb\.ontotext\.com\/documentation\/[^/]+\/loading-data-using-the-workbench\.html/);
|
|
41
|
+
});
|
|
42
|
+
|
|
36
43
|
ImportUserDataSteps.hidePageInfoPopover();
|
|
37
44
|
// And user data import tab should be selected by default
|
|
38
45
|
ImportUserDataSteps.getActiveTab().should('have.text', 'User data');
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import ImportSteps from "../../../steps/import/import-steps";
|
|
5
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
6
|
+
|
|
7
|
+
describe('Initial state of the import view with a selected repository', () => {
|
|
8
|
+
const RDF_SNIPPET = '@base <http://example.org/> .\n' +
|
|
9
|
+
'@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n' +
|
|
10
|
+
'<#green-goblin>\n' +
|
|
11
|
+
'a foaf:Person ; # in the context of the Marvel universe\n' +
|
|
12
|
+
'foaf:name "Green Goblin" .\n';
|
|
13
|
+
|
|
14
|
+
let repositoryId;
|
|
15
|
+
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
repositoryId = 'user-import-' + Date.now();
|
|
18
|
+
cy.createRepository({id: repositoryId});
|
|
19
|
+
cy.presetRepository(repositoryId);
|
|
20
|
+
cy.importRDFTextSnippet(repositoryId, RDF_SNIPPET);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
afterEach(() => {
|
|
24
|
+
cy.deleteRepository(repositoryId);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('Should have the correct initial state when navigating via URL', () => {
|
|
28
|
+
// When: I visit the import page by URL with a selected repository and at least one imported file
|
|
29
|
+
ImportSteps.visit();
|
|
30
|
+
// Then:
|
|
31
|
+
verifyInitialStateWhenFilesAreImported();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('Should have the correct initial state when navigating via the navigation bar', () => {
|
|
35
|
+
// When: I navigate to the import page using the navigation menu with a selected repository and at least one imported file
|
|
36
|
+
HomeSteps.visit();
|
|
37
|
+
MainMenuSteps.clickOnMenuImport();
|
|
38
|
+
// Then:
|
|
39
|
+
verifyInitialStateWhenFilesAreImported();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const verifyInitialStateWhenFilesAreImported = () => {
|
|
43
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
|
|
44
|
+
ImportSteps.getUploadRdfFilesButton().should('be.visible');
|
|
45
|
+
ImportSteps.getUploadFromUrlButton().should('be.visible');
|
|
46
|
+
ImportSteps.getUploadTextSnippetButton().should('be.visible');
|
|
47
|
+
ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
|
|
48
|
+
ImportUserDataSteps.getHelpMessage().should('not.exist');
|
|
49
|
+
ImportUserDataSteps.getResourcesTable().should('be.visible');
|
|
50
|
+
};
|
|
51
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import ImportSteps from "../../../steps/import/import-steps";
|
|
5
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
6
|
+
|
|
7
|
+
describe('Initial state of the import view with a selected repository and no imported files', () => {
|
|
8
|
+
|
|
9
|
+
let repositoryId;
|
|
10
|
+
|
|
11
|
+
beforeEach(() => {
|
|
12
|
+
repositoryId = 'user-import-' + Date.now();
|
|
13
|
+
cy.createRepository({id: repositoryId});
|
|
14
|
+
cy.presetRepository(repositoryId);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
cy.deleteRepository(repositoryId);
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it('Should have the correct initial state when navigating via URL', () => {
|
|
22
|
+
// When: I visit the import page via URL with a selected repository and no imported files
|
|
23
|
+
ImportSteps.visit();
|
|
24
|
+
// Then:
|
|
25
|
+
verifyInitialStateWhenNoFilesAreImported();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should have the correct initial state when navigating via the navigation bar', () => {
|
|
29
|
+
// When: I visit the import page via the navigation menu with a selected repository and no imported files
|
|
30
|
+
HomeSteps.visit();
|
|
31
|
+
MainMenuSteps.clickOnMenuImport();
|
|
32
|
+
// Then:
|
|
33
|
+
verifyInitialStateWhenNoFilesAreImported();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const verifyInitialStateWhenNoFilesAreImported = () => {
|
|
37
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.hidden');
|
|
38
|
+
ImportSteps.getUploadRdfFilesButton().should('be.visible');
|
|
39
|
+
ImportSteps.getUploadFromUrlButton().should('be.visible');
|
|
40
|
+
ImportSteps.getUploadTextSnippetButton().should('be.visible');
|
|
41
|
+
ImportUserDataSteps.getFileSizeLimitationWarningMessage().should('be.visible');
|
|
42
|
+
ImportUserDataSteps.getHelpMessage().should('be.visible');
|
|
43
|
+
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
44
|
+
};
|
|
45
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
2
|
+
import {ImportUserDataSteps} from "../../../steps/import/import-user-data-steps";
|
|
3
|
+
import {RepositoryErrorsWidgetSteps} from "../../../steps/widgets/repository-errors-widget-steps";
|
|
4
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
5
|
+
import ImportSteps from "../../../steps/import/import-steps";
|
|
6
|
+
|
|
7
|
+
describe('Initial state of the import view without a selected repository', () => {
|
|
8
|
+
|
|
9
|
+
it('Should have the correct initial state when navigating via URL', () => {
|
|
10
|
+
// When: I visit the import page via URL with no repository selected
|
|
11
|
+
ImportSteps.visit();
|
|
12
|
+
// Then:
|
|
13
|
+
verifyInitialStateWhenNoRepositoryIsSelected();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('Should have the correct initial state when navigating via the navigation bar', () => {
|
|
17
|
+
// When: I visit the import page via the navigation menu with no repository selected
|
|
18
|
+
HomeSteps.visit();
|
|
19
|
+
MainMenuSteps.clickOnMenuImport();
|
|
20
|
+
// Then:
|
|
21
|
+
verifyInitialStateWhenNoRepositoryIsSelected();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const verifyInitialStateWhenNoRepositoryIsSelected = () => {
|
|
25
|
+
RepositoryErrorsWidgetSteps.getWidget().should('be.visible');
|
|
26
|
+
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
27
|
+
};
|
|
28
|
+
});
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import HomeSteps from "../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import {LicenseSteps} from "../../steps/license-steps";
|
|
4
|
+
import {LicenseStubs} from "../../stubs/license-stubs";
|
|
5
|
+
|
|
6
|
+
describe('License with selected repository', () => {
|
|
7
|
+
let repositoryId;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
repositoryId = 'license-init-' + Date.now();
|
|
11
|
+
cy.createRepository({id: repositoryId});
|
|
12
|
+
cy.presetRepository(repositoryId);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
cy.deleteRepository(repositoryId);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('Should display the correct initial state when navigating via URL and there is no license', () => {
|
|
20
|
+
LicenseStubs.stubLicenseHardcoded(false)
|
|
21
|
+
LicenseStubs.stubLicenseNotSet();
|
|
22
|
+
// Given, I visit the License page via URL with a repository selected and there is no license
|
|
23
|
+
LicenseSteps.visit();
|
|
24
|
+
// Then,
|
|
25
|
+
LicenseSteps.verifyLicenseNotSet();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should display the correct initial state when navigating via the navigation bar and there is no license', () => {
|
|
29
|
+
LicenseStubs.stubLicenseHardcoded(false)
|
|
30
|
+
LicenseStubs.stubLicenseNotSet();
|
|
31
|
+
// Given, I visit the License page via the navigation menu with a repository selected and there is no license
|
|
32
|
+
HomeSteps.visit();
|
|
33
|
+
MainMenuSteps.clickOnLicense();
|
|
34
|
+
// Then,
|
|
35
|
+
LicenseSteps.verifyLicenseNotSet();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
|
|
39
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
40
|
+
LicenseStubs.stubNoValidLicense();
|
|
41
|
+
// Given, I visit the License page via URL with a repository selected and there is no valid license
|
|
42
|
+
LicenseSteps.visit();
|
|
43
|
+
// Then,
|
|
44
|
+
LicenseSteps.verifyNoValidLicense();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('Should display the correct initial state when navigating via the navigation bar and there is no valid license', () => {
|
|
48
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
49
|
+
LicenseStubs.stubNoValidLicense();
|
|
50
|
+
// Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
|
|
51
|
+
HomeSteps.visit();
|
|
52
|
+
MainMenuSteps.clickOnLicense();
|
|
53
|
+
// Then,
|
|
54
|
+
LicenseSteps.verifyNoValidLicense();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
|
|
58
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
59
|
+
LicenseStubs.stubNoValidLicense();
|
|
60
|
+
// Given, I visit the License page via URL with a repository selected and there is no valid hardcoded license
|
|
61
|
+
LicenseSteps.visit();
|
|
62
|
+
// Then,
|
|
63
|
+
LicenseSteps.verifyNoValidLicenseHardcoded();
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('Should display the correct initial state when navigating via the navigation bar and there is no valid hardcoded license', () => {
|
|
67
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
68
|
+
LicenseStubs.stubNoValidLicense();
|
|
69
|
+
// Given, I visit the License page via the navigation menu with a repository selected and there is no valid license
|
|
70
|
+
HomeSteps.visit();
|
|
71
|
+
MainMenuSteps.clickOnLicense();
|
|
72
|
+
// Then,
|
|
73
|
+
LicenseSteps.verifyNoValidLicenseHardcoded();
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it('Should display the correct initial state when navigating via URL and there is valid license', () => {
|
|
77
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
78
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
79
|
+
// Given, I visit the License page via URL with a repository selected and there is valid license
|
|
80
|
+
LicenseSteps.visit();
|
|
81
|
+
// Then,
|
|
82
|
+
LicenseSteps.verifyValidLicense();
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it('Should display the correct initial state when navigating via the navigation bar and there is valid license', () => {
|
|
86
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
87
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
88
|
+
// Given, I visit the License page via the navigation menu with a repository selected and there is valid license
|
|
89
|
+
HomeSteps.visit();
|
|
90
|
+
MainMenuSteps.clickOnLicense();
|
|
91
|
+
// Then,
|
|
92
|
+
LicenseSteps.verifyValidLicense();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
|
|
96
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
97
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
98
|
+
// Given, I visit the License page via URL with a repository selected and there is valid hardcoded license
|
|
99
|
+
LicenseSteps.visit();
|
|
100
|
+
// Then,
|
|
101
|
+
LicenseSteps.verifyValidLicenseHardcoded();
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('Should display the correct initial state when navigating via the navigation bar and there is valid hardcoded license', () => {
|
|
105
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
106
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
107
|
+
// Given, I visit the License page via the navigation menu with a repository selected and there is valid hardcoded license
|
|
108
|
+
HomeSteps.visit();
|
|
109
|
+
MainMenuSteps.clickOnLicense();
|
|
110
|
+
// Then,
|
|
111
|
+
LicenseSteps.verifyValidLicenseHardcoded();
|
|
112
|
+
});
|
|
113
|
+
})
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import HomeSteps from "../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
3
|
+
import {LicenseSteps} from "../../steps/license-steps";
|
|
4
|
+
import {LicenseStubs} from "../../stubs/license-stubs";
|
|
5
|
+
|
|
6
|
+
describe('License without selected repository', () => {
|
|
7
|
+
|
|
8
|
+
it('Should display the correct initial state when navigating via URL and there is no license', () => {
|
|
9
|
+
LicenseStubs.stubLicenseHardcoded(false)
|
|
10
|
+
LicenseStubs.stubLicenseNotSet();
|
|
11
|
+
// Given, I visit the License page via URL without a repository selected and there is no license
|
|
12
|
+
LicenseSteps.visit();
|
|
13
|
+
// Then,
|
|
14
|
+
LicenseSteps.verifyLicenseNotSet();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('Should display the correct initial state when navigating via the navigation menu and there is no license', () => {
|
|
18
|
+
LicenseStubs.stubLicenseHardcoded(false)
|
|
19
|
+
LicenseStubs.stubLicenseNotSet();
|
|
20
|
+
// Given, I visit the License page via the navigation menu without a repository selected and there is no license
|
|
21
|
+
HomeSteps.visit();
|
|
22
|
+
MainMenuSteps.clickOnLicense();
|
|
23
|
+
// Then,
|
|
24
|
+
LicenseSteps.verifyLicenseNotSet();
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('Should display the correct initial state when navigating via URL and there is no valid license', () => {
|
|
28
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
29
|
+
LicenseStubs.stubNoValidLicense();
|
|
30
|
+
// Given, I visit the License page via URL without a repository selected and there is no valid license
|
|
31
|
+
LicenseSteps.visit();
|
|
32
|
+
// Then,
|
|
33
|
+
LicenseSteps.verifyNoValidLicense();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('Should display the correct initial state when navigating via the navigation menu and there is no valid license', () => {
|
|
37
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
38
|
+
LicenseStubs.stubNoValidLicense();
|
|
39
|
+
// Given, I visit the License page via the navigation menu without a repository selected and there is no valid license
|
|
40
|
+
HomeSteps.visit();
|
|
41
|
+
MainMenuSteps.clickOnLicense();
|
|
42
|
+
// Then,
|
|
43
|
+
LicenseSteps.verifyNoValidLicense();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('Should display the correct initial state when navigating via URL and there is no valid hardcoded license', () => {
|
|
47
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
48
|
+
LicenseStubs.stubNoValidLicense();
|
|
49
|
+
// Given, I visit the License page via URL without a repository selected and there is no valid hardcoded license
|
|
50
|
+
LicenseSteps.visit();
|
|
51
|
+
// Then,
|
|
52
|
+
LicenseSteps.verifyNoValidLicenseHardcoded();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('Should display the correct initial state when navigating via the navigation menu and there is no valid hardcoded license', () => {
|
|
56
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
57
|
+
LicenseStubs.stubNoValidLicense();
|
|
58
|
+
// Given, I visit the License page via the navigation menu without a repository selected and there is no valid hardcoded license
|
|
59
|
+
HomeSteps.visit();
|
|
60
|
+
MainMenuSteps.clickOnLicense();
|
|
61
|
+
// Then,
|
|
62
|
+
LicenseSteps.verifyNoValidLicenseHardcoded();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('Should display the correct initial state when navigating via URL and there is valid license', () => {
|
|
66
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
67
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
68
|
+
// Given, I visit the License page via URL without a repository selected and there is valid license
|
|
69
|
+
LicenseSteps.visit();
|
|
70
|
+
// Then,
|
|
71
|
+
LicenseSteps.verifyValidLicense();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('Should display the correct initial state when navigating via the navigation menu and there is valid license', () => {
|
|
75
|
+
LicenseStubs.stubLicenseHardcoded(false);
|
|
76
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
77
|
+
// Given, I visit the License page via the navigation menu without a repository selected and there is valid license
|
|
78
|
+
HomeSteps.visit();
|
|
79
|
+
MainMenuSteps.clickOnLicense();
|
|
80
|
+
// Then,
|
|
81
|
+
LicenseSteps.verifyValidLicense();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
it('Should display the correct initial state when navigating via URL and there is valid hardcoded license', () => {
|
|
86
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
87
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
88
|
+
// Given, I visit the License page via URL without a repository selected and there is valid hardcoded license
|
|
89
|
+
LicenseSteps.visit();
|
|
90
|
+
// Then,
|
|
91
|
+
LicenseSteps.verifyValidLicenseHardcoded();
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it('Should display the correct initial state when navigating via the navigation menu and there is valid harcoded license', () => {
|
|
95
|
+
LicenseStubs.stubLicenseHardcoded(true);
|
|
96
|
+
LicenseStubs.stubEnterpriseLicense();
|
|
97
|
+
// Given, I visit the License page via the navigation menu without a repository selected and there is valid hardcoded license
|
|
98
|
+
HomeSteps.visit();
|
|
99
|
+
MainMenuSteps.clickOnLicense();
|
|
100
|
+
// Then,
|
|
101
|
+
LicenseSteps.verifyValidLicenseHardcoded();
|
|
102
|
+
});
|
|
103
|
+
})
|
|
@@ -9,8 +9,8 @@ describe('License', () => {
|
|
|
9
9
|
LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
|
|
10
10
|
|
|
11
11
|
LicenseSteps.getHardcodedAlertMessage().should('exist');
|
|
12
|
-
LicenseSteps.
|
|
13
|
-
LicenseSteps.
|
|
12
|
+
LicenseSteps.getRemoveLicenseButton().should('not.exist');
|
|
13
|
+
LicenseSteps.getSetNewLicenseButton().should('not.exist');
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
it('Should not displays an informational message if the license is not provided through a file (not hardcoded)', () => {
|
|
@@ -20,7 +20,7 @@ describe('License', () => {
|
|
|
20
20
|
LicenseSteps.getLicenseHeader().should('have.text', "GraphDB Enterprise Edition");
|
|
21
21
|
|
|
22
22
|
LicenseSteps.getHardcodedAlertMessage().should('not.exist');
|
|
23
|
-
LicenseSteps.
|
|
24
|
-
LicenseSteps.
|
|
23
|
+
LicenseSteps.getRemoveLicenseButton().should('exist');
|
|
24
|
+
LicenseSteps.getSetNewLicenseButton().should('exist');
|
|
25
25
|
});
|
|
26
26
|
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
|
|
4
|
+
|
|
5
|
+
describe('Backup And Restore with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'backup-and-restore-init-' + Date.now();
|
|
10
|
+
cy.createRepository({id: repositoryId});
|
|
11
|
+
cy.presetRepository(repositoryId);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
cy.deleteRepository(repositoryId);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
19
|
+
// Given, I visit the Backup And Restore page via URL with a repository selected
|
|
20
|
+
BackupAndRestoreSteps.visit();
|
|
21
|
+
// Then,
|
|
22
|
+
verifyInitialStateWithSelectedRepository();
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('Should display the correct initial state when navigating via the navigation bar', () => {
|
|
26
|
+
// Given, I visit the Backup And Restore page via the navigation menu with a repository selected
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnBackupAndRestore();
|
|
29
|
+
// Then,
|
|
30
|
+
verifyInitialStateWithSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
34
|
+
BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
|
|
35
|
+
};
|
|
36
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
4
|
+
import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
|
|
5
|
+
|
|
6
|
+
describe('Backup and Restore without selected repository', () => {
|
|
7
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
8
|
+
// Given, I visit the Backup and Restore page via URL without a repository selected
|
|
9
|
+
BackupAndRestoreSteps.visit();
|
|
10
|
+
// Then,
|
|
11
|
+
verifyInitialStateWithSelectedRepository();
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('Should display the correct initial state when navigating via the navigation menu', () => {
|
|
15
|
+
// Given, I visit the Backup and Restore page via the navigation menu without a repository selected
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnBackupAndRestore();
|
|
18
|
+
// Then,
|
|
19
|
+
verifyInitialStateWithSelectedRepository();
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
23
|
+
BackupAndRestoreSteps.getInfoMessageElement().contains('No running backup or restore.');
|
|
24
|
+
};
|
|
25
|
+
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {BackupAndRestoreSteps} from "
|
|
2
|
-
import {BackupAndRestoreStubs} from "
|
|
1
|
+
import {BackupAndRestoreSteps} from "../../../steps/monitoring/backup-and-restore-steps";
|
|
2
|
+
import {BackupAndRestoreStubs} from "../../../stubs/backup-and-restore-stubs";
|
|
3
3
|
|
|
4
4
|
describe("Monitoring 'Backup And Restore'", () => {
|
|
5
5
|
|