graphdb-workbench-tests 3.1.0-WBM-7 → 3.1.0-WBM-8
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/e2e-legacy/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +1 -4
- package/e2e-legacy/cluster/cluster-configuration/cluster-configuration-nodes.spec.js +1 -4
- package/e2e-legacy/cluster/cluster-configuration/cluster-configuration.spec.js +1 -4
- 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/e2e-legacy/home/language-change.spec.js +1 -4
- package/e2e-legacy/import/import-user-data-file-upload.spec.js +19 -20
- package/e2e-legacy/import/import-user-data-text-snippet.spec.js +8 -32
- package/e2e-legacy/license/license-with-repository.spec.js +113 -0
- package/e2e-legacy/license/license-without-repository.spec.js +103 -0
- package/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/e2e-legacy/monitor/{monitor.backup-and-restore.spec.js → backup-and-restore/backup-and-restore.spec.js} +2 -2
- 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/e2e-legacy/monitor/{monitor.resources.spec.js → system/monitor.resources.spec.js} +4 -4
- package/e2e-legacy/monitor/system/system-monitoring-with-repository.spec.js +32 -0
- package/e2e-legacy/monitor/system/system-monitoring-without-repository.spec.js +20 -0
- package/e2e-legacy/resource/resource.spec.js +19 -11
- 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/e2e-legacy/setup/aclmanagement/revert-rules.spec.js +1 -4
- package/e2e-legacy/setup/aclmanagement/update-rules.spec.js +4 -16
- package/e2e-legacy/setup/autocomplete.spec.js +1 -4
- 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-create.spec.js +329 -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/jdbc/jdbc.spec.js +161 -0
- package/e2e-legacy/setup/namespaces.spec.js +1 -4
- package/e2e-legacy/setup/plugins.spec.js +1 -4
- 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/e2e-legacy/setup/{rdf-rank.spec.js → rdf-rank/rdf-rank.spec.js} +2 -5
- package/e2e-legacy/setup/repositories/repositories-view-with-repositories.spec.js +40 -0
- package/e2e-legacy/setup/repositories/repositories-view-without-repositories.spec.js +28 -0
- package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +86 -0
- package/e2e-legacy/setup/{my-settings.spec.js → settings/my-settings.spec.js} +7 -79
- package/e2e-legacy/setup/{sparql-template-create.js → sparql-template/sparql-template-create.js} +11 -23
- 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/e2e-legacy/setup/{sparql-templates.spec.js → sparql-template/sparql-templates.spec.js} +5 -6
- package/e2e-legacy/setup/{user-and-access.spec.js → users-and-access/user-and-access.spec.js} +9 -8
- package/e2e-legacy/setup/users-and-access/users-and-access-initial-state.spec.js +25 -0
- package/e2e-legacy/sparql-editor/internationalization.spec.js +1 -4
- package/e2e-legacy/sparql-editor/yasgui-tabs.spec.js +1 -4
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/steps/application-steps.js +1 -1
- package/steps/base-steps.js +17 -0
- package/steps/explore/similarity-indexes-steps.js +12 -2
- package/steps/home-steps.js +0 -2
- package/steps/import/import-steps.js +3 -12
- package/steps/license-steps.js +91 -9
- package/steps/main-menu-steps.js +88 -4
- 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/repository-steps.js +1 -1
- package/steps/resource/resource-steps.js +4 -0
- package/steps/setup/autocomplete-steps.js +0 -3
- package/steps/setup/connectors-steps.js +19 -0
- package/steps/setup/jdbc-steps.js +18 -4
- package/steps/setup/namespace-steps.js +0 -3
- package/steps/setup/plugins-steps.js +0 -3
- 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/stubs/license-stubs.js +51 -0
- package/support/commands.js +1 -1
- package/e2e-legacy/home/language-selector.spec.js +0 -22
- package/e2e-legacy/monitor/monitor.queries.spec.js +0 -34
- /package/e2e-legacy/explore/class-hierarchy/{class-hierarchy-with-selected-repository-without-class-hierarchy.js → class-hierarchy-with-selected-repository-without-class-hierarchy.spec.js} +0 -0
- /package/e2e-legacy/explore/class-hierarchy/{class-hierarchy-with-selected-repository.js → class-hierarchy-with-selected-repository.spec.js} +0 -0
- /package/e2e-legacy/explore/class-hierarchy/{class-hierarchy-without-selected-repository.js → class-hierarchy-without-selected-repository.spec.js} +0 -0
|
@@ -6,10 +6,7 @@ import {ClusterConfigurationSteps} from "../../../steps/cluster/cluster-configur
|
|
|
6
6
|
import {ModalDialogSteps} from "../../../steps/modal-dialog-steps";
|
|
7
7
|
import {ApplicationSteps} from "../../../steps/application-steps";
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
* TODO: Fix me. Broken due to migration (Error: unknown)
|
|
11
|
-
*/
|
|
12
|
-
describe.skip('Cluster configuration', () => {
|
|
9
|
+
describe('Cluster configuration', () => {
|
|
13
10
|
let repositoryId;
|
|
14
11
|
|
|
15
12
|
beforeEach(() => {
|
|
@@ -18,10 +18,7 @@ describe('Cluster configuration', () => {
|
|
|
18
18
|
RemoteLocationStubs.stubRemoteLocationStatusInCluster();
|
|
19
19
|
});
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
* TODO: Fix me. Broken due to migration (Error: unknown)
|
|
23
|
-
*/
|
|
24
|
-
it.skip('should display the nodes list with correct node information in the modal', () => {
|
|
21
|
+
it('should display the nodes list with correct node information in the modal', () => {
|
|
25
22
|
// Given I have opened the cluster management page
|
|
26
23
|
ClusterPageSteps.visit();
|
|
27
24
|
// When I click on edit properties and open Nodes tab
|
|
@@ -12,10 +12,7 @@ describe('Cluster configuration', () => {
|
|
|
12
12
|
GlobalOperationsStatusesStub.stubNoOperationsResponse(repositoryId);
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
* TODO: Broken due to migration (Error: unknown)
|
|
17
|
-
*/
|
|
18
|
-
it.skip('Should display cluster configuration', () => {
|
|
15
|
+
it('Should display cluster configuration', () => {
|
|
19
16
|
// Given there is an existing cluster created
|
|
20
17
|
ClusterStubs.stubClusterConfig();
|
|
21
18
|
ClusterStubs.stubClusterGroupStatus();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
2
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
3
|
+
import {SimilarityIndexesSteps} from "../../../steps/explore/similarity-indexes-steps";
|
|
4
|
+
|
|
5
|
+
describe('Similarity indexes with selected repository', () => {
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
repositoryId = 'similarity-index-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 Similarity indexes page via URL with a repository selected
|
|
20
|
+
SimilarityIndexesSteps.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 Similarity indexes page via the navigation menu with a repository selected
|
|
27
|
+
HomeSteps.visit();
|
|
28
|
+
MainMenuSteps.clickOnSimilarity();
|
|
29
|
+
// Then,
|
|
30
|
+
verifyInitialStateWithSelectedRepository();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const verifyInitialStateWithSelectedRepository = () => {
|
|
34
|
+
|
|
35
|
+
SimilarityIndexesSteps.getExistingSimilarityIndexes().contains('Select one of your existing indexes to search in it');
|
|
36
|
+
SimilarityIndexesSteps.getCreateButton().should('be.visible');
|
|
37
|
+
};
|
|
38
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {ErrorSteps} from "../../../steps/error-steps";
|
|
2
|
+
import HomeSteps from "../../../steps/home-steps";
|
|
3
|
+
import {MainMenuSteps} from "../../../steps/main-menu-steps";
|
|
4
|
+
import {SimilarityIndexesSteps} from "../../../steps/explore/similarity-indexes-steps";
|
|
5
|
+
|
|
6
|
+
describe('Similarity indexes without selected repository', () => {
|
|
7
|
+
it('Should display the correct initial state when navigating via URL', () => {
|
|
8
|
+
// Given, I visit the Similarity indexes page via URL without a repository selected
|
|
9
|
+
SimilarityIndexesSteps.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 Similarity indexes page via the navigation menu without a repository selected
|
|
16
|
+
HomeSteps.visit();
|
|
17
|
+
MainMenuSteps.clickOnSimilarity();
|
|
18
|
+
// Then,
|
|
19
|
+
ErrorSteps.verifyNoConnectedRepoMessage();
|
|
20
|
+
});
|
|
21
|
+
})
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import HomeSteps from '../../steps/home-steps';
|
|
2
2
|
import {LanguageSelectorSteps} from "../../steps/language-selector-steps";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
* TODO: Fix me. Broken due to migration (The language selector is changed)
|
|
6
|
-
*/
|
|
7
|
-
describe.skip('Home screen language validation', () => {
|
|
4
|
+
describe('Home screen language validation', () => {
|
|
8
5
|
let repositoryId;
|
|
9
6
|
|
|
10
7
|
beforeEach(() => {
|
|
@@ -14,9 +14,7 @@ const jsonld = JSON.stringify({
|
|
|
14
14
|
"ab:email": "richard491@hotmail.com"
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
describe.skip('Import user data: File upload', () => {
|
|
19
|
-
|
|
17
|
+
describe('Import user data: File upload', () => {
|
|
20
18
|
let repositoryId;
|
|
21
19
|
const testFiles = [
|
|
22
20
|
'bnodes.ttl',
|
|
@@ -40,7 +38,8 @@ describe.skip('Import user data: File upload', () => {
|
|
|
40
38
|
// Given there are no files uploaded yet
|
|
41
39
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
42
40
|
// When I start to upload a file
|
|
43
|
-
ImportUserDataSteps.
|
|
41
|
+
const file1 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
42
|
+
ImportUserDataSteps.selectFile(file1);
|
|
44
43
|
// Then the import settings dialog should open automatically
|
|
45
44
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
46
45
|
ImportSettingsDialogSteps.import();
|
|
@@ -64,7 +63,8 @@ describe.skip('Import user data: File upload', () => {
|
|
|
64
63
|
// Given there are no files uploaded yet
|
|
65
64
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
66
65
|
// And I have selected to upload a file
|
|
67
|
-
ImportUserDataSteps.
|
|
66
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
67
|
+
ImportUserDataSteps.selectFile(file);
|
|
68
68
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
69
69
|
// When I cancel the file upload via the cancel button
|
|
70
70
|
ImportSettingsDialogSteps.cancelUpload();
|
|
@@ -73,7 +73,7 @@ describe.skip('Import user data: File upload', () => {
|
|
|
73
73
|
// And there should be no files uploaded
|
|
74
74
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
75
75
|
// When I select to upload a file again
|
|
76
|
-
ImportUserDataSteps.selectFile(
|
|
76
|
+
ImportUserDataSteps.selectFile(file);
|
|
77
77
|
// Then the import settings dialog should open
|
|
78
78
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
79
79
|
// And I close the file upload dialog via the close button
|
|
@@ -88,7 +88,8 @@ describe.skip('Import user data: File upload', () => {
|
|
|
88
88
|
// Given there are no files uploaded yet
|
|
89
89
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
90
90
|
// When I start to upload a file
|
|
91
|
-
ImportUserDataSteps.
|
|
91
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
92
|
+
ImportUserDataSteps.selectFile(file);
|
|
92
93
|
// Then the import settings dialog should open automatically
|
|
93
94
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
94
95
|
// And the option for replace graph should be active
|
|
@@ -99,21 +100,24 @@ describe.skip('Import user data: File upload', () => {
|
|
|
99
100
|
// Given there are no files uploaded yet
|
|
100
101
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
101
102
|
// When I upload a file
|
|
102
|
-
ImportUserDataSteps.
|
|
103
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
104
|
+
ImportUserDataSteps.selectFile(file);
|
|
103
105
|
// Then the import settings dialog should open automatically
|
|
104
106
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
105
107
|
ImportSettingsDialogSteps.import();
|
|
106
108
|
// Then I should see the uploaded file
|
|
107
109
|
ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
|
|
108
110
|
// When I upload another file
|
|
109
|
-
ImportUserDataSteps.
|
|
111
|
+
const file2 = ImportUserDataSteps.createFile(testFiles[1], jsonld);
|
|
112
|
+
ImportUserDataSteps.selectFile(file2);
|
|
110
113
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
111
114
|
ImportSettingsDialogSteps.import();
|
|
112
115
|
// Then I should see the uploaded file - it becomes first in the list
|
|
113
116
|
ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
|
|
114
117
|
ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
|
|
115
118
|
// When I override the first file
|
|
116
|
-
ImportUserDataSteps.
|
|
119
|
+
const file3 = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
120
|
+
ImportUserDataSteps.selectFile(file3);
|
|
117
121
|
FileOverwriteDialogSteps.overwrite();
|
|
118
122
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
119
123
|
ImportSettingsDialogSteps.import();
|
|
@@ -122,7 +126,7 @@ describe.skip('Import user data: File upload', () => {
|
|
|
122
126
|
ImportUserDataSteps.checkImportedResource(0, 'jsonld.jsonld');
|
|
123
127
|
ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
|
|
124
128
|
// When I override the second file
|
|
125
|
-
ImportUserDataSteps.selectFile(
|
|
129
|
+
ImportUserDataSteps.selectFile(file2);
|
|
126
130
|
FileOverwriteDialogSteps.overwrite();
|
|
127
131
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
128
132
|
ImportSettingsDialogSteps.import();
|
|
@@ -131,14 +135,12 @@ describe.skip('Import user data: File upload', () => {
|
|
|
131
135
|
ImportUserDataSteps.checkImportedResource(1, 'bnodes.ttl');
|
|
132
136
|
});
|
|
133
137
|
|
|
134
|
-
|
|
135
|
-
* TODO: Fix me. Broken due to migration (Changes in main menu)
|
|
136
|
-
*/
|
|
137
|
-
it.skip('should be able to only upload a single file without importing it', () => {
|
|
138
|
+
it('should be able to only upload a single file without importing it', () => {
|
|
138
139
|
// Given there are no files uploaded yet
|
|
139
140
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
140
141
|
// When I start to upload a file
|
|
141
|
-
ImportUserDataSteps.
|
|
142
|
+
const file = ImportUserDataSteps.createFile(testFiles[0], bnodes);
|
|
143
|
+
ImportUserDataSteps.selectFile(file);
|
|
142
144
|
// Then the import settings dialog should open automatically
|
|
143
145
|
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
144
146
|
ImportSettingsDialogSteps.uploadOnly();
|
|
@@ -151,10 +153,7 @@ describe.skip('Import user data: File upload', () => {
|
|
|
151
153
|
ImportUserDataSteps.getResources().should('have.length', 1);
|
|
152
154
|
});
|
|
153
155
|
|
|
154
|
-
|
|
155
|
-
* TODO: Fix me. Broken due to migration (Changes in main menu)
|
|
156
|
-
*/
|
|
157
|
-
it.skip('Should be able to upload multiple unique files', () => {
|
|
156
|
+
it('Should be able to upload multiple unique files', () => {
|
|
158
157
|
// Given there are no files uploaded yet
|
|
159
158
|
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
160
159
|
// When I upload a file
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
|
|
2
2
|
import {ImportSettingsDialogSteps} from "../../steps/import/import-settings-dialog-steps";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
describe.skip('Import user data: Text snippet', () => {
|
|
4
|
+
describe('Import user data: Text snippet', () => {
|
|
6
5
|
|
|
7
6
|
let repositoryId;
|
|
8
7
|
const INITIAL_DATA = "<urn:s1> <urn:p1> <urn:o1>.";
|
|
@@ -115,10 +114,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
115
114
|
ImportUserDataSteps.checkImportedResource(0, TEXT_SNIPPET);
|
|
116
115
|
});
|
|
117
116
|
|
|
118
|
-
|
|
119
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
120
|
-
*/
|
|
121
|
-
it.skip('Should import RDF text snippet successfully with filled base URI and context', () => {
|
|
117
|
+
it('Should import RDF text snippet successfully with filled base URI and context', () => {
|
|
122
118
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
123
119
|
ImportUserDataSteps.fillRDFTextSnippet(RDF_TEXT_SNIPPET_2);
|
|
124
120
|
ImportUserDataSteps.clickImportTextSnippetButton();
|
|
@@ -131,7 +127,6 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
131
127
|
|
|
132
128
|
// Go to Graphs overview
|
|
133
129
|
cy.visit('/graphs');
|
|
134
|
-
cy.get('.ot-splash').should('not.be.visible');
|
|
135
130
|
|
|
136
131
|
const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
|
|
137
132
|
|
|
@@ -140,10 +135,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
140
135
|
cy.get('#export-graphs').should('be.visible').should('contain', graphName);
|
|
141
136
|
});
|
|
142
137
|
|
|
143
|
-
|
|
144
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
145
|
-
*/
|
|
146
|
-
it.skip('Should import RDF snippet in the default graph (from data) and replace data in the default graph', () => {
|
|
138
|
+
it('Should import RDF snippet in the default graph (from data) and replace data in the default graph', () => {
|
|
147
139
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
148
140
|
ImportUserDataSteps.fillRDFTextSnippet(INITIAL_DATA);
|
|
149
141
|
ImportUserDataSteps.selectRDFFormat("TriG");
|
|
@@ -160,10 +152,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
160
152
|
ImportUserDataSteps.verifyGraphData("The default graph", "urn:replaced-s1", "urn:replaced-p1", "urn:replaced-o1", "http://www.ontotext.com/explicit", true, "urn:s1");
|
|
161
153
|
});
|
|
162
154
|
|
|
163
|
-
|
|
164
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
165
|
-
*/
|
|
166
|
-
it.skip('Should import RDF snippet with a custom graph (from data) and replace data in the custom graph', () => {
|
|
155
|
+
it('Should import RDF snippet with a custom graph (from data) and replace data in the custom graph', () => {
|
|
167
156
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
168
157
|
ImportUserDataSteps.fillRDFTextSnippet(PRE_DEFINED_INITIAL_GRAPH_DATA);
|
|
169
158
|
ImportUserDataSteps.selectRDFFormat("TriG");
|
|
@@ -180,10 +169,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
180
169
|
ImportUserDataSteps.verifyGraphData("urn:graph1", "urn:replaced-s1-custom", "urn:replaced-p1-custom", "urn:replaced-o1-custom", "urn:graph1", true, "urn:s1-custom");
|
|
181
170
|
});
|
|
182
171
|
|
|
183
|
-
|
|
184
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
185
|
-
*/
|
|
186
|
-
it.skip('Should import RDF snippet in the default graph (The default graph) and replace data in the default graph', () => {
|
|
172
|
+
it('Should import RDF snippet in the default graph (The default graph) and replace data in the default graph', () => {
|
|
187
173
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
188
174
|
ImportUserDataSteps.fillRDFTextSnippet(INITIAL_DATA);
|
|
189
175
|
ImportUserDataSteps.selectRDFFormat("TriG");
|
|
@@ -200,10 +186,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
200
186
|
ImportUserDataSteps.verifyGraphData("The default graph", "urn:replaced-s1", "urn:replaced-p1", "urn:replaced-o1", "http://www.ontotext.com/explicit", true, "urn:s1");
|
|
201
187
|
});
|
|
202
188
|
|
|
203
|
-
|
|
204
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
205
|
-
*/
|
|
206
|
-
it.skip('Should import RDF snippet in a named graph (Named graph) and replace data in the named graph', () => {
|
|
189
|
+
it('Should import RDF snippet in a named graph (Named graph) and replace data in the named graph', () => {
|
|
207
190
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
208
191
|
ImportUserDataSteps.fillRDFTextSnippet(INITIAL_DATA);
|
|
209
192
|
ImportUserDataSteps.selectRDFFormat("TriG");
|
|
@@ -220,10 +203,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
220
203
|
ImportUserDataSteps.verifyGraphData("http://graph1", "urn:replaced-s1", "urn:replaced-p1", "urn:replaced-o1", "http://graph1", true, "urn:s1");
|
|
221
204
|
});
|
|
222
205
|
|
|
223
|
-
|
|
224
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
225
|
-
*/
|
|
226
|
-
it.skip('Should import JSON-LD text snippet successfully without URI', () => {
|
|
206
|
+
it('Should import JSON-LD text snippet successfully without URI', () => {
|
|
227
207
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
228
208
|
ImportUserDataSteps.fillRDFTextSnippet(JSONLD_TEXT_SNIPPET);
|
|
229
209
|
ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
|
|
@@ -235,7 +215,6 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
235
215
|
|
|
236
216
|
// Go to Graphs overview
|
|
237
217
|
cy.visit('/graphs');
|
|
238
|
-
cy.get('.ot-splash').should('not.be.visible');
|
|
239
218
|
|
|
240
219
|
const graphName = CONTEXT.slice(0, CONTEXT.lastIndexOf('.'));
|
|
241
220
|
|
|
@@ -244,10 +223,7 @@ describe.skip('Import user data: Text snippet', () => {
|
|
|
244
223
|
cy.get('#export-graphs').should('be.visible').should('contain', graphName);
|
|
245
224
|
});
|
|
246
225
|
|
|
247
|
-
|
|
248
|
-
* TODO: Fix me. Broken due to migration (problem with '/graphs' view)
|
|
249
|
-
*/
|
|
250
|
-
it.skip('Should import JSON-LD text snippet successfully with URI and context', () => {
|
|
226
|
+
it('Should import JSON-LD text snippet successfully with URI and context', () => {
|
|
251
227
|
ImportUserDataSteps.openImportTextSnippetDialog();
|
|
252
228
|
ImportUserDataSteps.fillRDFTextSnippet(JSONLD_TEXT_SNIPPET);
|
|
253
229
|
ImportUserDataSteps.selectRDFFormat(JSONLD_FORMAT);
|
|
@@ -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
|
|