@truedat/auth 7.5.9 → 7.5.10
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 +40 -64
- package/src/groups/components/EditGroup.js +0 -1
- package/src/groups/components/Group.js +0 -1
- package/src/groups/components/GroupBreadcrumbs.js +1 -2
- package/src/groups/components/GroupCard.js +3 -3
- package/src/groups/components/GroupCards.js +2 -3
- package/src/groups/components/GroupForm.js +0 -1
- package/src/groups/components/GroupLoader.js +19 -51
- package/src/groups/components/GroupUsers.js +4 -3
- package/src/groups/components/GroupUsersTable.js +4 -4
- package/src/groups/components/GroupsLoader.js +2 -2
- package/src/groups/components/GroupsSearchLoader.js +1 -1
- package/src/groups/components/NewGroup.js +0 -1
- package/src/groups/components/__tests__/Group.spec.js +0 -1
- package/src/groups/components/__tests__/GroupCard.spec.js +23 -7
- package/src/groups/components/__tests__/GroupCards.spec.js +9 -6
- package/src/groups/components/__tests__/GroupLoader.spec.js +71 -0
- package/src/groups/components/__tests__/GroupUsers.spec.js +8 -12
- package/src/groups/components/__tests__/GroupUsersTable.spec.js +34 -42
- package/src/groups/components/__tests__/GroupsSearchLoader.spec.js +0 -1
- package/src/groups/components/__tests__/__snapshots__/Group.spec.js.snap +1 -2
- package/src/groups/components/__tests__/__snapshots__/GroupCard.spec.js.snap +43 -94
- package/src/groups/components/__tests__/__snapshots__/GroupCards.spec.js.snap +118 -53
- package/src/groups/components/__tests__/__snapshots__/GroupLoader.spec.js.snap +11 -0
- package/src/groups/components/__tests__/__snapshots__/GroupUsers.spec.js.snap +38 -45
- package/src/groups/components/__tests__/__snapshots__/GroupUsersTable.spec.js.snap +121 -213
- package/src/groups/components/index.js +1 -1
- package/src/groups/sagas/__tests__/deleteGroupUser.spec.js +6 -6
- package/src/groups/sagas/deleteGroup.js +1 -1
- package/src/groups/sagas/deleteGroupUser.js +2 -2
- package/src/groups/sagas/fetchGroup.js +1 -1
- package/src/groups/sagas/updateGroup.js +1 -1
- package/src/roles/components/NewRole.js +0 -1
- package/src/roles/components/PermissionGroup.js +0 -1
- package/src/roles/components/Role.js +8 -3
- package/src/roles/components/RoleCards.js +2 -3
- package/src/roles/components/RoleForm.js +1 -1
- package/src/roles/components/RoleLoader.js +26 -39
- package/src/roles/components/RoleRoutes.js +29 -32
- package/src/roles/components/RoleSelector.js +0 -1
- package/src/roles/components/Roles.js +1 -3
- package/src/roles/components/RolesLoader.js +2 -2
- package/src/roles/components/__tests__/PermissionGroup.spec.js +7 -17
- package/src/roles/components/__tests__/Role.spec.js +0 -1
- package/src/roles/components/__tests__/RoleCards.spec.js +11 -10
- package/src/roles/components/__tests__/RoleRoutes.spec.js +53 -7
- package/src/roles/components/__tests__/RoleSelector.spec.js +0 -1
- package/src/roles/components/__tests__/Roles.spec.js +2 -3
- package/src/roles/components/__tests__/__snapshots__/PermissionGroup.spec.js.snap +3 -5
- package/src/roles/components/__tests__/__snapshots__/Role.spec.js.snap +4 -4
- package/src/roles/components/__tests__/__snapshots__/RoleCards.spec.js.snap +57 -127
- package/src/roles/components/__tests__/__snapshots__/RoleRoutes.spec.js.snap +38 -5
- package/src/roles/components/__tests__/__snapshots__/RoleSelector.spec.js.snap +1 -1
- package/src/roles/components/__tests__/__snapshots__/Roles.spec.js.snap +6 -3
- package/src/roles/components/index.js +1 -1
- package/src/roles/reducers/rolePermissions.js +1 -1
- package/src/roles/reducers/roleRedirect.js +1 -1
- package/src/roles/sagas/deleteRole.js +1 -1
- package/src/roles/sagas/fetchRole.js +1 -1
- package/src/roles/sagas/fetchRolePermissions.js +1 -1
- package/src/roles/sagas/updateRole.js +1 -1
- package/src/roles/sagas/updateRolePermissions.js +1 -1
- package/src/sessions/components/Auth0Callback.js +5 -4
- package/src/sessions/components/Auth0LoginButton.js +2 -2
- package/src/sessions/components/AuthMethodsLoader.js +10 -19
- package/src/sessions/components/LoginButtons.js +4 -4
- package/src/sessions/components/NonceCallback.js +21 -38
- package/src/sessions/components/OidcLoginButton.js +0 -1
- package/src/sessions/components/OpenIDConnect.js +5 -4
- package/src/sessions/components/PrivateRoute.js +25 -57
- package/src/sessions/components/ProxyLoginCallback.js +0 -2
- package/src/sessions/components/SamlCallback.js +0 -2
- package/src/sessions/components/UnauthorizedRoute.js +28 -31
- package/src/sessions/components/__tests__/Auth0LoginButton.spec.js +12 -12
- package/src/sessions/components/__tests__/AuthMethodsLoader.spec.js +15 -12
- package/src/sessions/components/__tests__/NonceCallback.spec.js +84 -0
- package/src/sessions/components/__tests__/OidcLoginButton.spec.js +10 -10
- package/src/sessions/components/__tests__/OpenIDConnect.spec.js +7 -8
- package/src/sessions/components/__tests__/PrivateRoute.spec.js +90 -0
- package/src/sessions/components/__tests__/UnauthorizedRoute.spec.js +88 -0
- package/src/sessions/components/__tests__/__snapshots__/Auth0LoginButton.spec.js.snap +22 -24
- package/src/sessions/components/__tests__/__snapshots__/NonceCallback.spec.js.snap +18 -0
- package/src/sessions/components/__tests__/__snapshots__/OidcLoginButton.spec.js.snap +18 -18
- package/src/sessions/components/__tests__/__snapshots__/PrivateRoute.spec.js.snap +9 -0
- package/src/sessions/components/__tests__/__snapshots__/UnauthorizedRoute.spec.js.snap +9 -0
- package/src/sessions/components/index.js +1 -1
- package/src/sessions/sagas/__tests__/login.spec.js +4 -4
- package/src/sessions/sagas/__tests__/refresh.spec.js +2 -2
- package/src/sessions/sagas/__tests__/token.spec.js +4 -4
- package/src/sessions/sagas/login.js +5 -5
- package/src/sessions/sagas/refresh.js +2 -2
- package/src/sessions/sagas/token.js +2 -2
- package/src/users/components/AdminUserRoutes.js +35 -51
- package/src/users/components/EditUser.js +0 -1
- package/src/users/components/GroupUserCrumbs.js +8 -8
- package/src/users/components/InitialUser.js +0 -1
- package/src/users/components/NewUser.js +0 -1
- package/src/users/components/Password.js +0 -1
- package/src/users/components/User.js +2 -2
- package/src/users/components/UserAclRow.js +1 -2
- package/src/users/components/UserAcls.js +0 -1
- package/src/users/components/UserActions.js +1 -2
- package/src/users/components/UserBreadcrumbs.js +2 -3
- package/src/users/components/UserCard.js +3 -3
- package/src/users/components/UserCards.js +5 -4
- package/src/users/components/UserDomainsFilter.js +2 -5
- package/src/users/components/UserForm.js +8 -33
- package/src/users/components/UserGroupAclRow.js +1 -2
- package/src/users/components/UserGroupAcls.js +0 -1
- package/src/users/components/UserLoader.js +21 -48
- package/src/users/components/UserPassword.js +0 -1
- package/src/users/components/UserRoutes.js +73 -7
- package/src/users/components/UserSelector.js +0 -1
- package/src/users/components/UserTabs.js +1 -2
- package/src/users/components/UsersAndGroups.js +6 -6
- package/src/users/components/UsersLoader.js +2 -2
- package/src/users/components/UsersSearchLoader.js +2 -1
- package/src/users/components/__tests__/CanInitLoader.spec.js +6 -13
- package/src/users/components/__tests__/EditUser.spec.js +4 -33
- package/src/users/components/__tests__/InitialUser.spec.js +4 -34
- package/src/users/components/__tests__/NewUser.spec.js +4 -35
- package/src/users/components/__tests__/Password.spec.js +59 -69
- package/src/users/components/__tests__/User.spec.js +1 -2
- package/src/users/components/__tests__/UserAclRow.spec.js +5 -7
- package/src/users/components/__tests__/UserAcls.spec.js +8 -9
- package/src/users/components/__tests__/UserActions.spec.js +4 -5
- package/src/users/components/__tests__/UserCard.spec.js +11 -11
- package/src/users/components/__tests__/UserCards.spec.js +39 -31
- package/src/users/components/__tests__/UserDomainsFilter.spec.js +12 -22
- package/src/users/components/__tests__/UserForm.spec.js +24 -44
- package/src/users/components/__tests__/UserGroupAclRow.spec.js +1 -2
- package/src/users/components/__tests__/UserGroupAcls.spec.js +8 -9
- package/src/users/components/__tests__/UserLoader.spec.js +85 -0
- package/src/users/components/__tests__/UserPassword.spec.js +8 -21
- package/src/users/components/__tests__/UserRoutes.spec.js +129 -4
- package/src/users/components/__tests__/UserSelector.spec.js +0 -1
- package/src/users/components/__tests__/UsersAndGroups.spec.js +45 -5
- package/src/users/components/__tests__/UsersSearchLoader.spec.js +0 -1
- package/src/users/components/__tests__/__snapshots__/EditUser.spec.js.snap +23 -21
- package/src/users/components/__tests__/__snapshots__/InitialUser.spec.js.snap +22 -21
- package/src/users/components/__tests__/__snapshots__/NewUser.spec.js.snap +25 -23
- package/src/users/components/__tests__/__snapshots__/Password.spec.js.snap +8 -7
- package/src/users/components/__tests__/__snapshots__/User.spec.js.snap +7 -6
- package/src/users/components/__tests__/__snapshots__/UserAclRow.spec.js.snap +12 -11
- package/src/users/components/__tests__/__snapshots__/UserActions.spec.js.snap +56 -67
- package/src/users/components/__tests__/__snapshots__/UserCard.spec.js.snap +56 -70
- package/src/users/components/__tests__/__snapshots__/UserCards.spec.js.snap +117 -83
- package/src/users/components/__tests__/__snapshots__/UserDomainsFilter.spec.js.snap +2 -2
- package/src/users/components/__tests__/__snapshots__/UserForm.spec.js.snap +21 -20
- package/src/users/components/__tests__/__snapshots__/UserLoader.spec.js.snap +3 -0
- package/src/users/components/__tests__/__snapshots__/UserPassword.spec.js.snap +9 -7
- package/src/users/components/__tests__/__snapshots__/UserRoutes.spec.js.snap +170 -16
- package/src/users/components/__tests__/__snapshots__/UserSelector.spec.js.snap +1 -1
- package/src/users/components/__tests__/__snapshots__/UsersAndGroups.spec.js.snap +75 -14
- package/src/users/sagas/__tests__/fetchUser.spec.js +3 -5
- package/src/users/sagas/__tests__/updateUser.spec.js +1 -1
- package/src/users/sagas/deleteUser.js +1 -1
- package/src/users/sagas/fetchUser.js +1 -1
- package/src/users/sagas/updateUser.js +1 -1
- package/src/users/components/__tests__/__snapshots__/CanInitLoader.spec.js.snap +0 -3
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { waitFor } from "@testing-library/react";
|
|
3
2
|
import { render } from "@truedat/test/render";
|
|
4
3
|
import UserGroupAclRow from "../UserGroupAclRow";
|
|
@@ -7,7 +6,7 @@ describe("<UserGroupAclRow />", () => {
|
|
|
7
6
|
const props = {
|
|
8
7
|
resource: "resource1",
|
|
9
8
|
role: "role1",
|
|
10
|
-
group: "grupo1"
|
|
9
|
+
group: "grupo1",
|
|
11
10
|
};
|
|
12
11
|
|
|
13
12
|
it("matches the latest snapshot", async () => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import { waitFor } from "@testing-library/react";
|
|
3
2
|
import { render } from "@truedat/test/render";
|
|
4
3
|
import { UserGroupAcls } from "../UserGroupAcls";
|
|
@@ -8,8 +7,8 @@ const renderOpts = {
|
|
|
8
7
|
en: {
|
|
9
8
|
"user.acl.role": "role",
|
|
10
9
|
"user.acl.domain": "domain",
|
|
11
|
-
"user.acl": "acl"
|
|
12
|
-
}
|
|
10
|
+
"user.acl": "acl",
|
|
11
|
+
},
|
|
13
12
|
},
|
|
14
13
|
state: {
|
|
15
14
|
user: {
|
|
@@ -17,16 +16,16 @@ const renderOpts = {
|
|
|
17
16
|
{
|
|
18
17
|
resource: { id: 1, name: "resource1", type: "domain" },
|
|
19
18
|
role: { id: 2, name: "role1" },
|
|
20
|
-
group: { id: 6, name: "group1" }
|
|
19
|
+
group: { id: 6, name: "group1" },
|
|
21
20
|
},
|
|
22
21
|
{
|
|
23
22
|
resource: { id: 2, name: "resource2", type: "domain" },
|
|
24
23
|
role: { id: 3, name: "role2" },
|
|
25
|
-
group: { id: 3, name: "group2" }
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
}
|
|
24
|
+
group: { id: 3, name: "group2" },
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
30
29
|
};
|
|
31
30
|
|
|
32
31
|
describe("<UserGroupAcls />", () => {
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
|
+
import { useParams } from "react-router";
|
|
4
|
+
import UserLoader from "../UserLoader";
|
|
5
|
+
import { clearUser, fetchUser } from "../../routines";
|
|
6
|
+
|
|
7
|
+
jest.mock("react-router", () => ({
|
|
8
|
+
...jest.requireActual("react-router"),
|
|
9
|
+
useParams: jest.fn(),
|
|
10
|
+
}));
|
|
11
|
+
|
|
12
|
+
describe("<UserLoader />", () => {
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
useParams.mockReturnValue({ id: null });
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
jest.clearAllMocks();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("matches the latest snapshot", async () => {
|
|
22
|
+
const rendered = render(<UserLoader />, {
|
|
23
|
+
state: {
|
|
24
|
+
userLoading: false,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
await waitForLoad(rendered);
|
|
28
|
+
expect(rendered.container).toMatchSnapshot();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("dispatches clearUser when no id is provided", async () => {
|
|
32
|
+
const mockDispatch = jest.fn();
|
|
33
|
+
useParams.mockReturnValue({ id: null });
|
|
34
|
+
|
|
35
|
+
render(<UserLoader />, {
|
|
36
|
+
dispatch: mockDispatch,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
expect(mockDispatch).toHaveBeenCalledWith(clearUser());
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("dispatches fetchUser when id is provided", async () => {
|
|
43
|
+
const mockDispatch = jest.fn();
|
|
44
|
+
useParams.mockReturnValue({ id: "123" });
|
|
45
|
+
|
|
46
|
+
render(<UserLoader />, {
|
|
47
|
+
dispatch: mockDispatch,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
expect(mockDispatch).toHaveBeenCalledWith(fetchUser({ id: "123" }));
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("renders loading component when userLoading is true", async () => {
|
|
54
|
+
const rendered = render(<UserLoader />, {
|
|
55
|
+
state: {
|
|
56
|
+
userLoading: true,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
expect(rendered.container.firstChild).not.toBeNull();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it("renders nothing when userLoading is false", async () => {
|
|
64
|
+
const rendered = render(<UserLoader />, {
|
|
65
|
+
state: {
|
|
66
|
+
userLoading: false,
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
await waitForLoad(rendered);
|
|
70
|
+
|
|
71
|
+
expect(rendered.container.firstChild).toBeNull();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("dispatches clearUser on unmount", async () => {
|
|
75
|
+
const mockDispatch = jest.fn();
|
|
76
|
+
const { unmount } = render(<UserLoader />, {
|
|
77
|
+
dispatch: mockDispatch,
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
mockDispatch.mockClear();
|
|
81
|
+
unmount();
|
|
82
|
+
|
|
83
|
+
expect(mockDispatch).toHaveBeenCalledWith(clearUser());
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -1,37 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { waitFor } from "@testing-library/react";
|
|
3
|
-
import { render } from "@truedat/test/render";
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
4
2
|
import { UserPassword } from "../UserPassword";
|
|
5
3
|
|
|
6
4
|
const renderOpts = {
|
|
7
|
-
messages: {
|
|
8
|
-
en: {
|
|
9
|
-
"actions.cancel": "cancel",
|
|
10
|
-
"form.validation.minLength": "{prop} min length {value}",
|
|
11
|
-
"form.validation.required": "{prop} required",
|
|
12
|
-
"login.form.re_password.label": "re_password",
|
|
13
|
-
"navigation.members.users": "users",
|
|
14
|
-
"user.password.change": "change password",
|
|
15
|
-
"user.password.new_password": "new_password",
|
|
16
|
-
"user.password.save": "save"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
5
|
state: {
|
|
20
6
|
authentication: {
|
|
21
|
-
user_name: "foo"
|
|
22
|
-
}
|
|
23
|
-
}
|
|
7
|
+
user_name: "foo",
|
|
8
|
+
},
|
|
9
|
+
},
|
|
24
10
|
};
|
|
25
11
|
|
|
26
12
|
describe("<UserPassword />", () => {
|
|
27
13
|
const user = {
|
|
28
14
|
id: 1,
|
|
29
|
-
user_name: "joe"
|
|
15
|
+
user_name: "joe",
|
|
30
16
|
};
|
|
31
17
|
const props = { user };
|
|
32
18
|
|
|
33
19
|
it("matches the latest snapshot", async () => {
|
|
34
|
-
const
|
|
35
|
-
await
|
|
20
|
+
const rendered = render(<UserPassword {...props} />, renderOpts);
|
|
21
|
+
await waitForLoad(rendered);
|
|
22
|
+
expect(rendered.container).toMatchSnapshot();
|
|
36
23
|
});
|
|
37
24
|
});
|
|
@@ -1,10 +1,135 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
3
3
|
import { UserRoutes } from "../UserRoutes";
|
|
4
|
+
import { useAuthorized } from "@truedat/core/hooks/useAuthorized";
|
|
5
|
+
|
|
6
|
+
jest.mock("@truedat/core/hooks/useAuthorized", () => ({
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
}));
|
|
9
|
+
|
|
10
|
+
// Mock all components used in UserRoutes
|
|
11
|
+
jest.mock("../Password", () => () => <div>Password</div>);
|
|
12
|
+
jest.mock("../../../groups/components/GroupsLoader", () => () => (
|
|
13
|
+
<div>GroupsLoader</div>
|
|
14
|
+
));
|
|
15
|
+
jest.mock("../../../groups/components/GroupLoader", () => () => (
|
|
16
|
+
<div>GroupLoader</div>
|
|
17
|
+
));
|
|
18
|
+
jest.mock("../../../groups/components/Group", () => () => <div>Group</div>);
|
|
19
|
+
jest.mock("../../../groups/components/GroupUsers", () => () => (
|
|
20
|
+
<div>GroupUsers</div>
|
|
21
|
+
));
|
|
22
|
+
jest.mock("../../../groups/components/NewGroup", () => () => (
|
|
23
|
+
<div>NewGroup</div>
|
|
24
|
+
));
|
|
25
|
+
jest.mock("../../../groups/components/EditGroup", () => () => (
|
|
26
|
+
<div>EditGroup</div>
|
|
27
|
+
));
|
|
28
|
+
jest.mock("../EditUser", () => () => <div>EditUser</div>);
|
|
29
|
+
jest.mock("../GroupUserCrumbs", () => () => <div>GroupUserCrumbs</div>);
|
|
30
|
+
jest.mock("../NewUser", () => () => <div>NewUser</div>);
|
|
31
|
+
jest.mock("../User", () => () => <div>User</div>);
|
|
32
|
+
jest.mock("../UserLoader", () => () => <div>UserLoader</div>);
|
|
33
|
+
jest.mock("../UsersAndGroups", () => () => <div>UsersAndGroups</div>);
|
|
34
|
+
jest.mock("../UsersLoader", () => () => <div>UsersLoader</div>);
|
|
35
|
+
jest.mock("../UserPassword", () => () => <div>UserPassword</div>);
|
|
36
|
+
jest.mock("@truedat/core/router/Unauthorized", () => () => (
|
|
37
|
+
<div>Unauthorized</div>
|
|
38
|
+
));
|
|
4
39
|
|
|
5
40
|
describe("<UserRoutes />", () => {
|
|
6
|
-
it("
|
|
7
|
-
const
|
|
8
|
-
|
|
41
|
+
it("renders correctly with default route", async () => {
|
|
42
|
+
const rendered = render(<UserRoutes />);
|
|
43
|
+
await waitForLoad(rendered);
|
|
44
|
+
expect(rendered.container).toMatchSnapshot();
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it("renders correctly with users route", async () => {
|
|
48
|
+
const rendered = render(<UserRoutes />, {
|
|
49
|
+
routes: ["/users"],
|
|
50
|
+
});
|
|
51
|
+
await waitForLoad(rendered);
|
|
52
|
+
expect(rendered.container).toMatchSnapshot();
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("renders correctly with users/new route", async () => {
|
|
56
|
+
const rendered = render(<UserRoutes />, {
|
|
57
|
+
routes: ["/users/new"],
|
|
58
|
+
});
|
|
59
|
+
await waitForLoad(rendered);
|
|
60
|
+
expect(rendered.container).toMatchSnapshot();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it("renders correctly with users/:id route", async () => {
|
|
64
|
+
const rendered = render(<UserRoutes />, {
|
|
65
|
+
routes: ["/users/123"],
|
|
66
|
+
});
|
|
67
|
+
await waitForLoad(rendered);
|
|
68
|
+
expect(rendered.container).toMatchSnapshot();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it("renders correctly with users/:id/edit route", async () => {
|
|
72
|
+
const rendered = render(<UserRoutes />, {
|
|
73
|
+
routes: ["/users/123/edit"],
|
|
74
|
+
});
|
|
75
|
+
await waitForLoad(rendered);
|
|
76
|
+
expect(rendered.container).toMatchSnapshot();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("renders correctly with users/:id/password route", async () => {
|
|
80
|
+
const rendered = render(<UserRoutes />, {
|
|
81
|
+
routes: ["/users/123/password"],
|
|
82
|
+
});
|
|
83
|
+
await waitForLoad(rendered);
|
|
84
|
+
expect(rendered.container).toMatchSnapshot();
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it("renders correctly with groups route", async () => {
|
|
88
|
+
const rendered = render(<UserRoutes />, {
|
|
89
|
+
routes: ["/groups"],
|
|
90
|
+
});
|
|
91
|
+
await waitForLoad(rendered);
|
|
92
|
+
expect(rendered.container).toMatchSnapshot();
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("renders correctly with groups/new route", async () => {
|
|
96
|
+
const rendered = render(<UserRoutes />, {
|
|
97
|
+
routes: ["/groups/new"],
|
|
98
|
+
});
|
|
99
|
+
await waitForLoad(rendered);
|
|
100
|
+
expect(rendered.container).toMatchSnapshot();
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("renders correctly with groups/:id route", async () => {
|
|
104
|
+
const rendered = render(<UserRoutes />, {
|
|
105
|
+
routes: ["/groups/123"],
|
|
106
|
+
});
|
|
107
|
+
await waitForLoad(rendered);
|
|
108
|
+
expect(rendered.container).toMatchSnapshot();
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it("renders correctly with groups/:id/edit route", async () => {
|
|
112
|
+
const rendered = render(<UserRoutes />, {
|
|
113
|
+
routes: ["/groups/123/edit"],
|
|
114
|
+
});
|
|
115
|
+
await waitForLoad(rendered);
|
|
116
|
+
expect(rendered.container).toMatchSnapshot();
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it("renders correctly with PASSWORD route", async () => {
|
|
120
|
+
const rendered = render(<UserRoutes />, {
|
|
121
|
+
routes: ["/password"],
|
|
122
|
+
});
|
|
123
|
+
await waitForLoad(rendered);
|
|
124
|
+
expect(rendered.container).toMatchSnapshot();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("renders unauthorized component when not authorized", async () => {
|
|
128
|
+
useAuthorized.mockReturnValueOnce(false);
|
|
129
|
+
const rendered = render(<UserRoutes />, {
|
|
130
|
+
routes: ["/users"],
|
|
131
|
+
});
|
|
132
|
+
await waitForLoad(rendered);
|
|
133
|
+
expect(rendered.container).toMatchSnapshot();
|
|
9
134
|
});
|
|
10
135
|
});
|
|
@@ -1,10 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { render, waitForLoad } from "@truedat/test/render";
|
|
2
|
+
import { USERS, GROUPS } from "@truedat/core/routes";
|
|
3
3
|
import { UsersAndGroups } from "../UsersAndGroups";
|
|
4
4
|
|
|
5
|
+
// Mock the components used in UsersAndGroups
|
|
6
|
+
jest.mock(
|
|
7
|
+
"../UserCards",
|
|
8
|
+
() =>
|
|
9
|
+
function UserCards() {
|
|
10
|
+
return <div>UserCards</div>;
|
|
11
|
+
}
|
|
12
|
+
);
|
|
13
|
+
jest.mock(
|
|
14
|
+
"../UserTabs",
|
|
15
|
+
() =>
|
|
16
|
+
function UserTabs() {
|
|
17
|
+
return <div>UserTabs</div>;
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
jest.mock(
|
|
21
|
+
"../../../groups/components/GroupCards",
|
|
22
|
+
() =>
|
|
23
|
+
function GroupCards() {
|
|
24
|
+
return <div>GroupCards</div>;
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
|
|
5
28
|
describe("<UsersAndGroups />", () => {
|
|
6
|
-
it("
|
|
7
|
-
const
|
|
8
|
-
|
|
29
|
+
it("renders correctly with default route", async () => {
|
|
30
|
+
const rendered = render(<UsersAndGroups />);
|
|
31
|
+
await waitForLoad(rendered);
|
|
32
|
+
expect(rendered.container).toMatchSnapshot();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("renders UserCards on USERS route", async () => {
|
|
36
|
+
const rendered = render(<UsersAndGroups />, {
|
|
37
|
+
routes: [USERS],
|
|
38
|
+
});
|
|
39
|
+
await waitForLoad(rendered);
|
|
40
|
+
expect(rendered.container).toMatchSnapshot();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("renders GroupCards on GROUPS route", async () => {
|
|
44
|
+
const rendered = render(<UsersAndGroups />, {
|
|
45
|
+
routes: [GROUPS],
|
|
46
|
+
});
|
|
47
|
+
await waitForLoad(rendered);
|
|
48
|
+
expect(rendered.container).toMatchSnapshot();
|
|
9
49
|
});
|
|
10
50
|
});
|
|
@@ -7,9 +7,10 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
7
7
|
>
|
|
8
8
|
<a
|
|
9
9
|
class="section"
|
|
10
|
+
data-discover="true"
|
|
10
11
|
href="/users"
|
|
11
12
|
>
|
|
12
|
-
|
|
13
|
+
navigation.members.users
|
|
13
14
|
</a>
|
|
14
15
|
<i
|
|
15
16
|
aria-hidden="true"
|
|
@@ -18,7 +19,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
18
19
|
<div
|
|
19
20
|
class="active section"
|
|
20
21
|
>
|
|
21
|
-
edit
|
|
22
|
+
users.actions.edit
|
|
22
23
|
</div>
|
|
23
24
|
</div>
|
|
24
25
|
<div
|
|
@@ -34,7 +35,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
34
35
|
<div
|
|
35
36
|
class="content"
|
|
36
37
|
>
|
|
37
|
-
edit
|
|
38
|
+
users.actions.edit
|
|
38
39
|
</div>
|
|
39
40
|
</h2>
|
|
40
41
|
<form
|
|
@@ -46,7 +47,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
46
47
|
<label
|
|
47
48
|
for="user_name"
|
|
48
49
|
>
|
|
49
|
-
|
|
50
|
+
user.form.user_name
|
|
50
51
|
</label>
|
|
51
52
|
<div
|
|
52
53
|
class="ui input"
|
|
@@ -54,7 +55,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
54
55
|
<input
|
|
55
56
|
autocomplete="off"
|
|
56
57
|
id="user_name"
|
|
57
|
-
placeholder="
|
|
58
|
+
placeholder="user.form.placeholder.user_name"
|
|
58
59
|
required=""
|
|
59
60
|
type="text"
|
|
60
61
|
value="fred"
|
|
@@ -67,7 +68,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
67
68
|
<label
|
|
68
69
|
for="external_id"
|
|
69
70
|
>
|
|
70
|
-
|
|
71
|
+
user.form.external_id
|
|
71
72
|
</label>
|
|
72
73
|
<div
|
|
73
74
|
class="ui input"
|
|
@@ -75,7 +76,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
75
76
|
<input
|
|
76
77
|
autocomplete="off"
|
|
77
78
|
id="external_id"
|
|
78
|
-
placeholder="
|
|
79
|
+
placeholder="user.form.placeholder.external_id"
|
|
79
80
|
type="text"
|
|
80
81
|
value=""
|
|
81
82
|
/>
|
|
@@ -87,7 +88,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
87
88
|
<label
|
|
88
89
|
for="email"
|
|
89
90
|
>
|
|
90
|
-
|
|
91
|
+
user.form.email
|
|
91
92
|
</label>
|
|
92
93
|
<div
|
|
93
94
|
class="ui input"
|
|
@@ -95,7 +96,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
95
96
|
<input
|
|
96
97
|
autocomplete="off"
|
|
97
98
|
id="email"
|
|
98
|
-
placeholder="
|
|
99
|
+
placeholder="user.form.placeholder.email"
|
|
99
100
|
type="text"
|
|
100
101
|
value=""
|
|
101
102
|
/>
|
|
@@ -107,7 +108,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
107
108
|
<label
|
|
108
109
|
for="full_name"
|
|
109
110
|
>
|
|
110
|
-
|
|
111
|
+
user.form.full_name
|
|
111
112
|
</label>
|
|
112
113
|
<div
|
|
113
114
|
class="ui input"
|
|
@@ -115,7 +116,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
115
116
|
<input
|
|
116
117
|
autocomplete="off"
|
|
117
118
|
id="full_name"
|
|
118
|
-
placeholder="
|
|
119
|
+
placeholder="user.form.placeholder.full_name"
|
|
119
120
|
required=""
|
|
120
121
|
type="text"
|
|
121
122
|
value="fredrik foobar"
|
|
@@ -126,7 +127,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
126
127
|
class="required field"
|
|
127
128
|
>
|
|
128
129
|
<label>
|
|
129
|
-
role
|
|
130
|
+
user.form.role
|
|
130
131
|
</label>
|
|
131
132
|
<div
|
|
132
133
|
aria-expanded="false"
|
|
@@ -142,7 +143,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
142
143
|
class="divider text"
|
|
143
144
|
role="alert"
|
|
144
145
|
>
|
|
145
|
-
user
|
|
146
|
+
user.type.user
|
|
146
147
|
</div>
|
|
147
148
|
<i
|
|
148
149
|
aria-hidden="true"
|
|
@@ -161,7 +162,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
161
162
|
<span
|
|
162
163
|
class="text"
|
|
163
164
|
>
|
|
164
|
-
user
|
|
165
|
+
user.type.user
|
|
165
166
|
</span>
|
|
166
167
|
</div>
|
|
167
168
|
<div
|
|
@@ -174,7 +175,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
174
175
|
<span
|
|
175
176
|
class="text"
|
|
176
177
|
>
|
|
177
|
-
admin
|
|
178
|
+
user.type.admin
|
|
178
179
|
</span>
|
|
179
180
|
</div>
|
|
180
181
|
<div
|
|
@@ -187,7 +188,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
187
188
|
<span
|
|
188
189
|
class="text"
|
|
189
190
|
>
|
|
190
|
-
service
|
|
191
|
+
user.type.service
|
|
191
192
|
</span>
|
|
192
193
|
</div>
|
|
193
194
|
<div
|
|
@@ -200,7 +201,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
200
201
|
<span
|
|
201
202
|
class="text"
|
|
202
203
|
>
|
|
203
|
-
|
|
204
|
+
user.type.agent
|
|
204
205
|
</span>
|
|
205
206
|
</div>
|
|
206
207
|
</div>
|
|
@@ -210,7 +211,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
210
211
|
class="field"
|
|
211
212
|
>
|
|
212
213
|
<label>
|
|
213
|
-
|
|
214
|
+
user.form.groups
|
|
214
215
|
</label>
|
|
215
216
|
<div
|
|
216
217
|
aria-expanded="false"
|
|
@@ -235,7 +236,7 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
235
236
|
class="divider default text"
|
|
236
237
|
role="alert"
|
|
237
238
|
>
|
|
238
|
-
|
|
239
|
+
user.form.placeholder.groups
|
|
239
240
|
</div>
|
|
240
241
|
<i
|
|
241
242
|
aria-hidden="true"
|
|
@@ -269,14 +270,15 @@ exports[`<EditUser /> matches the latest snapshot 1`] = `
|
|
|
269
270
|
tabindex="-1"
|
|
270
271
|
type="submit"
|
|
271
272
|
>
|
|
272
|
-
save
|
|
273
|
+
actions.save
|
|
273
274
|
</button>
|
|
274
275
|
<a
|
|
275
276
|
class="ui secondary button"
|
|
277
|
+
data-discover="true"
|
|
276
278
|
href="/"
|
|
277
279
|
role="button"
|
|
278
280
|
>
|
|
279
|
-
cancel
|
|
281
|
+
actions.cancel
|
|
280
282
|
</a>
|
|
281
283
|
</div>
|
|
282
284
|
</form>
|