graphdb-workbench-tests 4.0.0-TR2 → 4.0.0-TR4

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.
Files changed (33) hide show
  1. package/e2e-flaky/import/import-server-files-operations.spec.js +9 -9
  2. package/e2e-flaky/import/import-user-data-batch-operations.spec.js +7 -7
  3. package/e2e-flaky/import/import-user-data-url.spec.js +1 -1
  4. package/e2e-legacy/cluster/cluster-configuration/cluster-configuration-multi-region.spec.js +20 -0
  5. package/e2e-legacy/guides/import-rdf-file/confirm-duplicate-rdf-file.spec.js +1 -1
  6. package/e2e-legacy/guides/main-menu/main-menu-guide.spec.js +6 -14
  7. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +26 -30
  8. package/e2e-legacy/guides/ttyg/edit-agent/edit-ttyg-agent-guide.spec.js +12 -20
  9. package/e2e-legacy/import/import-server-files-batch-operations.spec.js +5 -5
  10. package/e2e-legacy/import/import-server-files.spec.js +23 -23
  11. package/e2e-legacy/import/import-user-data-file-upload.spec.js +21 -21
  12. package/e2e-legacy/import/import-user-data-text-snippet.spec.js +8 -8
  13. package/e2e-legacy/import/import-user-data-url.spec.js +3 -3
  14. package/e2e-legacy/import/import-view.spec.js +2 -2
  15. package/e2e-legacy/repository/repositories.spec.js +3 -3
  16. package/e2e-legacy/setup/users-and-access/user-and-access.spec.js +18 -19
  17. package/e2e-legacy/sparql-editor/actions/explain-query-plan.spec.js +174 -0
  18. package/e2e-legacy/ttyg/create-agent.spec.js +6 -4
  19. package/e2e-legacy/ttyg/edit-agent.spec.js +57 -0
  20. package/e2e-legacy/ttyg/ttyg-initial-state-with-configured-api-key.spec.js +1 -1
  21. package/e2e-legacy/ttyg/ttyg-initial-state-with-selected-repository.spec.js +1 -1
  22. package/e2e-legacy/ttyg/ttyg-initial-state-without-repositories.spec.js +1 -1
  23. package/fixtures/cluster/3-nodes-cluster-group-status-no-leader.json +41 -0
  24. package/npm-shrinkwrap.json +2 -2
  25. package/package.json +1 -1
  26. package/steps/cluster/cluster-configuration-steps.js +4 -0
  27. package/steps/import/import-steps.js +26 -6
  28. package/steps/main-menu-steps.js +5 -14
  29. package/steps/setup/user-and-access-steps.js +18 -14
  30. package/steps/yasgui/yasqe-steps.js +60 -0
  31. package/steps/yasgui/yasr-steps.js +15 -0
  32. package/stubs/cluster/cluster-stubs.js +8 -1
  33. package/stubs/yasgui/query-stubs.js +19 -0
@@ -31,7 +31,7 @@ describe('Import server files - Operations', () => {
31
31
  ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
32
32
  ImportSettingsDialogSteps.import();
33
33
  // Then I should see the file imported successfully
34
- ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
34
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, FILE_FOR_IMPORT);
35
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
36
  // ImportServerFilesSteps.verifyImportStatusDetails(FILE_FOR_IMPORT, '"preserveBNodeIds": false,');
37
37
  });
