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.
- package/e2e-legacy/guides/ttyg/configure-agent/configure-agent-guide.spec.js +2 -1
- package/e2e-legacy/guides/welcome/welcome-guide.spec.js +1 -1
- package/e2e-legacy/home/solr-banner/solr-banner.spec.js +137 -0
- package/e2e-legacy/repository/ontop-repository.spec.js +132 -0
- package/e2e-legacy/resource/resource.spec.js +4 -17
- package/e2e-legacy/setup/aclmanagement/create-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/delete-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/edit-rule.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/render-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/reorder-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/revert-rules.spec.js +1 -1
- package/e2e-legacy/setup/aclmanagement/scopes.spec.js +2 -2
- package/e2e-legacy/setup/aclmanagement/update-rules.spec.js +2 -2
- package/e2e-legacy/setup/jdbc/jdbc-create.spec.js +1 -1
- package/e2e-legacy/setup/settings/my-settings-initial-state.spec.js +2 -6
- package/e2e-legacy/setup/settings/my-settings.spec.js +1 -1
- package/e2e-legacy/setup/users-and-access/user-and-access.spec.js +706 -337
- package/e2e-legacy/sparql-editor/saved-query/readonly-query.spec.js +1 -1
- package/e2e-legacy/ttyg/agent-select-menu.spec.js +7 -1
- package/e2e-legacy/ttyg/chat-list.spec.js +1 -1
- package/e2e-legacy/ttyg/create-chat.spec.js +1 -1
- package/e2e-legacy/ttyg/edit-agent.spec.js +2 -2
- package/e2e-legacy/ttyg/ttyg-permission.spec.js +2 -1
- package/e2e-security/setup/users-and-access/create-user-permissions.spec.js +15 -15
- package/e2e-security/setup/users-and-access/graphql-user.spec.js +3 -3
- package/e2e-security/setup/users-and-access/repo-admin-role.spec.js +2 -2
- package/eslint.config.js +1 -0
- package/fixtures/ontop/university-complete_edited.obda +106 -0
- package/npm-shrinkwrap.json +448 -278
- package/package.json +5 -6
- package/steps/application-steps.js +1 -1
- package/steps/deprecation-banner/deprecation-banner-steps.js +13 -0
- package/steps/deprecation-steps.js +13 -0
- package/steps/main-menu-steps.js +5 -1
- package/steps/ontop-repository-steps.js +20 -0
- package/steps/repository-steps.js +44 -3
- package/steps/resource/resource-steps.js +0 -8
- package/steps/setup/settings-steps.js +3 -3
- package/steps/setup/user-and-access-steps.js +84 -13
- package/steps/ttyg/ttyg-view-steps.js +15 -1
- package/stubs/repositories/repositories-stubs.js +4 -0
- package/stubs/security-stubs.js +4 -0
- package/support/security-command.js +43 -0
- package/cypress-guides.config.js +0 -45
- package/e2e-legacy/reactodia/reactodia.spec.js +0 -96
- 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
|
-
|
|
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
|
-
|
|
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.
|
|
42
|
-
UserAndAccessSteps.
|
|
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.
|
|
59
|
-
UserAndAccessSteps.
|
|
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.
|
|
69
|
-
UserAndAccessSteps.
|
|
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.
|
|
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.
|
|
100
|
-
UserAndAccessSteps.
|
|
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.
|
|
120
|
-
UserAndAccessSteps.
|
|
121
|
-
UserAndAccessSteps.
|
|
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.
|
|
163
|
-
UserAndAccessSteps.
|
|
164
|
-
UserAndAccessSteps.
|
|
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.
|
|
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.
|
|
92
|
-
UserAndAccessSteps.
|
|
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.
|
|
28
|
-
UserAndAccessSteps.
|
|
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
|
@@ -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
|
+
|