graphdb-workbench-tests 2.7.2 → 2.7.3-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.
@@ -1522,6 +1522,7 @@
1522
1522
  "password.required": "Password*",
1523
1523
  "my.password.placeholder": "my-password",
1524
1524
  "signature.auth.info": "Signature authentication uses the token secret, which must be the same on all GraphDB instances. For more information on configuring the token secret, please refer to ",
1525
+ "signature.cluster.auth.info": "The token secret must be the same on all GraphDB instances. For more information on configuring the token secret, please refer to ",
1525
1526
  "signature.auth.info.last": " in the documentation.",
1526
1527
  "update.file.content.header": "Update file contents",
1527
1528
  "update.file.edit.content.header": "Edit \"{{fileName}}\" contents",
@@ -187,6 +187,28 @@ describe('Cluster management', () => {
187
187
  ReplaceNodesDialogSteps.getDialog().should('not.exist');
188
188
  ApplicationSteps.getSuccessNotifications().should('be.visible');
189
189
  });
190
+
191
+ it('Should not see "Authentication type" while attaching remote GDB node in cluster view', () => {
192
+ // Given I have opened the cluster management page
193
+ ClusterPageSteps.visit();
194
+
195
+ // When there is no cluster configured yet
196
+ ClusterStubs.stubNoClusterGroupStatus();
197
+ ClusterStubs.stubNoClusterNodeStatus();
198
+ ClusterStubs.stubNoClusterConfig();
199
+ RemoteLocationStubs.stubAddRemoteLocation();
200
+ RemoteLocationStubs.stubGetRemoteLocations(0);
201
+
202
+ // When I open the create cluster dialog
203
+ ClusterPageSteps.getClusterPage().should('be.visible');
204
+ ClusterPageSteps.createCluster();
205
+ CreateClusterDialogSteps.getDialog().should('be.visible');
206
+ // And I add a remote location
207
+ RemoteLocationStubs.stubRemoteLocationCheck();
208
+ CreateClusterDialogSteps.openAddRemoteLocationDialog();
209
+ AddRemoteLocationDialogSteps.getDialog().should('be.visible');
210
+ AddRemoteLocationDialogSteps.verifyDialogBody("The token secret must be the same on all GraphDB instances. For more information on configuring the token secret, please refer to ");
211
+ });
190
212
  });
191
213
 