@@ -42,7 +42,7 @@ describe('Import server files - Operations', () => {
42
42
  ImportServerFilesSteps.importResourceByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
43
43
  ImportSettingsDialogSteps.import();
44
44
  // Then I should see the file imported successfully
45
- ImportServerFilesSteps.checkImportedResource(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
45
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
46
46
  });
47
47
 
48
48
  it('Should import Server files successfully with changing settings', () => {
@@ -57,7 +57,7 @@ describe('Import server files - Operations', () => {
57
57
  ImportSettingsDialogSteps.enablePreserveBNodes();
58
58
  ImportSettingsDialogSteps.import();
59
59
  // Then I should see the file imported successfully
60
- ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
60
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, FILE_FOR_IMPORT);
61
61
  // ImportSteps.verifyImportStatusDetails(FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,']);
62
62
  });
63
63
 
@@ -75,7 +75,7 @@ describe('Import server files - Operations', () => {
75
75
  ImportSettingsDialogSteps.enablePreserveBNodes();
76
76
  ImportSettingsDialogSteps.import();
77
77
  // Then I should see the file imported successfully
78
- ImportServerFilesSteps.checkImportedResource(0, JSONLD_FILE_FOR_IMPORT);
78
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, JSONLD_FILE_FOR_IMPORT);
79
79
  // ImportSteps.verifyImportStatusDetails(JSONLD_FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,', JSONLD_CONTEXT]);
80
80
  });
81
81
 
@@ -92,7 +92,7 @@ describe('Import server files - Operations', () => {
92
92
  ImportSettingsDialogSteps.enablePreserveBNodes();
93
93
  ImportSettingsDialogSteps.import();
94
94
  // Then I should see the file imported successfully
95
- ImportServerFilesSteps.checkImportedResource(0, JSONLD_FILE_FOR_IMPORT);
95
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, JSONLD_FILE_FOR_IMPORT);
96
96
  // ImportSteps.verifyImportStatusDetails(JSONLD_FILE_FOR_IMPORT, [CONTEXT, BASE_URI, '"preserveBNodeIds": true,']);
97
97
  });
98
98
 
@@ -101,7 +101,7 @@ describe('Import server files - Operations', () => {
101
101
  // And I have imported a file
102
102
  ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
103
103
  ImportSettingsDialogSteps.import();
104
- ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
104
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, FILE_FOR_IMPORT);
105
105
  // When I reset the status of the imported file
106
106
  ImportServerFilesSteps.resetResourceStatusByName(FILE_FOR_IMPORT);
107
107
  // Then Import status of the file should not be visible
@@ -113,7 +113,7 @@ describe('Import server files - Operations', () => {
113
113
  // And I have imported a file
114
114
  ImportServerFilesSteps.importResourceByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
115
115
  ImportSettingsDialogSteps.import();
116
- ImportServerFilesSteps.checkImportedResource(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
116
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, FILE_FROM_DIRECTORY_FOR_IMPORT);
117
117
  // When I reset the status of the imported file
118
118
  ImportServerFilesSteps.resetResourceStatusByName(FILE_FROM_DIRECTORY_FOR_IMPORT);
119
119
  // Then Import status of the file should not be visible
@@ -126,7 +126,7 @@ describe('Import server files - Operations', () => {
126
126
  // When I select to import a ttl file without changing settings
127
127
  ImportSettingsDialogSteps.import();
128
128
  // Then I should see the file imported successfully
129
- ImportServerFilesSteps.checkImportedResource(0, TTLS_FOR_IMPORT);
129
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, TTLS_FOR_IMPORT);
130
130
  // ImportSteps.verifyImportStatusDetails(TTLS_FOR_IMPORT, '"preserveBNodeIds": false,');
131
131
  });
132
132
 
@@ -136,7 +136,7 @@ describe('Import server files - Operations', () => {
136
136
  // When I select to import a trigstar file without changing settings
137
137
  ImportSettingsDialogSteps.import();
138
138
  // Then I should see the file imported successfully
139
- ImportServerFilesSteps.checkImportedResource(0, TRIGS_FOR_IMPORT);
139
+ ImportServerFilesSteps.checkImportedResourceByIndex(0, TRIGS_FOR_IMPORT);
140
140
  // ImportSteps.verifyImportStatusDetails(TRIGS_FOR_IMPORT, '"preserveBNodeIds": false,');
141
141
  });
142
142
  });
