graphdb-workbench-tests 3.5.0-reactodia-resource-construct-TR1 → 3.5.0

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 (46) hide show
  1. package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +2 -1
  2. package/e2e-legacy/guides/welcome/welcome-guide.spec.js +1 -1
  3. package/e2e-legacy/home/solr-banner/solr-banner.spec.js +137 -0
  4. package/e2e-legacy/repository/ontop-repository.spec.js +132 -0
  5. package/e2e-legacy/resource/resource.spec.js +4 -17
  6. package/e2e-legacy/setup/aclmanagement/create-rule.spec.js +1 -1
  7. package/e2e-legacy/setup/aclmanagement/delete-rule.spec.js +1 -1
  8. package/e2e-legacy/setup/aclmanagement/edit-rule.spec.js +1 -1
  9. package/e2e-legacy/setup/aclmanagement/render-rules.spec.js +1 -1
  10. package/e2e-legacy/setup/aclmanagement/reorder-rules.spec.js +1 -1
  11. package/e2e-legacy/setup/aclmanagement/revert-rules.spec.js +1 -1
  12. package/e2e-legacy/setup/aclmanagement/scopes.spec.js +2 -2
  13. package/e2e-legacy/setup/aclmanagement/update-rules.spec.js +2 -2
  14. package/e2e-legacy/setup/jdbc/jdbc-create.spec.js +1 -1
  15. package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +2 -6
  16. package/e2e-legacy/setup/settings/my-settings.spec.js +1 -1
  17. package/e2e-legacy/setup/users-and-access/user-and-access.spec.js +706 -337
  18. package/e2e-legacy/sparql-editor/saved-query/readonly-query.spec.js +1 -1
  19. package/e2e-legacy/ttyg/agent-select-menu.spec.js +7 -1
  20. package/e2e-legacy/ttyg/chat-list.spec.js +1 -1
  21. package/e2e-legacy/ttyg/create-chat.spec.js +1 -1
  22. package/e2e-legacy/ttyg/edit-agent.spec.js +2 -2
  23. package/e2e-legacy/ttyg/ttyg-permission.spec.js +2 -1
  24. package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +15 -15
  25. package/e2e-security/setup/users-and-access/graphql-user.spec.js +3 -3
  26. package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +2 -2
  27. package/eslint.config.js +1 -0
  28. package/fixtures/ontop/university-complete_edited.obda +106 -0
  29. package/npm-shrinkwrap.json +448 -278
  30. package/package.json +5 -6
  31. package/steps/application-steps.js +1 -1
  32. package/steps/deprecation-banner/deprecation-banner-steps.js +13 -0
  33. package/steps/deprecation-steps.js +13 -0
  34. package/steps/main-menu-steps.js +5 -1
  35. package/steps/ontop-repository-steps.js +20 -0
  36. package/steps/repository-steps.js +44 -3
  37. package/steps/resource/resource-steps.js +0 -8
  38. package/steps/setup/settings-steps.js +3 -3
  39. package/steps/setup/user-and-access-steps.js +84 -13
  40. package/steps/ttyg/ttyg-view-steps.js +15 -1
  41. package/stubs/repositories/repositories-stubs.js +4 -0
  42. package/stubs/security-stubs.js +4 -0
  43. package/support/security-command.js +43 -0
  44. package/cypress-guides.config.js +0 -45
  45. package/e2e-legacy/reactodia/reactodia.spec.js +0 -96
  46. package/steps/reactodia-steps.js +0 -42
@@ -32,7 +32,7 @@ describe('Readonly saved query', () => {
32
32
  });
33
33
 
