graphdb-workbench-tests 2.6.4 → 2.7.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/Dockerfile +3 -1
- package/fixtures/cluster/3-nodes-cluster-group-status-receiving-snapshot.json +7 -7
- package/fixtures/graphdb-import/0007-import-file.jsonld +27 -0
- package/fixtures/graphdb-import/more-files/jsonld-file.jsonld +8 -0
- package/fixtures/graphdb-import/more-files/rdfxml.rdf +15 -0
- package/fixtures/graphdb-import/more-files-with-error/import-resource-with-correct-data.jsonld +8 -0
- package/fixtures/graphdb-import/more-files-with-error/import-resource-with-incorrect-data.rdf +13 -0
- package/fixtures/graphdb-import/more-files-with-error/import-resource-with-long-error.rdf +13 -0
- package/fixtures/graphdb-import/sample-jsonld.json +8 -0
- package/fixtures/locale-en.json +251 -111
- package/fixtures/url-import-template.json +1 -0
- package/integration/cluster/cluster-legend.spec.js +36 -0
- package/integration/cluster/cluster-management.spec.js +4 -92
- package/integration/cluster/cluster-states.spec.js +117 -0
- package/integration/explore/graphs.overview.spec.js +62 -0
- package/integration/explore/similarity.spec.js +20 -2
- package/integration/guides/movies-interactive-guide.spec.js +1 -1
- package/integration/guides/star-wars-interactive-guide.js +1 -0
- package/integration/import/import-server-files-batch-operations.spec.js +121 -0
- package/integration/import/import-server-files.spec.js +145 -0
- package/integration/import/import-user-data-file-upload.spec.js +194 -0
- package/integration/import/import-user-data-settings-dialog.spec.js +70 -0
- package/integration/import/import-user-data-text-snippet.spec.js +246 -0
- package/integration/import/import-user-data-url.spec.js +70 -0
- package/integration/import/import-user-data.spec.js +119 -0
- package/integration/import/import-view.spec.js +108 -0
- package/integration/monitor/global-operation-statuses-component.spec.js +2 -2
- package/integration/repository/repositories.spec.js +20 -17
- package/integration/resource/resource.spec.js +40 -0
- package/integration/setup/aclmanagement/create-rule.spec.js +15 -0
- package/integration/setup/sparql-template-create.js +4 -4
- package/integration/setup/user-and-access.spec.js +98 -138
- package/integration/sparql-editor/internationalization.spec.js +62 -12
- package/integration/sparql-editor/yasgui-tabs.spec.js +15 -1
- package/integration/sparql-editor/yasr/download-as.spec.js +71 -0
- package/integration-flaky/import/import-server-files-operations.spec.js +142 -0
- package/integration-flaky/import/import-user-data-batch-operations.spec.js +185 -0
- package/integration-flaky/import/import.server.files.spec.js +3 -2
- package/integration-flaky/setup/sparql-template-create.js +1 -1
- package/integration-flaky/sparql-editor/actions/share-query.spec.js +1 -1
- package/npm-shrinkwrap.json +3198 -0
- package/package.json +10 -11
- package/steps/cluster/cluster-configuration-steps.js +17 -0
- package/steps/cluster/cluster-page-steps.js +20 -8
- package/steps/cluster/cluster-view-steps.js +6 -2
- package/steps/explore/graphs-overview-steps.js +32 -0
- package/steps/explore/similarity-indexes-steps.js +26 -0
- package/steps/guides/guide-steps.js +5 -19
- package/steps/home-steps.js +4 -0
- package/steps/import/file-overwrite-dialog-steps.js +16 -0
- package/steps/import/import-resource-message-dialog.js +46 -0
- package/steps/import/import-server-files-steps.js +36 -0
- package/steps/import/import-settings-dialog-steps.js +60 -0
- package/steps/import/import-steps.js +463 -0
- package/steps/import/import-user-data-steps.js +167 -0
- package/steps/json-ld-modal-steps.js +41 -0
- package/steps/language-selector-steps.js +12 -0
- package/steps/main-menu-steps.js +4 -0
- package/steps/resource/resource-steps.js +7 -2
- package/steps/setup/acl-management-steps.js +4 -0
- package/steps/setup/user-and-access-steps.js +189 -0
- package/steps/sparql-steps.js +1 -1
- package/steps/yasgui/yasgui-steps.js +6 -0
- package/steps/yasgui/yasr-steps.js +5 -0
- package/stubs/yasgui/query-stubs.js +4 -0
- package/support/commands.js +23 -0
- package/support/import-commands.js +10 -0
- package/support/sparql-commands.js +1 -1
- package/bin/graphdb-workbench-cypress +0 -29
- package/integration/help/rest-api.spec.js +0 -121
- package/integration/import/import.server.files.spec.js +0 -69
- package/integration/import/import.user.data.spec.js +0 -338
- package/steps/import-steps.js +0 -277
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import {ImportServerFilesSteps} from "../../steps/import/import-server-files-steps";
|
|
2
|
+
import {ImportSettingsDialogSteps} from "../../steps/import/import-settings-dialog-steps";
|
|
3
|
+
|
|
4
|
+
describe('Import server files - Operations', {retries: {runMode: 2}}, () => {
|
|
5
|
+
|
|
6
|
+
let repositoryId;
|
|
7
|
+
|
|
8
|
+
const BASE_URI = 'http://purl.org/dc/elements/1.1/';
|
|
9
|
+
const CONTEXT = 'http://example.org/context';
|
|
10
|
+
const FILE_FOR_IMPORT = 'italian_public_schools_links.nt.gz';
|
|
11
|
+
const FILE_FROM_DIRECTORY_FOR_IMPORT = 'rdfxml.rdf';
|
|
12
|
+
const TTLS_FOR_IMPORT = 'test_turtlestar.ttls';
|
|
13
|
+
const TRIGS_FOR_IMPORT = 'test-trigstar.trigs';
|
|
14
|
+
const JSONLD_FILE_FOR_IMPORT = '0007-import-file.jsonld';
|
|
15
|
+
const JSONLD_CONTEXT = 'https://w3c.github.io/json-ld-api/tests/compact/0007-context.jsonld';
|
|
16
|
+
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
repositoryId = 'server-import-' + Date.now();
|
|
19
|
+
cy.createRepository({id: repositoryId});
|
|
20
|
+
ImportServerFilesSteps.visitServerImport(repositoryId);
|
|
21
|
+
ImportServerFilesSteps.getResources().should('have.length', 14);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
afterEach(() => {
|
|
25
|
+
cy.deleteRepository(repositoryId);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('Should import Server files successfully without changing settings', () => {
|
|
29
|
+
// Given I have opened the server files tab
|
|
30
|
+
// When I select to import a file
|
|
31
|
+
ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
|
|
32
|
+
ImportSettingsDialogSteps.import();
|
|
33
|
+
// Then I should see the file imported successfully
|
|
34
|
+
ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
|
|
35
|
+
// TODO: this and all similar check in the tests below are a checking for the default import settings which we probably should not verify here.
|
|
36
|
+
// ImportServerFilesSteps.verifyImportStatusDetails(FILE_FOR_IMPORT, '"preserveBNodeIds": false,');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('Should import files from directory successfully without changing settings', () => {
|
|
40
|
+
// Given I have opened the server files tab
|
|
41
|
+
// When I select to import a file
|
|
42
|
+
ImportServerFilesSteps.importResourceByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
|
|
43
|
+
ImportSettingsDialogSteps.import();
|
|
44
|
+
// Then I should see the file imported successfully
|
|
45
|
+
ImportServerFilesSteps.checkImportedResource(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('Should import Server files successfully with changing settings', () => {
|
|
49
|
+
// Given I have opened the server files tab
|
|
50
|
+
// When I select to import a file
|
|
51
|
+
ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
|
|
52
|
+
// And I change the settings
|
|
53
|
+
ImportSettingsDialogSteps.expandAdvancedSettings();
|
|
54
|
+
ImportSettingsDialogSteps.fillBaseURI(BASE_URI);
|
|
55
|
+
ImportSettingsDialogSteps.selectNamedGraph();
|
|
56
|
+
ImportSettingsDialogSteps.fillNamedGraph(CONTEXT);
|
|
57
|
+
ImportSettingsDialogSteps.enablePreserveBNodes();
|
|
58
|
+
ImportSettingsDialogSteps.import();
|
|
59
|
+
// Then I should see the file imported successfully
|
|
60
|
+
ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
|
|
61
|
+
// ImportSteps.verifyImportStatusDetails(FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,']);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// for this test it is necessary to set up a whitelist to GraphDB in this way: -Dgraphdb.jsonld.whitelist=https://w3c.github.io/json-ld-api/tests/*
|
|
65
|
+
it('Should import Server files successfully with JSONLD context link settings', () => {
|
|
66
|
+
// Given I have opened the server files tab
|
|
67
|
+
// When I select to import a file
|
|
68
|
+
ImportServerFilesSteps.importResourceByName(JSONLD_FILE_FOR_IMPORT);
|
|
69
|
+
// And I change the settings
|
|
70
|
+
ImportSettingsDialogSteps.expandAdvancedSettings();
|
|
71
|
+
ImportSettingsDialogSteps.fillBaseURI(BASE_URI);
|
|
72
|
+
ImportSettingsDialogSteps.fillContextLink(JSONLD_CONTEXT);
|
|
73
|
+
ImportSettingsDialogSteps.selectNamedGraph();
|
|
74
|
+
ImportSettingsDialogSteps.fillNamedGraph(CONTEXT);
|
|
75
|
+
ImportSettingsDialogSteps.enablePreserveBNodes();
|
|
76
|
+
ImportSettingsDialogSteps.import();
|
|
77
|
+
// Then I should see the file imported successfully
|
|
78
|
+
ImportServerFilesSteps.checkImportedResource(0, JSONLD_FILE_FOR_IMPORT);
|
|
79
|
+
// ImportSteps.verifyImportStatusDetails(JSONLD_FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,', JSONLD_CONTEXT]);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it('Should import Server files successfully with JSONLD default settings', () => {
|
|
83
|
+
// Given I have opened the server files tab
|
|
84
|
+
// When I select to import a file
|
|
85
|
+
ImportServerFilesSteps.importResourceByName(JSONLD_FILE_FOR_IMPORT);
|
|
86
|
+
// And I change the settings
|
|
87
|
+
ImportSettingsDialogSteps.expandAdvancedSettings();
|
|
88
|
+
ImportSettingsDialogSteps.fillBaseURI(BASE_URI);
|
|
89
|
+
ImportSettingsDialogSteps.selectNamedGraph();
|
|
90
|
+
ImportSettingsDialogSteps.fillNamedGraph(CONTEXT);
|
|
91
|
+
ImportSettingsDialogSteps.setContextLinkToBeVisible();
|
|
92
|
+
ImportSettingsDialogSteps.enablePreserveBNodes();
|
|
93
|
+
ImportSettingsDialogSteps.import();
|
|
94
|
+
// Then I should see the file imported successfully
|
|
95
|
+
ImportServerFilesSteps.checkImportedResource(0, JSONLD_FILE_FOR_IMPORT);
|
|
96
|
+
// ImportSteps.verifyImportStatusDetails(JSONLD_FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,']);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('Should be able to reset status of imported file', () => {
|
|
100
|
+
// Given I have opened the server files tab
|
|
101
|
+
// And I have imported a file
|
|
102
|
+
ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
|
|
103
|
+
ImportSettingsDialogSteps.import();
|
|
104
|
+
ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
|
|
105
|
+
// When I reset the status of the imported file
|
|
106
|
+
ImportServerFilesSteps.resetResourceStatusByName(FILE_FOR_IMPORT);
|
|
107
|
+
// Then Import status of the file should not be visible
|
|
108
|
+
ImportServerFilesSteps.getResourceStatus(FILE_FOR_IMPORT).should('be.hidden');
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('Should be able to reset status of imported file from a directory', () => {
|
|
112
|
+
// Given I have opened the server files tab
|
|
113
|
+
// And I have imported a file
|
|
114
|
+
ImportServerFilesSteps.importResourceByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
|
|
115
|
+
ImportSettingsDialogSteps.import();
|
|
116
|
+
ImportServerFilesSteps.checkImportedResource(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
|
|
117
|
+
// When I reset the status of the imported file
|
|
118
|
+
ImportServerFilesSteps.resetResourceStatusByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
|
|
119
|
+
// Then Import status of the file should not be visible
|
|
120
|
+
ImportServerFilesSteps.getResourceStatus(FILE_FROM_DIRECTORY_FOR_IMPORT).should('be.hidden');
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('Should import turtlestar from Server files successfully without changing settings', () => {
|
|
124
|
+
// Given I have opened the server files tab
|
|
125
|
+
ImportServerFilesSteps.importResourceByName(TTLS_FOR_IMPORT);
|
|
126
|
+
// When I select to import a ttl file without changing settings
|
|
127
|
+
ImportSettingsDialogSteps.import();
|
|
128
|
+
// Then I should see the file imported successfully
|
|
129
|
+
ImportServerFilesSteps.checkImportedResource(0, TTLS_FOR_IMPORT);
|
|
130
|
+
// ImportSteps.verifyImportStatusDetails(TTLS_FOR_IMPORT, '"preserveBNodeIds": false,');
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('Should import trigstar from Server files successfully without changing settings', () => {
|
|
134
|
+
// Given I have opened the server files tab
|
|
135
|
+
ImportServerFilesSteps.importResourceByName(TRIGS_FOR_IMPORT);
|
|
136
|
+
// When I select to import a trigstar file without changing settings
|
|
137
|
+
ImportSettingsDialogSteps.import();
|
|
138
|
+
// Then I should see the file imported successfully
|
|
139
|
+
ImportServerFilesSteps.checkImportedResource(0, TRIGS_FOR_IMPORT);
|
|
140
|
+
// ImportSteps.verifyImportStatusDetails(TRIGS_FOR_IMPORT, '"preserveBNodeIds": false,');
|
|
141
|
+
});
|
|
142
|
+
});
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import {ModalDialogSteps} from "../../steps/modal-dialog-steps";
|
|
2
|
+
import {ImportSettingsDialogSteps} from "../../steps/import/import-settings-dialog-steps";
|
|
3
|
+
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
4
|
+
import {ImportUserDataSteps} from "../../steps/import/import-user-data-steps";
|
|
5
|
+
|
|
6
|
+
const bnodes = `_:node0 <http://purl.org/dc/elements/1.1/title> "A new book" ;
|
|
7
|
+
\t<http://purl.org/dc/elements/1.1/creator> "A.N.Other" .`;
|
|
8
|
+
const jsonld = JSON.stringify({
|
|
9
|
+
"@context": {
|
|
10
|
+
"ab": "http://learningsparql.com/ns/addressbook#"
|
|
11
|
+
},
|
|
12
|
+
"@id": "ab:richard",
|
|
13
|
+
"ab:homeTel": "(229)276-5135",
|
|
14
|
+
"ab:email": "richard491@hotmail.com"
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe('Import user data: Batch operations', {retries: {runMode: 2}}, () => {
|
|
18
|
+
|
|
19
|
+
let repositoryId;
|
|
20
|
+
const testFiles = [
|
|
21
|
+
'bnodes.ttl',
|
|
22
|
+
'jsonld.jsonld',
|
|
23
|
+
'invalid-format.json'
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
beforeEach(() => {
|
|
27
|
+
repositoryId = 'user-import-' + Date.now();
|
|
28
|
+
cy.createRepository({id: repositoryId});
|
|
29
|
+
cy.presetRepository(repositoryId);
|
|
30
|
+
ImportUserDataSteps.visitImport('user', repositoryId);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
cy.deleteUploadedFile(repositoryId, testFiles);
|
|
35
|
+
cy.deleteRepository(repositoryId);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('Should be able to filter files by status', () => {
|
|
39
|
+
uploadFiles([
|
|
40
|
+
{name: testFiles[0], content: bnodes},
|
|
41
|
+
{name: testFiles[1], content: jsonld}
|
|
42
|
+
]);
|
|
43
|
+
// Then I should see no files selected
|
|
44
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 0);
|
|
45
|
+
// When I select All files from the menu
|
|
46
|
+
ImportUserDataSteps.selectAllResources();
|
|
47
|
+
// Then I should see all files selected
|
|
48
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 2);
|
|
49
|
+
// When I select None from the menu
|
|
50
|
+
ImportUserDataSteps.deselectAllResources();
|
|
51
|
+
// Then I should see no files selected
|
|
52
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 0);
|
|
53
|
+
// precondition for the next step
|
|
54
|
+
const file = ImportUserDataSteps.createFile('jsonld-2.jsonld', jsonld);
|
|
55
|
+
ImportUserDataSteps.selectFile([file]);
|
|
56
|
+
ImportSettingsDialogSteps.getDialog().should('be.visible');
|
|
57
|
+
ImportSettingsDialogSteps.import();
|
|
58
|
+
ImportUserDataSteps.getResources().should('have.length', 3);
|
|
59
|
+
ImportUserDataSteps.checkImportedResource(0, 'jsonld-2.jsonld');
|
|
60
|
+
// When I select Imported from the menu
|
|
61
|
+
ImportUserDataSteps.selectImportedResources();
|
|
62
|
+
// Then I should see only imported files selected
|
|
63
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 1);
|
|
64
|
+
ImportUserDataSteps.getSelectedResourceName(0).should('contain', 'jsonld-2.jsonld');
|
|
65
|
+
// When I select Not Imported from the menu
|
|
66
|
+
ImportUserDataSteps.selectNotImportedResources();
|
|
67
|
+
// Then I should see only not imported files selected
|
|
68
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 2);
|
|
69
|
+
ImportUserDataSteps.getResourceByName('jsonld.jsonld').should('be.visible');
|
|
70
|
+
ImportUserDataSteps.getResourceByName('bnodes.ttl').should('be.visible');
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('Should be able to batch import files', () => {
|
|
74
|
+
uploadFiles([
|
|
75
|
+
{name: testFiles[0], content: bnodes},
|
|
76
|
+
{name: testFiles[1], content: jsonld},
|
|
77
|
+
{name: 'jsonld-2.jsonld', content: jsonld}
|
|
78
|
+
]);
|
|
79
|
+
ImportUserDataSteps.getResources().should('have.length', 3);
|
|
80
|
+
// When I select one file for import
|
|
81
|
+
ImportUserDataSteps.selectFileByName('jsonld-2.jsonld');
|
|
82
|
+
// And I click on the import button
|
|
83
|
+
ImportUserDataSteps.batchImport();
|
|
84
|
+
ImportSettingsDialogSteps.import();
|
|
85
|
+
// Then the file should be imported
|
|
86
|
+
ImportUserDataSteps.checkImportedResource(0, 'jsonld-2.jsonld');
|
|
87
|
+
ImportUserDataSteps.selectImportedResources();
|
|
88
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 1);
|
|
89
|
+
ImportUserDataSteps.deselectAllResources();
|
|
90
|
+
// When I select the rest of the uploaded files
|
|
91
|
+
ImportUserDataSteps.selectFileByName('jsonld.jsonld');
|
|
92
|
+
ImportUserDataSteps.selectFileByName('bnodes.ttl');
|
|
93
|
+
// And I import them
|
|
94
|
+
ImportUserDataSteps.batchImport();
|
|
95
|
+
ImportSettingsDialogSteps.import();
|
|
96
|
+
// Then the files should be imported
|
|
97
|
+
ImportUserDataSteps.checkImportedResource(1, 'jsonld.jsonld');
|
|
98
|
+
ImportUserDataSteps.checkImportedResource(2, 'bnodes.ttl');
|
|
99
|
+
ImportUserDataSteps.selectImportedResources();
|
|
100
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 3);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it('Should be able to reset the imported status of the files', () => {
|
|
104
|
+
uploadWithImportFiles(testFiles);
|
|
105
|
+
// When I select one of the imported files
|
|
106
|
+
ImportUserDataSteps.selectFileByIndex(0);
|
|
107
|
+
// And I click on the batch reset button
|
|
108
|
+
ImportUserDataSteps.batchReset();
|
|
109
|
+
// Then the import status of the file should be reset
|
|
110
|
+
ImportUserDataSteps.selectNotImportedResources();
|
|
111
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 1);
|
|
112
|
+
// And the batch reset button should not be visible
|
|
113
|
+
ImportUserDataSteps.getBatchResetButton().should('not.exist');
|
|
114
|
+
// When I select the rest of the imported files
|
|
115
|
+
ImportUserDataSteps.selectImportedResources();
|
|
116
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 2);
|
|
117
|
+
// And I click on the batch reset button
|
|
118
|
+
ImportUserDataSteps.batchReset();
|
|
119
|
+
// Then the import status of the files should be reset
|
|
120
|
+
ImportUserDataSteps.selectNotImportedResources();
|
|
121
|
+
ImportUserDataSteps.getSelectedResources().should('have.length', 3);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('Should ba able to delete multiple files at once', () => {
|
|
125
|
+
uploadWithImportFiles(testFiles);
|
|
126
|
+
// When I select one file for removal
|
|
127
|
+
ImportUserDataSteps.selectFileByIndex(0);
|
|
128
|
+
// And I delete the file
|
|
129
|
+
ImportUserDataSteps.removeSelectedResources();
|
|
130
|
+
// Then I force click the confirmation dialog, to hide the button popover, which covers it
|
|
131
|
+
ModalDialogSteps.getDialog().click({force: true});
|
|
132
|
+
// The dialog should be visible
|
|
133
|
+
ModalDialogSteps.getDialog().should('be.visible');
|
|
134
|
+
// When I confirm the deletion
|
|
135
|
+
ModalDialogSteps.clickOnConfirmButton();
|
|
136
|
+
// Then the file should be deleted
|
|
137
|
+
ImportUserDataSteps.getResources().should('have.length', 2);
|
|
138
|
+
|
|
139
|
+
// When I select all other files
|
|
140
|
+
ImportUserDataSteps.selectAllResources();
|
|
141
|
+
// And I click on the delete button
|
|
142
|
+
ImportUserDataSteps.removeSelectedResources();
|
|
143
|
+
// Then I should see a confirmation dialog
|
|
144
|
+
ModalDialogSteps.getDialog().should('be.visible');
|
|
145
|
+
// When I confirm the deletion
|
|
146
|
+
ModalDialogSteps.clickOnConfirmButton();
|
|
147
|
+
// Then the files should be deleted
|
|
148
|
+
ImportUserDataSteps.getResources().should('have.length', 0);
|
|
149
|
+
MainMenuSteps.openHomePage();
|
|
150
|
+
ImportUserDataSteps.visit();
|
|
151
|
+
ImportUserDataSteps.getResources().should('have.length', 0);
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
function uploadWithImportFiles(files) {
|
|
156
|
+
// Given there are no files uploaded yet
|
|
157
|
+
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
158
|
+
// When I upload multiple files
|
|
159
|
+
const file1 = ImportUserDataSteps.createFile(files[0], bnodes);
|
|
160
|
+
const file2 = ImportUserDataSteps.createFile(files[1], jsonld);
|
|
161
|
+
const file3 = ImportUserDataSteps.createFile('jsonld-2.jsonld', jsonld);
|
|
162
|
+
ImportUserDataSteps.selectFile([file1, file2, file3]);
|
|
163
|
+
ImportSettingsDialogSteps.import();
|
|
164
|
+
ImportUserDataSteps.getResources().should('have.length', 3);
|
|
165
|
+
ImportUserDataSteps.checkImportedResource(0, 'jsonld-2.jsonld');
|
|
166
|
+
ImportUserDataSteps.checkImportedResource(1, 'jsonld.jsonld');
|
|
167
|
+
ImportUserDataSteps.checkImportedResource(2, 'bnodes.ttl');
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function uploadFiles(data) {
|
|
171
|
+
// Given there are no files uploaded yet
|
|
172
|
+
ImportUserDataSteps.getResourcesTable().should('be.hidden');
|
|
173
|
+
// When I upload multiple files
|
|
174
|
+
const createdFiles = data.map((fileData) => {
|
|
175
|
+
return ImportUserDataSteps.createFile(fileData.name, fileData.content);
|
|
176
|
+
});
|
|
177
|
+
ImportUserDataSteps.selectFile(createdFiles);
|
|
178
|
+
ImportSettingsDialogSteps.cancelImport();
|
|
179
|
+
ImportSettingsDialogSteps.getDialog().should('not.exist');
|
|
180
|
+
ImportUserDataSteps.getResources().should('have.length', data.length);
|
|
181
|
+
// check them backwards because latest uploaded/imported files are at the top
|
|
182
|
+
data.forEach((file, index) => {
|
|
183
|
+
ImportUserDataSteps.checkUserDataUploadedResource(index, file.name);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import ImportSteps from
|
|
1
|
+
import ImportSteps from "../../steps/import/import-steps";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// TODO: these needs to be refactored or removed
|
|
4
|
+
describe.skip('Import screen validation - server files', () => {
|
|
4
5
|
|
|
5
6
|
let repositoryId;
|
|
6
7
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {SparqlCreateUpdateSteps} from "../../steps/setup/sparql-create-update-steps";
|
|
2
2
|
import {YasqeSteps} from "../../steps/yasgui/yasqe-steps";
|
|
3
|
-
import ImportSteps from "../../steps/import-steps";
|
|
3
|
+
import ImportSteps from "../../steps/import/import-steps";
|
|
4
4
|
import {ModalDialogSteps} from "../../steps/modal-dialog-steps";
|
|
5
5
|
import {MainMenuSteps} from "../../steps/main-menu-steps";
|
|
6
6
|
import {RepositorySelectorSteps} from "../../steps/repository-selector-steps";
|
|
@@ -32,7 +32,7 @@ describe('Share query', () => {
|
|
|
32
32
|
ShareSavedQueryDialog.getDialog().should('be.visible');
|
|
33
33
|
ShareSavedQueryDialog.getDialogTitle().should('contain', 'Copy URL to clipboard');
|
|
34
34
|
ShareSavedQueryDialog.getShareLink().then((shareLink) => {
|
|
35
|
-
expect(shareLink).to.have.string(`/sparql?name=Unnamed&query=select%20*%20where%20%7B%20%20%
|
|
35
|
+
expect(shareLink).to.have.string(`/sparql?name=Unnamed&query=select%20*%20where%20%7B%0A%20%20%20%20%3Fs%20%3Fp%20%3Fo%20.%0A%7D%20limit%20100&infer=true&sameAs=true`);
|
|
36
36
|
});
|
|
37
37
|
// When I cancel operation
|
|
38
38
|
ShareSavedQueryDialog.closeDialog();
|