@@ -56,7 +56,7 @@ describe('Import user data: Batch operations', () => {
56
56
  ImportSettingsDialogSteps.getDialog().should('be.visible');
57
57
  ImportSettingsDialogSteps.import();
58
58
  ImportUserDataSteps.getResources().should('have.length', 3);
59
- ImportUserDataSteps.checkImportedResource(0, 'jsonld-2.jsonld');
59
+ ImportUserDataSteps.checkImportedResourceByIndex(0, 'jsonld-2.jsonld');
60
60
  // When I select Imported from the menu
61
61
  ImportUserDataSteps.selectImportedResources();
62
62
  // Then I should see only imported files selected
@@ -83,7 +83,7 @@ describe('Import user data: Batch operations', () => {
83
83
  ImportUserDataSteps.batchImport();
84
84
  ImportSettingsDialogSteps.import();
85
85
  // Then the file should be imported
86
- ImportUserDataSteps.checkImportedResource(0, 'jsonld-2.jsonld');
86
+ ImportUserDataSteps.checkImportedResourceByIndex(0, 'jsonld-2.jsonld');
87
87
  ImportUserDataSteps.selectImportedResources();
88
88
  ImportUserDataSteps.getSelectedResources().should('have.length', 1);
89
89
  ImportUserDataSteps.deselectAllResources();
@@ -94,8 +94,8 @@ describe('Import user data: Batch operations', () => {
94
94
  ImportUserDataSteps.batchImport();
95
95
  ImportSettingsDialogSteps.import();
96
96
  // Then the files should be imported
97
- ImportUserDataSteps.checkImportedResource(1, 'jsonld.jsonld');
98
- ImportUserDataSteps.checkImportedResource(2, 'bnodes.ttl');
97
+ ImportUserDataSteps.checkImportedResourceByIndex(1, 'jsonld.jsonld');
98
+ ImportUserDataSteps.checkImportedResourceByIndex(2, 'bnodes.ttl');
99
99
  ImportUserDataSteps.selectImportedResources();
100
100
  ImportUserDataSteps.getSelectedResources().should('have.length', 3);
101
101
  });
@@ -162,9 +162,9 @@ function uploadWithImportFiles(files) {
162
162
  ImportUserDataSteps.selectFile([file1, file2, file3]);
163
163
  ImportSettingsDialogSteps.import();
164
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');
165
+ ImportUserDataSteps.checkImportedResourceByIndex(0, 'jsonld-2.jsonld');
166
+ ImportUserDataSteps.checkImportedResourceByIndex(1, 'jsonld.jsonld');
167
+ ImportUserDataSteps.checkImportedResourceByIndex(2, 'bnodes.ttl');
168
168
  }
169
169
 
170
170
  function uploadFiles(data) {
@@ -58,6 +58,6 @@ describe('Import user data: URL import', () => {
58
58
  return xhr.response.body[0]?.status === 'ERROR'
59
59
  }), {timeout: 10000, interval: 1000}
60
60
  )
61
- ImportUserDataSteps.checkImportedResource(0, IMPORT_JSONLD_URL, 'https://example.com/0007-context.jsonld');
61
+ ImportUserDataSteps.checkImportedResourceByIndex(0, IMPORT_JSONLD_URL, 'https://example.com/0007-context.jsonld');
62
62
  });
63
63
  });
@@ -64,6 +64,26 @@ describe('Cluster configuration', () => {
64
64
  });
65
65
  });
66
66
 
