@truedat/core 6.3.0 → 6.3.2
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/package.json +4 -3
- package/src/api.js +2 -0
- package/src/components/AddMemberForm.js +178 -0
- package/src/components/AddResourceMember.js +27 -0
- package/src/components/AiMenu.js +3 -1
- package/src/components/ResourceMember.js +203 -0
- package/src/components/ResourceMembers.js +105 -0
- package/src/components/ResourceMembersActions.js +34 -0
- package/src/components/__tests__/AddMemberForm.spec.js +92 -0
- package/src/components/__tests__/AddResourceMember.spec.js +16 -0
- package/src/components/__tests__/ResourceMembers.spec.js +117 -0
- package/src/components/__tests__/ResourceMembersAction.spec.js +37 -0
- package/src/components/__tests__/__snapshots__/AddMemberForm.spec.js.snap +187 -0
- package/src/components/__tests__/__snapshots__/AddResourceMember.spec.js.snap +160 -0
- package/src/components/__tests__/__snapshots__/ResourceMembers.spec.js.snap +151 -0
- package/src/components/__tests__/__snapshots__/ResourceMembersAction.spec.js.snap +17 -0
- package/src/components/__tests__/__snapshots__/SideMenu.spec.js.snap +12 -0
- package/src/hooks/__tests__/useAclEntries.spec.js +143 -0
- package/src/hooks/useAclEntries.js +44 -0
- package/src/routes.js +10 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import { AddResourceMember } from "../AddResourceMember";
|
|
4
|
+
|
|
5
|
+
const props = {
|
|
6
|
+
type: "domain",
|
|
7
|
+
id: 1,
|
|
8
|
+
onSuccess: jest.fn(),
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
describe("<AddResourceMember />", () => {
|
|
12
|
+
it("matches the latest snapshot", () => {
|
|
13
|
+
const { container } = render(<AddResourceMember {...props} />);
|
|
14
|
+
expect(container).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import userEvent from "@testing-library/user-event";
|
|
3
|
+
import { render } from "@truedat/test/render";
|
|
4
|
+
import { intl } from "@truedat/test/intl-stub";
|
|
5
|
+
import { useAclEntries } from "@truedat/core/hooks/useAclEntries";
|
|
6
|
+
import { ResourceMembers } from "../ResourceMembers";
|
|
7
|
+
|
|
8
|
+
// workaround for enzyme issue with React.useContext
|
|
9
|
+
// see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
|
|
10
|
+
jest.spyOn(React, "useContext").mockImplementation(() => intl);
|
|
11
|
+
jest.mock("@truedat/core/hooks/useAclEntries");
|
|
12
|
+
jest.mock("react-router-dom", () => ({
|
|
13
|
+
...jest.requireActual("react-router-dom"),
|
|
14
|
+
useParams: () => ({ id: 1 }),
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
jest.mock("@truedat/core/hooks/useAclEntries", () => ({
|
|
18
|
+
...jest.requireActual("@truedat/core/hooks/useAclEntries"),
|
|
19
|
+
useAclEntries: jest.fn(),
|
|
20
|
+
useAclEntryUpdate: jest.fn().mockReturnValue({
|
|
21
|
+
trigger: jest.fn(),
|
|
22
|
+
}),
|
|
23
|
+
useAclEntryDelete: jest.fn().mockReturnValue({
|
|
24
|
+
trigger: jest.fn(),
|
|
25
|
+
}),
|
|
26
|
+
}));
|
|
27
|
+
|
|
28
|
+
describe("<ResourceMembers />", () => {
|
|
29
|
+
const aclEntries = {
|
|
30
|
+
aclEntries: [
|
|
31
|
+
{
|
|
32
|
+
principal_type: "group",
|
|
33
|
+
role_id: 2,
|
|
34
|
+
role_name: "data_owner",
|
|
35
|
+
principal: { description: "aaa bbb cc d", id: 2, name: "grupo1 " },
|
|
36
|
+
acl_entry_id: 1,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
principal: {
|
|
40
|
+
email: "test@test.com",
|
|
41
|
+
full_name: "Data Owner 2",
|
|
42
|
+
id: 14,
|
|
43
|
+
user_name: "data_owner2",
|
|
44
|
+
},
|
|
45
|
+
principal_type: "user",
|
|
46
|
+
role_id: 2,
|
|
47
|
+
role_name: "data_owner",
|
|
48
|
+
acl_entry_id: 2,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
principal: {
|
|
52
|
+
email: "test@test.com",
|
|
53
|
+
full_name: "Datos A",
|
|
54
|
+
id: 1,
|
|
55
|
+
user_name: "datos_a",
|
|
56
|
+
},
|
|
57
|
+
principal_type: "user",
|
|
58
|
+
role_id: 3,
|
|
59
|
+
role_name: "Datos A",
|
|
60
|
+
acl_entry_id: 3,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
principal: {
|
|
64
|
+
email: "test@test.com",
|
|
65
|
+
full_name: "Last U",
|
|
66
|
+
id: 1,
|
|
67
|
+
user_name: "last_u",
|
|
68
|
+
},
|
|
69
|
+
principal_type: "user",
|
|
70
|
+
role_id: 6,
|
|
71
|
+
role_name: "Last R",
|
|
72
|
+
acl_entry_id: 4,
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const props = { type: "domain" };
|
|
78
|
+
|
|
79
|
+
useAclEntries.mockReturnValue({
|
|
80
|
+
data: { ...aclEntries, actions: { canCreate: true } },
|
|
81
|
+
loading: false,
|
|
82
|
+
mutate: jest.fn(),
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
it("matches the latest snapshot", () => {
|
|
86
|
+
const { container } = render(<ResourceMembers {...props} />);
|
|
87
|
+
expect(container).toMatchSnapshot();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it("filters users and groups according to search filter", () => {
|
|
91
|
+
const { getByRole } = render(<ResourceMembers {...props} />);
|
|
92
|
+
|
|
93
|
+
const input = getByRole("textbox");
|
|
94
|
+
|
|
95
|
+
userEvent.type(input, "data");
|
|
96
|
+
expect(document.getElementsByClassName("card").length).toBe(2);
|
|
97
|
+
|
|
98
|
+
userEvent.type(input, " owner");
|
|
99
|
+
expect(document.getElementsByClassName("card").length).toBe(1);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it("renders users and groups grouped by role name", () => {
|
|
103
|
+
const { getByRole, queryByRole } = render(<ResourceMembers {...props} />);
|
|
104
|
+
|
|
105
|
+
expect(getByRole("heading", { name: /data_owner/i })).toBeInTheDocument();
|
|
106
|
+
expect(getByRole("heading", { name: /datos a/i })).toBeInTheDocument();
|
|
107
|
+
expect(getByRole("heading", { name: /last r/i })).toBeInTheDocument();
|
|
108
|
+
|
|
109
|
+
const input = getByRole("textbox");
|
|
110
|
+
|
|
111
|
+
userEvent.type(input, "data");
|
|
112
|
+
|
|
113
|
+
expect(getByRole("heading", { name: /data_owner/i })).toBeInTheDocument();
|
|
114
|
+
expect(queryByRole("heading", { name: /datos a/i })).toBeNull();
|
|
115
|
+
expect(queryByRole("heading", { name: /last r/i })).toBeNull();
|
|
116
|
+
});
|
|
117
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import { ResourceMembersActions } from "../ResourceMembersActions";
|
|
4
|
+
|
|
5
|
+
const props = {
|
|
6
|
+
resource: {
|
|
7
|
+
type: "domain",
|
|
8
|
+
id: 1,
|
|
9
|
+
},
|
|
10
|
+
actions: {
|
|
11
|
+
canCreate: true,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
describe("<ResourceMembersActions />", () => {
|
|
16
|
+
it("matches the latest snapshot", () => {
|
|
17
|
+
const { container } = render(<ResourceMembersActions {...props} />);
|
|
18
|
+
expect(container).toMatchSnapshot();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("render actions button if canCreate is true", () => {
|
|
22
|
+
const { getByRole } = render(<ResourceMembersActions {...props} />);
|
|
23
|
+
expect(getByRole("button", { name: /add/i })).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it("no render actions button if canCreate is false", () => {
|
|
27
|
+
const customProps = {
|
|
28
|
+
...props,
|
|
29
|
+
actions: {
|
|
30
|
+
canCreate: false,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const { queryByRole } = render(<ResourceMembersActions {...customProps} />);
|
|
35
|
+
expect(queryByRole("button", { name: /add/i })).toBeNull();
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<AddMemberForm /> matches the latest snapshot 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<form
|
|
6
|
+
class="ui form"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
class="required field"
|
|
10
|
+
>
|
|
11
|
+
<label
|
|
12
|
+
for="principal"
|
|
13
|
+
>
|
|
14
|
+
domain.member
|
|
15
|
+
</label>
|
|
16
|
+
<div
|
|
17
|
+
aria-expanded="false"
|
|
18
|
+
class="ui search selection dropdown"
|
|
19
|
+
required=""
|
|
20
|
+
role="combobox"
|
|
21
|
+
>
|
|
22
|
+
<input
|
|
23
|
+
aria-autocomplete="list"
|
|
24
|
+
autocomplete="off"
|
|
25
|
+
class="search"
|
|
26
|
+
tabindex="0"
|
|
27
|
+
type="text"
|
|
28
|
+
value=""
|
|
29
|
+
/>
|
|
30
|
+
<div
|
|
31
|
+
aria-atomic="true"
|
|
32
|
+
aria-live="polite"
|
|
33
|
+
class="divider default text"
|
|
34
|
+
role="alert"
|
|
35
|
+
>
|
|
36
|
+
domain.member
|
|
37
|
+
</div>
|
|
38
|
+
<i
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
class="dropdown icon"
|
|
41
|
+
/>
|
|
42
|
+
<div
|
|
43
|
+
class="menu transition"
|
|
44
|
+
role="listbox"
|
|
45
|
+
>
|
|
46
|
+
<div
|
|
47
|
+
aria-checked="false"
|
|
48
|
+
aria-selected="true"
|
|
49
|
+
class="selected item"
|
|
50
|
+
id="1"
|
|
51
|
+
role="option"
|
|
52
|
+
style="pointer-events: all;"
|
|
53
|
+
>
|
|
54
|
+
<span
|
|
55
|
+
class="text"
|
|
56
|
+
>
|
|
57
|
+
john
|
|
58
|
+
</span>
|
|
59
|
+
</div>
|
|
60
|
+
<div
|
|
61
|
+
aria-checked="false"
|
|
62
|
+
aria-selected="false"
|
|
63
|
+
class="item"
|
|
64
|
+
id="2"
|
|
65
|
+
role="option"
|
|
66
|
+
style="pointer-events: all;"
|
|
67
|
+
>
|
|
68
|
+
<span
|
|
69
|
+
class="text"
|
|
70
|
+
>
|
|
71
|
+
mambo
|
|
72
|
+
</span>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</div>
|
|
77
|
+
<div
|
|
78
|
+
class="required field"
|
|
79
|
+
>
|
|
80
|
+
<label
|
|
81
|
+
for="role"
|
|
82
|
+
>
|
|
83
|
+
domain.role
|
|
84
|
+
</label>
|
|
85
|
+
<div
|
|
86
|
+
aria-expanded="false"
|
|
87
|
+
class="ui basic search selection dropdown"
|
|
88
|
+
required=""
|
|
89
|
+
role="combobox"
|
|
90
|
+
>
|
|
91
|
+
<input
|
|
92
|
+
aria-autocomplete="list"
|
|
93
|
+
autocomplete="off"
|
|
94
|
+
class="search"
|
|
95
|
+
id="role"
|
|
96
|
+
tabindex="0"
|
|
97
|
+
type="text"
|
|
98
|
+
value=""
|
|
99
|
+
/>
|
|
100
|
+
<div
|
|
101
|
+
aria-atomic="true"
|
|
102
|
+
aria-live="polite"
|
|
103
|
+
class="divider default text"
|
|
104
|
+
role="alert"
|
|
105
|
+
>
|
|
106
|
+
domain.role
|
|
107
|
+
</div>
|
|
108
|
+
<i
|
|
109
|
+
aria-hidden="true"
|
|
110
|
+
class="dropdown icon"
|
|
111
|
+
/>
|
|
112
|
+
<div
|
|
113
|
+
class="menu transition"
|
|
114
|
+
role="listbox"
|
|
115
|
+
>
|
|
116
|
+
<div
|
|
117
|
+
aria-checked="false"
|
|
118
|
+
aria-selected="true"
|
|
119
|
+
class="selected item"
|
|
120
|
+
role="option"
|
|
121
|
+
style="pointer-events: all;"
|
|
122
|
+
>
|
|
123
|
+
<span
|
|
124
|
+
class="text"
|
|
125
|
+
>
|
|
126
|
+
role1
|
|
127
|
+
</span>
|
|
128
|
+
</div>
|
|
129
|
+
<div
|
|
130
|
+
aria-checked="false"
|
|
131
|
+
aria-selected="false"
|
|
132
|
+
class="item"
|
|
133
|
+
role="option"
|
|
134
|
+
style="pointer-events: all;"
|
|
135
|
+
>
|
|
136
|
+
<span
|
|
137
|
+
class="text"
|
|
138
|
+
>
|
|
139
|
+
role2
|
|
140
|
+
</span>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
<div
|
|
146
|
+
class="field"
|
|
147
|
+
>
|
|
148
|
+
<label
|
|
149
|
+
for="description"
|
|
150
|
+
>
|
|
151
|
+
domain.role.member.description
|
|
152
|
+
</label>
|
|
153
|
+
<div
|
|
154
|
+
class="ui input"
|
|
155
|
+
>
|
|
156
|
+
<input
|
|
157
|
+
autocomplete="off"
|
|
158
|
+
id="description"
|
|
159
|
+
maxlength="120"
|
|
160
|
+
placeholder="domain.role.member.description"
|
|
161
|
+
type="text"
|
|
162
|
+
value=""
|
|
163
|
+
/>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
<div
|
|
167
|
+
class="actions"
|
|
168
|
+
>
|
|
169
|
+
<button
|
|
170
|
+
class="ui primary disabled right floated button"
|
|
171
|
+
disabled=""
|
|
172
|
+
tabindex="-1"
|
|
173
|
+
type="submit"
|
|
174
|
+
>
|
|
175
|
+
domain.actions.add_member
|
|
176
|
+
</button>
|
|
177
|
+
<a
|
|
178
|
+
class="ui secondary button"
|
|
179
|
+
href="/"
|
|
180
|
+
role="button"
|
|
181
|
+
>
|
|
182
|
+
actions.cancel
|
|
183
|
+
</a>
|
|
184
|
+
</div>
|
|
185
|
+
</form>
|
|
186
|
+
</div>
|
|
187
|
+
`;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<AddResourceMember /> matches the latest snapshot 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="ui segment ui text container"
|
|
7
|
+
>
|
|
8
|
+
<h2
|
|
9
|
+
class="ui header"
|
|
10
|
+
>
|
|
11
|
+
<i
|
|
12
|
+
aria-hidden="true"
|
|
13
|
+
class="id card outline icon"
|
|
14
|
+
/>
|
|
15
|
+
<div
|
|
16
|
+
class="content"
|
|
17
|
+
>
|
|
18
|
+
Add
|
|
19
|
+
</div>
|
|
20
|
+
</h2>
|
|
21
|
+
<form
|
|
22
|
+
class="ui form"
|
|
23
|
+
>
|
|
24
|
+
<div
|
|
25
|
+
class="required field"
|
|
26
|
+
>
|
|
27
|
+
<label
|
|
28
|
+
for="principal"
|
|
29
|
+
>
|
|
30
|
+
Member
|
|
31
|
+
</label>
|
|
32
|
+
<div
|
|
33
|
+
aria-expanded="false"
|
|
34
|
+
class="ui search selection dropdown"
|
|
35
|
+
required=""
|
|
36
|
+
role="combobox"
|
|
37
|
+
>
|
|
38
|
+
<input
|
|
39
|
+
aria-autocomplete="list"
|
|
40
|
+
autocomplete="off"
|
|
41
|
+
class="search"
|
|
42
|
+
tabindex="0"
|
|
43
|
+
type="text"
|
|
44
|
+
value=""
|
|
45
|
+
/>
|
|
46
|
+
<div
|
|
47
|
+
aria-atomic="true"
|
|
48
|
+
aria-live="polite"
|
|
49
|
+
class="divider default text"
|
|
50
|
+
role="alert"
|
|
51
|
+
>
|
|
52
|
+
Member
|
|
53
|
+
</div>
|
|
54
|
+
<i
|
|
55
|
+
aria-hidden="true"
|
|
56
|
+
class="dropdown icon"
|
|
57
|
+
/>
|
|
58
|
+
<div
|
|
59
|
+
class="menu transition"
|
|
60
|
+
role="listbox"
|
|
61
|
+
>
|
|
62
|
+
<div
|
|
63
|
+
class="message"
|
|
64
|
+
>
|
|
65
|
+
No results found.
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div
|
|
71
|
+
class="required field"
|
|
72
|
+
>
|
|
73
|
+
<label
|
|
74
|
+
for="role"
|
|
75
|
+
>
|
|
76
|
+
Role
|
|
77
|
+
</label>
|
|
78
|
+
<div
|
|
79
|
+
aria-expanded="false"
|
|
80
|
+
class="ui basic search selection dropdown"
|
|
81
|
+
required=""
|
|
82
|
+
role="combobox"
|
|
83
|
+
>
|
|
84
|
+
<input
|
|
85
|
+
aria-autocomplete="list"
|
|
86
|
+
autocomplete="off"
|
|
87
|
+
class="search"
|
|
88
|
+
id="role"
|
|
89
|
+
tabindex="0"
|
|
90
|
+
type="text"
|
|
91
|
+
value=""
|
|
92
|
+
/>
|
|
93
|
+
<div
|
|
94
|
+
aria-atomic="true"
|
|
95
|
+
aria-live="polite"
|
|
96
|
+
class="divider default text"
|
|
97
|
+
role="alert"
|
|
98
|
+
>
|
|
99
|
+
Role
|
|
100
|
+
</div>
|
|
101
|
+
<i
|
|
102
|
+
aria-hidden="true"
|
|
103
|
+
class="dropdown icon"
|
|
104
|
+
/>
|
|
105
|
+
<div
|
|
106
|
+
class="menu transition"
|
|
107
|
+
role="listbox"
|
|
108
|
+
>
|
|
109
|
+
<div
|
|
110
|
+
class="message"
|
|
111
|
+
>
|
|
112
|
+
No results found.
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
<div
|
|
118
|
+
class="field"
|
|
119
|
+
>
|
|
120
|
+
<label
|
|
121
|
+
for="description"
|
|
122
|
+
>
|
|
123
|
+
Description
|
|
124
|
+
</label>
|
|
125
|
+
<div
|
|
126
|
+
class="ui input"
|
|
127
|
+
>
|
|
128
|
+
<input
|
|
129
|
+
autocomplete="off"
|
|
130
|
+
id="description"
|
|
131
|
+
maxlength="120"
|
|
132
|
+
placeholder="Description"
|
|
133
|
+
type="text"
|
|
134
|
+
value=""
|
|
135
|
+
/>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
<div
|
|
139
|
+
class="actions"
|
|
140
|
+
>
|
|
141
|
+
<button
|
|
142
|
+
class="ui primary disabled right floated button"
|
|
143
|
+
disabled=""
|
|
144
|
+
tabindex="-1"
|
|
145
|
+
type="submit"
|
|
146
|
+
>
|
|
147
|
+
Add
|
|
148
|
+
</button>
|
|
149
|
+
<a
|
|
150
|
+
class="ui secondary button"
|
|
151
|
+
href="/"
|
|
152
|
+
role="button"
|
|
153
|
+
>
|
|
154
|
+
Cancel
|
|
155
|
+
</a>
|
|
156
|
+
</div>
|
|
157
|
+
</form>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
`;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<ResourceMembers /> matches the latest snapshot 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="ui centered one column grid"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
class="column"
|
|
10
|
+
>
|
|
11
|
+
<div
|
|
12
|
+
class="ui icon input"
|
|
13
|
+
>
|
|
14
|
+
<input
|
|
15
|
+
placeholder="user.search.placeholder"
|
|
16
|
+
type="text"
|
|
17
|
+
value=""
|
|
18
|
+
/>
|
|
19
|
+
<i
|
|
20
|
+
aria-hidden="true"
|
|
21
|
+
class="search link icon"
|
|
22
|
+
/>
|
|
23
|
+
</div>
|
|
24
|
+
<a
|
|
25
|
+
class="ui primary right floated button"
|
|
26
|
+
href="/domains/1/members/new"
|
|
27
|
+
role="button"
|
|
28
|
+
>
|
|
29
|
+
<i
|
|
30
|
+
aria-hidden="true"
|
|
31
|
+
class="add user icon"
|
|
32
|
+
/>
|
|
33
|
+
domain.actions.add_member
|
|
34
|
+
</a>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
<h3
|
|
38
|
+
class="ui dividing header"
|
|
39
|
+
>
|
|
40
|
+
data_owner
|
|
41
|
+
</h3>
|
|
42
|
+
<div
|
|
43
|
+
class="ui cards"
|
|
44
|
+
>
|
|
45
|
+
<div
|
|
46
|
+
class="ui card domain-member"
|
|
47
|
+
>
|
|
48
|
+
<div
|
|
49
|
+
class="content domain-member__content"
|
|
50
|
+
>
|
|
51
|
+
<div
|
|
52
|
+
class="header"
|
|
53
|
+
>
|
|
54
|
+
<i
|
|
55
|
+
aria-hidden="true"
|
|
56
|
+
class="users icon"
|
|
57
|
+
/>
|
|
58
|
+
grupo1
|
|
59
|
+
</div>
|
|
60
|
+
<div
|
|
61
|
+
class="description"
|
|
62
|
+
/>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
<div
|
|
66
|
+
class="ui card domain-member"
|
|
67
|
+
>
|
|
68
|
+
<div
|
|
69
|
+
class="content domain-member__content"
|
|
70
|
+
>
|
|
71
|
+
<div
|
|
72
|
+
class="header"
|
|
73
|
+
>
|
|
74
|
+
<i
|
|
75
|
+
aria-hidden="true"
|
|
76
|
+
class="user icon"
|
|
77
|
+
/>
|
|
78
|
+
Data Owner 2
|
|
79
|
+
</div>
|
|
80
|
+
<div
|
|
81
|
+
class="description"
|
|
82
|
+
>
|
|
83
|
+
data_owner2
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<h3
|
|
89
|
+
class="ui dividing header"
|
|
90
|
+
>
|
|
91
|
+
Datos A
|
|
92
|
+
</h3>
|
|
93
|
+
<div
|
|
94
|
+
class="ui cards"
|
|
95
|
+
>
|
|
96
|
+
<div
|
|
97
|
+
class="ui card domain-member"
|
|
98
|
+
>
|
|
99
|
+
<div
|
|
100
|
+
class="content domain-member__content"
|
|
101
|
+
>
|
|
102
|
+
<div
|
|
103
|
+
class="header"
|
|
104
|
+
>
|
|
105
|
+
<i
|
|
106
|
+
aria-hidden="true"
|
|
107
|
+
class="user icon"
|
|
108
|
+
/>
|
|
109
|
+
Datos A
|
|
110
|
+
</div>
|
|
111
|
+
<div
|
|
112
|
+
class="description"
|
|
113
|
+
>
|
|
114
|
+
datos_a
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
<h3
|
|
120
|
+
class="ui dividing header"
|
|
121
|
+
>
|
|
122
|
+
Last R
|
|
123
|
+
</h3>
|
|
124
|
+
<div
|
|
125
|
+
class="ui cards"
|
|
126
|
+
>
|
|
127
|
+
<div
|
|
128
|
+
class="ui card domain-member"
|
|
129
|
+
>
|
|
130
|
+
<div
|
|
131
|
+
class="content domain-member__content"
|
|
132
|
+
>
|
|
133
|
+
<div
|
|
134
|
+
class="header"
|
|
135
|
+
>
|
|
136
|
+
<i
|
|
137
|
+
aria-hidden="true"
|
|
138
|
+
class="user icon"
|
|
139
|
+
/>
|
|
140
|
+
Last U
|
|
141
|
+
</div>
|
|
142
|
+
<div
|
|
143
|
+
class="description"
|
|
144
|
+
>
|
|
145
|
+
last_u
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`<ResourceMembersActions /> matches the latest snapshot 1`] = `
|
|
4
|
+
<div>
|
|
5
|
+
<a
|
|
6
|
+
class="ui primary right floated button"
|
|
7
|
+
href="/domains/1/members/new"
|
|
8
|
+
role="button"
|
|
9
|
+
>
|
|
10
|
+
<i
|
|
11
|
+
aria-hidden="true"
|
|
12
|
+
class="add user icon"
|
|
13
|
+
/>
|
|
14
|
+
Add
|
|
15
|
+
</a>
|
|
16
|
+
</div>
|
|
17
|
+
`;
|
|
@@ -361,6 +361,18 @@ exports[`<SideMenu /> matches the latest snapshot 1`] = `
|
|
|
361
361
|
>
|
|
362
362
|
prompts
|
|
363
363
|
</a>
|
|
364
|
+
<a
|
|
365
|
+
class="link item"
|
|
366
|
+
href="/providers"
|
|
367
|
+
>
|
|
368
|
+
providers
|
|
369
|
+
</a>
|
|
370
|
+
<a
|
|
371
|
+
class="link item"
|
|
372
|
+
href="/aiSandbox"
|
|
373
|
+
>
|
|
374
|
+
ai_sandbox
|
|
375
|
+
</a>
|
|
364
376
|
</div>
|
|
365
377
|
</div>
|
|
366
378
|
<div
|