192
214
  function addRemoteLocation(location, locationsCount) {
@@ -124,13 +124,13 @@ describe('Import server files', () => {
124
124
  ImportServerFilesSteps.openErrorDialog(importResourceName);
125
125
 
126
126
  // Then I expect to see dialog,
127
- ImportSettingsDialogSteps.getDialog().should('be.visible');
127
+ ImportResourceMessageDialog.getDialog().should('be.visible');
128
128
 
129
129
  // with full error message
130
130
  ImportResourceMessageDialog.getMessage().should('have.value', 'RDF Parse Error: The element type "ex:looooooooooooooooooooooooooooooooongTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame" must be terminated by the matching end-tag "</ex:looooooooooooooooooooooooooooooooongTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame>". [line 9, column 6]');
131
131
 
132
132
  // When I click on corner close button.
133
- ImportResourceMessageDialog.clickOnCornerCloseButton();
133
+ ImportResourceMessageDialog.close();
134
134
 
135
135
  // // Then I expect the dialog closed
136
136
  ImportResourceMessageDialog.getDialog().should('not.exist');
@@ -47,6 +47,40 @@ describe('Import user data: File upload', () => {
47
47
  // Then I should see the uploaded file
48
48
  ImportUserDataSteps.getResources().should('have.length', 1);
49
49
  ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
50
+ // When I try to import the same file again
51
+ ImportUserDataSteps.importFile(0);
52
+ // Then I should not see the upload only option
53
+ ImportSettingsDialogSteps.getDialog().should('be.visible');
54
+ ImportSettingsDialogSteps.getUploadOnlyButton().should('not.exist');
55
+ ImportSettingsDialogSteps.getCancelUploadButton().should('be.visible');
56
+ ImportSettingsDialogSteps.import();
57
+ ImportSettingsDialogSteps.getDialog().should('not.exist');
58
+ ImportUserDataSteps.getResources().should('have.length', 1);
59
+ ImportUserDataSteps.checkImportedResource(0, 'bnodes.ttl');
60
+ });
61
+
62
+ it('Should be able to cancel the file upload', () => {
63
+ // Given there are no files uploaded yet
64
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
65
+ // And I have selected to upload a file
66
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
67
+ ImportSettingsDialogSteps.getDialog().should('be.visible');
68
+ // When I cancel the file upload via the cancel button
69
+ ImportSettingsDialogSteps.cancelUpload();
70
+ // Then the file upload dialog should close
71
+ ImportSettingsDialogSteps.getDialog().should('not.exist');
72
+ // And there should be no files uploaded
73
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
74
+ // When I select to upload a file again
75
+ ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
76
+ // Then the import settings dialog should open
77
+ ImportSettingsDialogSteps.getDialog().should('be.visible');
78
+ // And I close the file upload dialog via the close button
79
+ ImportSettingsDialogSteps.close();
80
+ // Then the file upload dialog should close
81
+ ImportSettingsDialogSteps.getDialog().should('not.exist');
82
+ // And there should be no files uploaded
83
+ ImportUserDataSteps.getResourcesTable().should('be.hidden');
50
84
  });
51
85
 
52
86
  it('Should allow replacing graph when uploading and importing single file', () => {
@@ -97,7 +131,7 @@ describe('Import user data: File upload', () => {
97
131
  // When I start to upload a file
98
132
  ImportUserDataSteps.selectFile(ImportUserDataSteps.createFile(testFiles[0], bnodes));
99
133
  // Then the import settings dialog should open automatically
100
- ImportSettingsDialogSteps.cancelImport();
134
+ ImportSettingsDialogSteps.uploadOnly();
101
135
  // Then I should see the uploaded file
102
136
  ImportUserDataSteps.getResources().should('have.length', 1);
103
137
  ImportUserDataSteps.checkUserDataUploadedResource(0, 'bnodes.ttl');
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "graphdb-workbench-tests",
3
- "version": "2.7.2",
3
+ "version": "2.7.3-RC1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "graphdb-workbench-tests",
9
- "version": "2.7.2",
9
+ "version": "2.7.3-RC1",
10
10
  "license": "Apache-2.0",
11
11
  "devDependencies": {
12
12
  "cypress": "^13.3.1",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "graphdb-workbench-tests",
3
- "version": "2.7.2",
3
+ "version": "2.7.3-RC1",
4
4
  "description": "Cypress tests for GraphDB workbench",
5
5
  "scripts": {
6
6
  "prepack": "npm shrinkwrap",
@@ -1,27 +1,8 @@
1
- export class ImportResourceMessageDialog {
1
+ import {ModalDialogSteps} from "../modal-dialog-steps";
2
2
 
3
+ export class ImportResourceMessageDialog extends ModalDialogSteps {
3
4
  static getDialog() {
4
- return cy.get('.import-resource-message-dialog');
5
- }
6
-
7
- static getDialogHeader() {
8
- return ImportResourceMessageDialog.getDialog().find('.modal-header');
9
- }
10
-
11
- static getCornerCloseButton() {
12
- return ImportResourceMessageDialog.getDialogHeader().find('.close');
13
- }
14
-
15
- static clickOnCornerCloseButton() {
16
- ImportResourceMessageDialog.getCornerCloseButton().click();
17
- }
18
-
19
- static getDialogBody() {
20
- return ImportResourceMessageDialog.getDialog().find('.modal-body');
21
- }
22
-
23
- static getDialogFooter() {
24
- return ImportResourceMessageDialog.getDialog().find('.modal-footer');
5
+ return super.getDialog('.import-resource-message-dialog');
25
6
  }
26
7
 
27
8
  static getCloseButton() {
@@ -37,7 +18,7 @@ export class ImportResourceMessageDialog {
37
18
  }
38
19
 
39
20
  static getCopyToClipboard() {
40
- return ImportResourceMessageDialog.getDialogFooter().find('.copy-to-clipboard-btn')
21
+ return ImportResourceMessageDialog.getDialogFooter().find('.copy-to-clipboard-btn');
41
22
  }
42
23
 
43
24
  static copyToClipboard() {
@@ -1,6 +1,10 @@
1
1
  import {ModalDialogSteps} from "../modal-dialog-steps";
2
2
 
3
3
  export class ImportSettingsDialogSteps extends ModalDialogSteps {
4
+ static getDialog() {
5
+ return super.getDialog('.import-settings-modal');
6
+ }
7
+
4
8
  static getImportButton() {
5
9
  return this.getDialog().find('.import-settings-import-button');
6
10
  }
@@ -17,6 +21,22 @@ export class ImportSettingsDialogSteps extends ModalDialogSteps {
17
21
  this.getCancelImportButton().click();
18
22
  }
19
23
 
24
+ static getUploadOnlyButton() {
25
+ return this.getDialog().find('.upload-only-button');
26
+ }
27
+
28
+ static uploadOnly() {
29
+ this.getUploadOnlyButton().click();
30
+ }
31
+
32
+ static getCancelUploadButton() {
33
+ return this.getDialog().find('.cancel-btn');
34
+ }
35
+
36
+ static cancelUpload() {
37
+ this.getCancelUploadButton().click();
38
+ }
39
+
20
40
  static getSettingsForm() {
21
41
  return this.getDialog().find('.settings-form');
22
42
  }
@@ -1,6 +1,6 @@
1
1
  export class ModalDialogSteps {
2
- static getDialog() {
3
- return cy.get('.modal-dialog');
2
+ static getDialog(cssClass = '.modal-dialog') {
3
+ return cy.get(cssClass);
4
4
  }
5
5
 
6
6
  static getDialogHeader() {
@@ -15,6 +15,10 @@ export class ModalDialogSteps {
15
15
  ModalDialogSteps.getCloseButton().click();
16
16
  }
17
17
 
18
+ static close() {
19
+ this.clickOnCloseButton();
20
+ }
21
+
18
22
  static getDialogBody() {
19
23
  return ModalDialogSteps.getDialog().find('.modal-body');
20
24
  }