67
+ it('should show an alert when there is no elected leader in the cluster', () => {
68
+ // Given there is no elected leader in the cluster
69
+ ClusterStubs.stubClusterGroupStatusWithoutLeader();
70
+
71
+ // When I have opened the cluster management page
72
+ ClusterPageSteps.visit();
73
+ // And I click on edit properties and open Multi-region tab
74
+ ClusterPageSteps.previewClusterConfig();
75
+ ClusterConfigurationSteps.selectMultiRegionConfigTab();
76
+
77
+ // Then I expect to see an alert that the leader is not elected
78
+ ClusterConfigurationSteps.getNoLeaderAlert().should('be.visible')
79
+ .and('contain.text', 'Leader is not elected');
80
+ // And no primary or secondary cluster configuration should be rendered
81
+ ClusterConfigurationSteps.getMultiRegionHeader().should('not.exist');
82
+ ClusterConfigurationSteps.getAddTagButton().should('not.exist');
83
+ ClusterConfigurationSteps.getEnableSecondaryModeButton().should('not.exist');
84
+ ClusterConfigurationSteps.getTagsTable().should('not.exist');
85
+ });
86
+
67
87
  it('should be able to switch modes', () => {
68
88
  ClusterStubs.stubEnableSecondaryMode();
69
89
  const rpcAddress = 'node-name:7300';
@@ -33,7 +33,7 @@ describe('Confirm duplicate RDF file', () => {
33
33
  GuideDialogSteps.assertDialogWithTitleIsVisible('Import file');
34
34
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Import button.');
35
35
  ImportSettingsDialogSteps.import();
36
- ImportUserDataSteps.checkImportedResource(0, GUIDE_RESOURCE_FILE);
36
+ ImportUserDataSteps.checkImportedResourceByIndex(0, GUIDE_RESOURCE_FILE);
37
37
 
38
38
  // WHEN: I run a guide that includes the Import RDF File step.
39
39
  GuideDialogSteps.assertDialogWithTitleIsVisible('Import file — 1/6');
@@ -106,17 +106,13 @@ describe('Main Menu Guide steps', () => {
106
106
  BaseSteps.validateUrl('/sparql');
107
107
 
108
108
  // TTYG
109
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/3');
110
- GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agen');
109
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/2');
110
+ GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agent.');
111
111
  GuideDialogSteps.clickOnNextButton();
112
112
 
113
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/3');
114
- GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
115
- MainMenuSteps.clickOnMenuLab();
116
-
117
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 3/3');
113
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/2');
118
114
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
119
- MainMenuSteps.clickOnTTYGSubmenu();
115
+ MainMenuSteps.clickOnMenuTTYG();
120
116
  BaseSteps.validateUrl('/ttyg');
121
117
 
122
118
  // Autocomplete
@@ -249,15 +245,11 @@ describe('Main Menu Guide steps', () => {
249
245
  BaseSteps.validateUrl('/sparql');
250
246
 
251
247
  // TTYG
252
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/3');
248
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/2');
253
249
  GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agen');
254
250
  GuideDialogSteps.clickOnNextButton();
255
251
 
256
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/3');
257
- GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
258
- GuideDialogSteps.clickOnNextButton();
259
-
260
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 3/3');
252
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/2');
261
253
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
262
254
  GuideDialogSteps.clickOnNextButton();
263
255
  BaseSteps.validateUrl('/ttyg');
@@ -33,116 +33,112 @@ describe('ttyg configure agent guide', () => {
33
33
  })
34
34
 
35
35
  it('should create and configure TTYG agent with actions', () => {
36
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/30');
36
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 1/29');
37
37
  GuideDialogSteps.assertDialogWithContentIsVisible('The following steps show how to use the Talk to Your Graph view to create an agent.');
38
38
  GuideDialogSteps.clickOnNextButton();
39
39
 
40
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/30');
41
- GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
42
- MainMenuSteps.clickOnMenuLab();
43
-
44
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 3/30');
40
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 2/29');
45
41
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
46
- MainMenuSteps.clickOnTTYGSubmenu();
42
+ MainMenuSteps.clickOnMenuTTYG();
47
43
 
48
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 5/30');
44
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 4/29');
49
45
  GuideDialogSteps.assertDialogWithContentIsVisible('An agent is a helpful assistant that can answer your queries. You need to configure an agent in order to ask anything of Talk to Your Graph.');
50
46
  GuideDialogSteps.clickOnNextButton();
51
47
 
52
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 7/30');
48
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 6/29');
53
49
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the create agent button to create a new agent.');
54
50
  TTYGViewSteps.clickCreateAgentButton();
55
51
 
56
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 9/30');
52
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 8/29');
57
53
  GuideDialogSteps.assertDialogWithContentIsVisible('Type a name for the agent. You will refer to it later.');
58
54
  TtygAgentSettingsModalSteps.typeAgentName('MyAgent');
59
55
  GuideDialogSteps.clickOnNextButton();
60
56
 
61
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 10/30');
57
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 9/29');
62
58
  GuideDialogSteps.assertDialogWithContentIsVisible('Here you can type the name of the OpenAI model to be used.');
63
59
  TtygAgentSettingsModalSteps.clearLLMModel();
64
60
  TtygAgentSettingsModalSteps.typeLLMModel('gpt-3.5-turbo');
65
61
  GuideDialogSteps.clickOnNextButton();
66
62
 
67
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 11/30');
63
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 10/29');
68
64
  GuideDialogSteps.assertDialogWithContentIsVisible('Sets the sampling temperature of the agent. Lower values result in more consistent, repetitive responses generated by the agent and higher values result in a wider variety of responses');
69
65
  TtygAgentSettingsModalSteps.setTemperature(0.8);
70
66
  GuideDialogSteps.clickOnNextButton();
71
67
 
72
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 12/30');
68
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 11/29');
73
69
  GuideDialogSteps.assertDialogWithContentIsVisible('Sets the nucleus sampling of the agent');
74
70
  TtygAgentSettingsModalSteps.setTopP(0.9);
75
71
  GuideDialogSteps.clickOnNextButton();
76
72
 
77
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/30');
73
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 12/29');
78
74
  GuideDialogSteps.assertDialogWithContentIsVisible('Enabling SPARQL search allows the agent to answers questions by performing a SPARQL query.');
79
75
  GuideDialogSteps.clickOnNextButton();
80
76
 
81
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/30');
77
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/29');
82
78
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable SPARQL search query method.');
83
79
  TtygAgentSettingsModalSteps.enableSparqlExtractionMethod();
84
80
 
85
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/30');
81
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/29');
86
82
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable providing an ontology in a named graph.');
87
83
  TtygAgentSettingsModalSteps.selectSparqlMethodOntologyGraph();
88
84
 
89
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 16/30');
85
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/29');
90
86
  GuideDialogSteps.assertDialogWithContentIsVisible('Type http://example.org/some/test/ontology as the named graph which contains the ontology.');
91
87
  TtygAgentSettingsModalSteps.clearSparqlMethodOntologyGraphField();
92
88
  TtygAgentSettingsModalSteps.typeSparqlMethodOntologyGraphField('http://example.org/some/test/ontology');
93
89
  GuideDialogSteps.clickOnNextButton();
94
90
 
95
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 17/30');
91
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 16/29');
96
92
  GuideDialogSteps.assertDialogWithContentIsVisible('Check to automatically add missing namespaces.');
97
93
  TtygAgentSettingsModalSteps.toggleAddMissingNamespacesCheckbox();
98
94
 
99
- GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 18/30');
95
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 17/29');
100
96
  GuideDialogSteps.assertDialogWithContentIsVisible('Enabling FTS search allows the agent to answer questions by using full-text search in literals and IRIs.');
101
97
  GuideDialogSteps.clickOnNextButton();
102
98
 
103
- GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 19/30');
99
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 18/29');
104
100
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable FTS search query method.');
105
101
  TtygAgentSettingsModalSteps.enableFtsExtractionMethod();
106
102
 
107
- GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 20/30');
103
+ GuideDialogSteps.assertDialogWithTitleIsVisible('FTS search query method — 19/29');
108
104
  GuideDialogSteps.assertDialogWithContentIsVisible('Type 100 as the maximum number of triples to retrieve per call.');
109
105
  TtygAgentSettingsModalSteps.setFtsSearchMaxTriples(100);
110
106
  GuideDialogSteps.clickOnNextButton();
111
107
 
112
- GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 21/30');
108
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 20/29');
113
109
  GuideDialogSteps.assertDialogWithContentIsVisible('Enabling Similarity search allows the agent to answer questions by using Similarity search.');
114
110
  GuideDialogSteps.clickOnNextButton();
115
111
 
116
- GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 22/30');
112
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 21/29');
117
113
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Similarity search query method.');
118
114
  TtygAgentSettingsModalSteps.enableSimilaritySearchMethodPanel();
119
115
 
120
- GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 23/30');
116
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Similarity search query method — 22/29');
121
117
  GuideDialogSteps.assertDialogWithContentIsVisible('Select the index to use for Similarity search.');
122
118
  TtygAgentSettingsModalSteps.selectSimilarityIndex(0);
123
119
  GuideDialogSteps.clickOnNextButton();
124
120
 
125
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 24/30');
121
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 23/29');
126
122
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Full-text search in labels for IRI discovery');
127
123
  TtygAgentSettingsModalSteps.checkIriDiscoverySearchCheckbox();
128
124
 
129
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 25/30');
125
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 24/29');
130
126
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable Autocomplete for IRI discovery.');
131
127
  TtygAgentSettingsModalSteps.checkAutocompleteSearchCheckbox();
132
128
 
133
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 26/30');
129
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 25/29');
134
130
  GuideDialogSteps.assertDialogWithContentIsVisible('Set the Max number of results (IRIs) per call to 15');
135
131
  TtygAgentSettingsModalSteps.setAutocompleteMaxResults(15);
136
132
  GuideDialogSteps.clickOnNextButton();
137
133
 
138
- GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 27/30');
134
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Talk to Your Graph — 26/29');
139
135
  GuideDialogSteps.assertDialogWithContentIsVisible('Set Context Size to 4096 so the model can use the ontology and conversation history to answer correctly');
140
136
  TtygAgentSettingsModalSteps.getContextSizeField().focus();
141
137
  TtygAgentSettingsModalSteps.clearContextSize();
142
138
  TtygAgentSettingsModalSteps.enterContextSize(4096);
143
139
  GuideDialogSteps.clickOnNextButton();
144
140
 
145
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 28/30');
141
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 27/29');
146
142
  GuideDialogSteps.assertDialogWithContentIsVisible('Enter the following in the input:');
147
143
  TtygAgentSettingsModalSteps.clearUserInstructions();
148
144
  TtygAgentSettingsModalSteps.getCodeToCopy().then(code => {
@@ -150,7 +146,7 @@ describe('ttyg configure agent guide', () => {
150
146
  GuideDialogSteps.clickOnNextButton();
151
147
  });
152
148
 
153
- GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 29/30');
149
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Create an agent — 28/29');
154
150
  GuideDialogSteps.assertDialogWithContentIsVisible('Click to save the agent settings');
155
151
  TtygAgentSettingsModalSteps.saveAgent();
156
152
  });
@@ -28,15 +28,11 @@ describe('Edit TTYG agent guide', () => {
28
28
  it('should end guide when no api key is present', () => {
29
29
  TTYGStubs.stubAgentListGetError('Set the config property \'graphdb.llm.api-key\' to your LLM API key');
30
30
 
31
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 1/18');
32
- GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
33
- MainMenuSteps.clickOnMenuLab();
34
-
35
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 2/18');
31
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 1/17');
36
32
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
37
- MainMenuSteps.clickOnTTYGSubmenu();
33
+ MainMenuSteps.clickOnMenuTTYG();
38
34
 
39
- GuideDialogSteps.assertDialogWithTitleIsVisible('Missing OpenAI key — 3/18');
35
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Missing OpenAI key — 2/17');
40
36
  GuideDialogSteps.assertDialogWithContentIsVisible('To use Talk to Your Graph, GraphDB must first be configured to work with LLM API.');
41
37
  GuideDialogSteps.clickOnCloseButton();
42
38
  });
@@ -48,39 +44,35 @@ describe('Edit TTYG agent guide', () => {
48
44
  TTYGStubs.stubAgentEdit();
49
45
  RepositoriesStubs.stubRepositoryModel(repositoryId);
50
46
 
51
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 1/18');
52
- GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Lab menu.');
53
- MainMenuSteps.clickOnMenuLab();
54
-
55
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 2/18');
47
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 1/17');
56
48
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the Talk to Your Graph menu.');
57
- MainMenuSteps.clickOnTTYGSubmenu();
49
+ MainMenuSteps.clickOnMenuTTYG();
58
50
 
59
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 4/18');
51
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 3/17');
60
52
  GuideDialogSteps.assertDialogWithContentIsVisible('An agent\'s configuration such as the extraction methods can be reconfigured at any time');
61
53
  GuideDialogSteps.clickOnNextButton();
62
54
 
63
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 11/18');
55
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 10/17');
64
56
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the edit agent button to edit the configuration of the selected agent.');
65
57
  TTYGViewSteps.editCurrentAgent();
66
58
 
67
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/18');
59
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 12/17');
68
60
  GuideDialogSteps.assertDialogWithContentIsVisible('Enabling SPARQL search allows the agent to answers questions by performing a SPARQL query');
69
61
  GuideDialogSteps.clickOnNextButton();
70
62
 
71
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/18');
63
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 13/17');
72
64
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable SPARQL search query method.');
73
65
  TtygAgentSettingsModalSteps.enableSparqlExtractionMethod();
74
66
 
75
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/18');
67
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 14/17');
76
68
  GuideDialogSteps.assertDialogWithContentIsVisible('Click on the toggle to enable providing an ontology in a named graph.');
77
69
  TtygAgentSettingsModalSteps.selectSparqlMethodOntologyGraph();
78
70
 
79
- GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 16/18');
71
+ GuideDialogSteps.assertDialogWithTitleIsVisible('SPARQL search query method — 15/17');
80
72
  GuideDialogSteps.assertDialogWithContentIsVisible('Type http://example.com as the named graph which contains the ontology.');
81
73
  GuideDialogSteps.clickOnNextButton();
82
74
 
83
- GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 17/18');
75
+ GuideDialogSteps.assertDialogWithTitleIsVisible('Edit an agent — 16/17');
84
76
  GuideDialogSteps.assertDialogWithContentIsVisible('Click to save the agent settings.');
85
77
  TtygAgentSettingsModalSteps.saveAgent();
86
78
  ModalDialogSteps.getDialog().should('not.exist');
@@ -57,7 +57,7 @@ describe('Import server files - Batch operations', () => {
57
57
  // precondition for the next step
58
58
  ImportServerFilesSteps.importResourceByName(FILE_FOR_IMPORT);
59
59
  ImportSettingsDialogSteps.import();
60
- ImportServerFilesSteps.checkImportedResource(0, FILE_FOR_IMPORT);
60
+ ImportServerFilesSteps.checkImportedResourceByName(FILE_FOR_IMPORT);
61
61
  // When I select Imported from the menu
62
62
  ImportServerFilesSteps.selectImportedResources();
63
63
  // Then I should see only imported files selected
@@ -97,8 +97,8 @@ describe('Import server files - Batch operations', () => {
97
97
  // Then the files should be imported
98
98
  // We send only the files in the folder for import
99
99
  // ImportServerFilesSteps.checkImportedResource(0, 'more-files');
100
- ImportServerFilesSteps.checkImportedResource(0, 'jsonld-file.jsonld');
101
- ImportServerFilesSteps.checkImportedResource(0, 'rdfxml.rdf');
100
+ ImportServerFilesSteps.checkImportedResourceByName('jsonld-file.jsonld');
101
+ ImportServerFilesSteps.checkImportedResourceByName('rdfxml.rdf');
102
102
  ImportServerFilesSteps.deselectFileByName('more-files');
103
103
  // When I select the folder and click on the batch reset button
104
104
  ImportServerFilesSteps.selectFileByName('more-files');
@@ -116,7 +116,7 @@ describe('Import server files - Batch operations', () => {
116
116
  // Then the files should be imported
117
117
  // We send only the files in the folder for import
118
118
  // ImportServerFilesSteps.checkImportedResource(0, 'more-files');
119
- ImportServerFilesSteps.checkImportedResource(0, 'jsonld-file.jsonld');
120
- ImportServerFilesSteps.checkImportedResource(0, 'rdfxml.rdf');
119
+ ImportServerFilesSteps.checkImportedResourceByName('jsonld-file.jsonld');
120
+ ImportServerFilesSteps.checkImportedResourceByName('rdfxml.rdf');
121
121
  });
122
122
  });
@@ -87,8 +87,8 @@ describe('Import server files', () => {
87
87
  // Then I expect all files to be successfully imported.
88
88
  // TODO: this check is failing right now because the fix https://ontotext.atlassian.net/browse/GDB-10295 is not yet completed.
89
89
  // ImportServerFilesSteps.checkImportedResource(0, 'more-files', 'Imported successfully in');
90
- ImportServerFilesSteps.checkImportedResource(1, 'jsonld-file.jsonld', 'Imported successfully in');
91
- ImportServerFilesSteps.checkImportedResource(2, 'rdfxml.rdf', 'Imported successfully in');
90
+ ImportServerFilesSteps.checkImportedResourceByIndex(1, 'jsonld-file.jsonld', 'Imported successfully in');
91
+ ImportServerFilesSteps.checkImportedResourceByIndex(2, 'rdfxml.rdf', 'Imported successfully in');
92
92
 
93
93
  // When I try to import a directory that contains resources with incorrect rdf data.
94
94
  ImportServerFilesSteps.importResourceByName('more-files-with-error');
@@ -119,7 +119,7 @@ describe('Import server files', () => {
119
119
  ImportSettingsDialogSteps.import();
120
120
 
121
121
  // I expect only part of the error be displayed,
122
- ImportServerFilesSteps.checkImportedResource(0, importResourceName, 'RDF Parse Error: The element type ');
122
+ ImportServerFilesSteps.checkImportedResourceByName(importResourceName, 'RDF Parse Error: The element type ');
123
123
  // and when click on that error
124
124
  ImportServerFilesSteps.openErrorDialog(importResourceName);
125
125
 
@@ -152,39 +152,39 @@ describe('Import server files', () => {
152
152
  ImportServerFilesSteps.orderBySize();
153
153
 
154
154
  // Then I expect the directories to be sorted in ascending order,
155
- ImportServerFilesSteps.getResource(0).should('contain', "more-files");
156
- ImportServerFilesSteps.getResource(3).should('contain', "more-files-with-error");
155
+ ImportServerFilesSteps.getResourceTitleRow(0).should('contain', "more-files");
156
+ ImportServerFilesSteps.getResourceTitleRow(3).should('contain', "more-files-with-error");
157
157
 
158
158
  // and inner files to be sorted ascending as well.
159
159
  // checks first folder files
160
- ImportServerFilesSteps.getResource(1).should('contain', "jsonld-file.jsonld");
161
- ImportServerFilesSteps.getResource(2).should('contain', "rdfxml.rdf");
160
+ ImportServerFilesSteps.getResourceTitleRow(1).should('contain', "jsonld-file.jsonld");
161
+ ImportServerFilesSteps.getResourceTitleRow(2).should('contain', "rdfxml.rdf");
162
162
  // checks second folder files
163
- ImportServerFilesSteps.getResource(4).should('contain', "import-resource-with-correct-data.jsonld");
164
- ImportServerFilesSteps.getResource(5).should('contain', "import-resource-with-incorrect-data.rdf");
165
- ImportServerFilesSteps.getResource(6).should('contain', "import-resource-with-long-error.rdf");
163
+ ImportServerFilesSteps.getResourceTitleRow(4).should('contain', "import-resource-with-correct-data.jsonld");
164
+ ImportServerFilesSteps.getResourceTitleRow(5).should('contain', "import-resource-with-incorrect-data.rdf");
165
+ ImportServerFilesSteps.getResourceTitleRow(6).should('contain', "import-resource-with-long-error.rdf");
166
166
  // checks files in root
167
- ImportServerFilesSteps.getResource(7).should('contain', "bnodes.ttl");
168
- ImportServerFilesSteps.getResource(8).should('contain', "test_turtlestar.ttls");
169
- ImportServerFilesSteps.getResource(9).should('contain', "0007-import-file.jsonld");
167
+ ImportServerFilesSteps.getResourceTitleRow(7).should('contain', "bnodes.ttl");
168
+ ImportServerFilesSteps.getResourceTitleRow(8).should('contain', "test_turtlestar.ttls");
169
+ ImportServerFilesSteps.getResourceTitleRow(9).should('contain', "0007-import-file.jsonld");
170
170
 
171
171
  // When I change the order by size.
172
172
  ImportServerFilesSteps.orderBySize();
173
173
 
174
174
  // Then I expect the directories to be sorted in descending order,
175
- ImportServerFilesSteps.getResource(0).should('contain', "more-files-with-error");
176
- ImportServerFilesSteps.getResource(4).should('contain', "more-files");
175
+ ImportServerFilesSteps.getResourceTitleRow(0).should('contain', "more-files-with-error");
176
+ ImportServerFilesSteps.getResourceTitleRow(4).should('contain', "more-files");
177
177
  // checks first folder files
178
- ImportServerFilesSteps.getResource(1).should('contain', "import-resource-with-long-error.rdf");
179
- ImportServerFilesSteps.getResource(2).should('contain', "import-resource-with-incorrect-data.rdf");
180
- ImportServerFilesSteps.getResource(3).should('contain', "import-resource-with-correct-data.jsonld");
178
+ ImportServerFilesSteps.getResourceTitleRow(1).should('contain', "import-resource-with-long-error.rdf");
179
+ ImportServerFilesSteps.getResourceTitleRow(2).should('contain', "import-resource-with-incorrect-data.rdf");
180
+ ImportServerFilesSteps.getResourceTitleRow(3).should('contain', "import-resource-with-correct-data.jsonld");
181
181
  // checks second folder files
182
- ImportServerFilesSteps.getResource(5).should('contain', "rdfxml.rdf");
183
- ImportServerFilesSteps.getResource(6).should('contain', "jsonld-file.jsonld");
182
+ ImportServerFilesSteps.getResourceTitleRow(5).should('contain', "rdfxml.rdf");
183
+ ImportServerFilesSteps.getResourceTitleRow(6).should('contain', "jsonld-file.jsonld");
184
184
  // checks files in root
185
- ImportServerFilesSteps.getResource(17).should('contain', "0007-import-file.jsonld");
186
- ImportServerFilesSteps.getResource(18).should('contain', "test_turtlestar.ttls");
187
- ImportServerFilesSteps.getResource(19).should('contain', "bnodes.ttl");
185
+ ImportServerFilesSteps.getResourceTitleRow(17).should('contain', "0007-import-file.jsonld");
186
+ ImportServerFilesSteps.getResourceTitleRow(18).should('contain', "test_turtlestar.ttls");
187
+ ImportServerFilesSteps.getResourceTitleRow(19).should('contain', "bnodes.ttl");
188
188
  });
189
189
 
190
190
  it('should allow importing jsonld with empty "JSON-LD Context"', () => {