34
34
  it('Should not allow modifying a saved query if it is readonly', () => {
35
- SparqlEditorSteps.visitSparqlEditorPage()
35
+ SparqlEditorSteps.visitSparqlEditorPage();
36
36
  // Given: There is a public saved query created by a user.
37
37
  LoginSteps.loginWithUser(USER_NAME, PASSWORD);
38
38
  YasguiSteps.getYasgui().should('be.visible');
@@ -7,6 +7,10 @@ describe('TTYG agent select menu', () => {
7
7
 
8
8
  const repositoryId = 'starwars';
9
9
 
10
+ beforeEach(() => {
11
+ cy.clearLocalStorage('ls.ttyg');
12
+ });
13
+
10
14
  beforeEach(() => {
11
15
  RepositoriesStubs.stubRepositories(0, '/repositories/get-ttyg-repositories.json');
12
16
  RepositoriesStubs.stubBaseEndpoints(repositoryId);
@@ -52,7 +56,8 @@ describe('TTYG agent select menu', () => {
52
56
  TTYGViewSteps.getAgentsDropdownMenu().should('be.visible');
53
57
  });
54
58
 
55
- it('Should be able to select agent from the menu', () => {
59
+ // FIXME: The tests fails on GDB Build pipeline, but works locally. The problem is that there is a preselected agent in the dropdown and the label is not "Select an agent"
60
+ it.skip('Should be able to select agent from the menu', () => {
56
61
  TTYGStubs.stubAgentListGet();
57
62
  // Given I have opened the ttyg page
58
63
  TTYGViewSteps.visit();
@@ -91,6 +96,7 @@ describe('TTYG agent select menu', () => {
91
96
  TTYGViewSteps.triggerDeleteAgentActionMenu(0);
92
97
  ModalDialogSteps.confirm();
93
98
  ModalDialogSteps.getDialog().should('not.exist');
99
+ cy.wait('@delete-agent');
94
100
  // TODO: the agents list filter brakes after deleting an agent!!!
95
101
  TTYGViewSteps.selectAllAgentsFilter();
96
102
  TTYGViewSteps.getAgents().should('have.length', 3);
@@ -230,7 +230,7 @@ describe('TTYG chat list', () => {
230
230
  HomeSteps.visit();
231
231
  cy.wait('@get-chat');
232
232
  // and came back to the ttyg page
233
- TTYGViewSteps.visit();
233
+ TTYGViewSteps.visit(false);
234
234
 
235
235
  // Then I expect to last used chat be selected.
236
236
  TTYGViewSteps.getChatFromGroup(0, 2).should('have.class', 'selected');
@@ -61,7 +61,7 @@ describe('TTYG create chat', () => {
61
61
  // and returns to the TTYG page
62
62
  TTYGStubs.stubChatsListGet("/ttyg/chats/create/get-chats-after-create.json");
63
63
  TTYGStubs.stubAgentGet();
64
- TTYGViewSteps.visit();
64
+ TTYGViewSteps.visit(false);
65
65
  cy.wait('@get-chat-list');
66
66
  // Then I expect newly created chat be selected.
67
67
  TTYGViewSteps.getChatFromGroup(0, 0).should('contain', 'New chat of Han Solo is a character');
@@ -145,8 +145,8 @@ describe('TTYG edit an agent', () => {
145
145
 
146
146
  it('should show Context size if not openai-assistants API', () => {
147
147
  // Open TTYG page and select first agent
148
- TTYGViewSteps.visit();
149
148
  TTYGStubs.stubForApiType('default');
149
+ TTYGViewSteps.visit();
150
150
  cy.wait('@get-agent-list');
151
151
  TTYGViewSteps.openAgentSettingsModalForAgent(0);
152
152
 
@@ -168,8 +168,8 @@ describe('TTYG edit an agent', () => {
168
168
 
169
169
  it('should NOT show Context size if openai-assistants API', () => {
170
170
  // Open TTYG page and select first agent
171
- TTYGViewSteps.visit();
172
171
  TTYGStubs.stubForApiType('assistants');
172
+ TTYGViewSteps.visit();
173
173
  cy.wait('@get-agent-list');
174
174
  TTYGViewSteps.openAgentSettingsModalForAgent(0);
175
175
  // Then I should see the Context size field
@@ -13,7 +13,8 @@ const PASSWORD = 'root';
13
13
  const ENABLED = true;
14
14
  const DISABLED = false;
15
15
 
16
- describe('TTYG permissions', () => {
16
+ // FIXME: There is a problem with the loader not hiding. Problem is reproducable on GDB build on branch 11.4 (commit 0ebd95d6) with 3.4.1-RC1
17
+ describe.skip('TTYG permissions', () => {
17
18
 
18
19
  before(() => {
19
20
  cy.loginAsAdmin();
@@ -38,8 +38,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
38
38
  it('should show error when username is empty', () => {
39
39
  UserAndAccessSteps.typePassword(testPassword);
40
40
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
41
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
42
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
41
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
42
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
43
43
  UserAndAccessSteps.confirmUserCreate();
44
44
  UserAndAccessSteps.getUserFieldError('username').should('be.visible').and('contain.text', 'Enter username!');
45
45
  });
@@ -55,8 +55,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
55
55
  UserAndAccessSteps.typeUsername(testUsername);
56
56
  UserAndAccessSteps.typePassword(testPassword);
57
57
  UserAndAccessSteps.typeConfirmPasswordField('Different123!');
58
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
59
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
58
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
59
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
60
60
  UserAndAccessSteps.confirmUserCreate();
61
61
  UserAndAccessSteps.getUserFieldError('confirmPassword').should('be.visible').and('contain.text', 'Confirm password!');
62
62
  });
@@ -65,8 +65,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
65
65
  UserAndAccessSteps.typeUsername('user');
66
66
  UserAndAccessSteps.typePassword(testPassword);
67
67
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
68
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
69
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
68
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
69
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
70
70
  UserAndAccessSteps.confirmUserCreate();
71
71
 
72
72
  cy.url().should('include', '/users');
@@ -74,7 +74,7 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
74
74
  UserAndAccessSteps.typeUsername('user');
75
75
  UserAndAccessSteps.typePassword(testPassword);
76
76
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
77
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
77
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
78
78
  UserAndAccessSteps.confirmUserCreate();
79
79
 
80
80
  // Using the toaster from the shared components which has different class names
@@ -96,8 +96,8 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
96
96
  UserAndAccessSteps.typePassword(testPassword);
97
97
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
98
98
  UserAndAccessSteps.addTextToCustomRoleField('a');
99
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
100
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
99
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
100
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
101
101
  UserAndAccessSteps.getCustomRoleFieldError().should('be.visible').and('contain.text', 'Must be at least 2 symbols long');
102
102
  });
103
103
  });
@@ -116,9 +116,9 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
116
116
  UserAndAccessSteps.typeUsername(rwUsername);
117
117
  UserAndAccessSteps.typePassword(testPassword);
118
118
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
119
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
120
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
121
- UserAndAccessSteps.getWriteAccessForRepo(repositoryId).should('be.checked');
119
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
120
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
121
+ UserAndAccessSteps.validateWriteAccessForRepo(repositoryId, {checked: true});
122
122
  UserAndAccessSteps.confirmUserCreate();
123
123
  UserAndAccessSteps.toggleSecurity();
124
124
 
@@ -159,9 +159,9 @@ describe('User Management – Creation, Validation, Permissions & Deletion', ()
159
159
  UserAndAccessSteps.typeUsername(roUsername);
160
160
  UserAndAccessSteps.typePassword(testPassword);
161
161
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
162
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
163
- UserAndAccessSteps.getReadAccessForRepo(repositoryId).should('be.checked');
164
- UserAndAccessSteps.getWriteAccessForRepo(repositoryId).should('not.be.checked');
162
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
163
+ UserAndAccessSteps.validateReadAccessForRepo(repositoryId, {checked: true});
164
+ UserAndAccessSteps.validateWriteAccessForRepo(repositoryId, {checked: false});
165
165
  UserAndAccessSteps.confirmUserCreate();
166
166
  UserAndAccessSteps.toggleSecurity();
167
167
 
@@ -51,7 +51,7 @@ describe('GraphQL-only User – Playground Access & Mutation Restriction', () =>
51
51
  UserAndAccessSteps.typeUsername(gqlUsername);
52
52
  UserAndAccessSteps.typePassword(testPassword);
53
53
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
54
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
54
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
55
55
  UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
56
56
  UserAndAccessSteps.confirmUserCreate();
57
57
 
@@ -88,8 +88,8 @@ describe('GraphQL-only User – Playground Access & Mutation Restriction', () =>
88
88
  UserAndAccessSteps.typeUsername(gqlUsername);
89
89
  UserAndAccessSteps.typePassword(testPassword);
90
90
  UserAndAccessSteps.typeConfirmPasswordField(testPassword);
91
- UserAndAccessSteps.clickReadAccessRepo(repositoryId);
92
- UserAndAccessSteps.clickWriteAccessRepo(repositoryId);
91
+ UserAndAccessSteps.toggleReadAccessForRepo(repositoryId);
92
+ UserAndAccessSteps.toggleWriteAccessForRepo(repositoryId);
93
93
  UserAndAccessSteps.clickGraphqlAccessRepo(repositoryId);
94
94
  UserAndAccessSteps.confirmUserCreate();
95
95
 
@@ -24,8 +24,8 @@ describe('Repository Admin – Permissions and Access Control', () => {
24
24
  UserAndAccessSteps.typeConfirmPasswordField(password);
25
25
  UserAndAccessSteps.selectRoleRadioButton('#roleRepoAdmin');
26
26
 
27
- UserAndAccessSteps.getReadAccessForRepo('*').should('be.checked').and('be.disabled');
28
- UserAndAccessSteps.getWriteAccessForRepo('*').should('be.checked').and('be.disabled');
27
+ UserAndAccessSteps.validateReadAccessForRepo('*', {checked: true, disabled: true});
28
+ UserAndAccessSteps.validateWriteAccessForRepo('*', {checked: true, disabled: true});
29
29
 
30
30
  UserAndAccessSteps.confirmUserCreate();
31
31
  UserAndAccessSteps.toggleSecurity();
package/eslint.config.js CHANGED
@@ -20,6 +20,7 @@ export default [
20
20
  cy: 'readonly',
21
21
  Cypress: 'readonly',
22
22
  describe: 'readonly',
23
+ context: 'readonly',
23
24
  it: 'readonly',
24
25
  beforeEach: 'readonly',
25
26
  afterEach: 'readonly',
@@ -0,0 +1,106 @@
1
+ # edited ODBA file
2
+ [PrefixDeclaration]
3
+ : http://example.org/voc#
4
+ ex: http://example.org/
5
+ owl: http://www.w3.org/2002/07/owl#
6
+ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
7
+ xml: http://www.w3.org/XML/1998/namespace
8
+ xsd: http://www.w3.org/2001/XMLSchema#
9
+ foaf: http://xmlns.com/foaf/0.1/
10
+ obda: https://w3id.org/obda/vocabulary#
11
+ rdfs: http://www.w3.org/2000/01/rdf-schema#
12
+
13
+ [MappingDeclaration] @collection [[
14
+ mappingId uni1-student
15
+ target :uni1/student/{s_id} a :Student ; foaf:firstName {first_name}^^xsd:string ; foaf:lastName {last_name}^^xsd:string .
16
+ source SELECT * FROM "uni1"."student"
17
+
18
+ mappingId uni1-academic
19
+ target :uni1/academic/{a_id} a :FacultyMember ; foaf:firstName {first_name}^^xsd:string ; foaf:lastName {last_name}^^xsd:string .
20
+ source SELECT * FROM "uni1"."academic"
21
+
22
+ mappingId uni1-fullProfessor
23
+ target :uni1/academic/{a_id} a :FullProfessor .
24
+ source SELECT * FROM "uni1"."academic"
25
+ WHERE "position" = 1
26
+
27
+ mappingId uni1-AssociateProfessor
28
+ target :uni1/academic/{a_id} a :AssociateProfessor .
29
+ source SELECT * FROM "uni1"."academic"
30
+ WHERE "position" = 2
31
+
32
+ mappingId uni1-PostDoc
33
+ target :uni1/academic/{a_id} a :PostDoc .
34
+ source SELECT * FROM "uni1"."academic"
35
+ WHERE "position" = 9
36
+
37
+ mappingId uni1-externalTeacher
38
+ target :uni1/academic/{a_id} a :ExternalTeacher .
39
+ source SELECT * FROM "uni1"."academic"
40
+ WHERE "position" = 8
41
+
42
+ mappingId uni1-teaching
43
+ target :uni1/academic/{a_id} :teaches :uni1/course/{c_id} .
44
+ source SELECT * FROM "uni1"."teaching"
45
+
46
+ mappingId uni1-course
47
+ target :uni1/course/{c_id} a :Course ; :title {title} ; :isGivenAt :uni1/university .
48
+ source SELECT * FROM "uni1"."course"
49
+
50
+ mappingId uni1-registration
51
+ target :uni1/student/{s_id} :attends :uni1/course/{c_id} .
52
+ source SELECT *
53
+ FROM "uni1"."course-registration"
54
+
55
+ mappingId uni2-person
56
+ target :uni2/person/{pid} a foaf:Person ; foaf:firstName {fname}^^xsd:string ; foaf:lastName {lname}^^xsd:string .
57
+ source SELECT * FROM "uni2"."person"
58
+
59
+ mappingId uni2-undergraduate
60
+ target :uni2/person/{pid} a :UndergraduateStudent .
61
+ source SELECT * FROM "uni2"."person"
62
+ WHERE "status" = 1
63
+
64
+ mappingId uni2-graduate
65
+ target :uni2/person/{pid} a :GraduateStudent .
66
+ source SELECT * FROM "uni2"."person"
67
+ WHERE "status" = 2
68
+
69
+ mappingId uni2-fullProfessor
70
+ target :uni2/person/{pid} a :FullProfessor .
71
+ source SELECT * FROM "uni2"."person"
72
+ WHERE "status" = 7
73
+
74
+ mappingId uni2-associate-prof
75
+ target :uni2/person/{pid} a :AssociateProfessor .
76
+ source SELECT * FROM "uni2"."person"
77
+ WHERE "status" = 8
78
+
79
+ mappingId uni2-course
80
+ target :uni2/course/{cid} a :Course ; :title {topic}^^xsd:string ; :isGivenAt :uni2/university .
81
+ source SELECT * FROM "uni2"."course"
82
+
83
+ mappingId uni2-lecturer
84
+ target :uni2/person/{lecturer} :givesLecture :uni2/course/{cid} .
85
+ source SELECT * FROM "uni2"."course"
86
+
87
+ mappingId uni2-assistantProfessor
88
+ target :uni2/person/{pid} a :AssistantProfessor .
89
+ source SELECT * FROM "uni2"."person"
90
+ WHERE "status" = 9
91
+
92
+ mappingId uni2-postDoc
93
+ target :uni2/person/{pid} a :PostDoc .
94
+ source SELECT * FROM "uni2"."person"
95
+ WHERE "status" = 3
96
+
97
+ mappingId uni2-lab-teacher
98
+ target :uni2/person/{lab_teacher} :givesLab :uni2/course/{cid} .
99
+ source SELECT * FROM "uni2"."course"
100
+
101
+ mappingId uni2-registration
102
+ target :uni2/person/{pid} :attends :uni2/course/{cid} .
103
+ source SELECT *
104
+ FROM "uni2"."registration"
105
+ ]]
106
+