@truedat/auth 4.44.1 → 4.44.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.44.4] 2022-05-19
4
+
5
+ ### Changed
6
+
7
+ - Use `lowerDeburrTrim` function from `@truedat/core`
8
+
3
9
  ## [4.43.3] 2022-05-04
4
10
 
5
11
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/auth",
3
- "version": "4.44.1",
3
+ "version": "4.44.4",
4
4
  "description": "Truedat Web Auth",
5
5
  "sideEffects": false,
6
6
  "jsnext:main": "src/index.js",
@@ -34,7 +34,7 @@
34
34
  "@testing-library/jest-dom": "^5.14.1",
35
35
  "@testing-library/react": "^12.0.0",
36
36
  "@testing-library/user-event": "^13.2.1",
37
- "@truedat/test": "4.44.1",
37
+ "@truedat/test": "4.44.4",
38
38
  "babel-jest": "^27.0.6",
39
39
  "babel-plugin-dynamic-import-node": "^2.3.3",
40
40
  "babel-plugin-lodash": "^3.3.4",
@@ -84,7 +84,7 @@
84
84
  ]
85
85
  },
86
86
  "dependencies": {
87
- "@truedat/core": "4.44.1",
87
+ "@truedat/core": "4.44.4",
88
88
  "auth0-js": "^9.12.2",
89
89
  "immutable": "^4.0.0-rc.12",
90
90
  "jwt-decode": "^2.2.0",
@@ -106,5 +106,5 @@
106
106
  "react-dom": ">= 16.8.6 < 17",
107
107
  "semantic-ui-react": ">= 0.88.2 < 2.1"
108
108
  },
109
- "gitHead": "20d38381ed4cb6658d1122a4bff08a13fedc2d59"
109
+ "gitHead": "36fb183e1d22181e6a15b3bac2c01b39214eacdb"
110
110
  }
@@ -1,21 +1,22 @@
1
- import _ from "lodash/fp";
2
- import React, { useEffect, useCallback } from "react";
1
+ import React, { useEffect } from "react";
3
2
  import PropTypes from "prop-types";
4
- import { useSelector, useDispatch } from "react-redux";
3
+ import { connect } from "react-redux";
5
4
  import { Dimmer, Loader } from "semantic-ui-react";
6
-
7
5
  import { searchGroups, clearGroupsSearch } from "../routines";
8
6
 
9
- export const GroupsSearchLoader = ({ query, hideLoading }) => {
10
- const loading = useSelector(_.get("groupsSearchLoading"));
11
- const dispatch = useDispatch();
12
- const stableDispatch = useCallback(dispatch, []);
7
+ export const GroupsSearchLoader = ({
8
+ query,
9
+ hideLoading,
10
+ searchGroups,
11
+ clearGroupsSearch,
12
+ loading,
13
+ }) => {
13
14
  useEffect(() => {
14
- stableDispatch(searchGroups({ query }));
15
+ searchGroups({ query });
15
16
  return () => {
16
- stableDispatch(clearGroupsSearch());
17
+ clearGroupsSearch();
17
18
  };
18
- }, [stableDispatch, query]);
19
+ }, [query, searchGroups, clearGroupsSearch]);
19
20
  return loading && !hideLoading ? (
20
21
  <Dimmer active inverted>
21
22
  <Loader size="massive" inverted />
@@ -25,7 +26,16 @@ export const GroupsSearchLoader = ({ query, hideLoading }) => {
25
26
 
26
27
  GroupsSearchLoader.propTypes = {
27
28
  query: PropTypes.string,
28
- hideLoading: PropTypes.bool
29
+ hideLoading: PropTypes.bool,
30
+ loading: PropTypes.bool,
31
+ searchGroups: PropTypes.func,
32
+ clearGroupsSearch: PropTypes.func,
29
33
  };
30
34
 
31
- export default GroupsSearchLoader;
35
+ export const mapStateToProps = ({ groupsSearchLoading }) => ({
36
+ loading: groupsSearchLoading,
37
+ });
38
+
39
+ export default connect(null, { searchGroups, clearGroupsSearch })(
40
+ GroupsSearchLoader
41
+ );
@@ -1,16 +1,15 @@
1
1
  import React from "react";
2
- import { shallow } from "enzyme";
2
+ import { render } from "@truedat/test/render";
3
3
  import GroupsSearchLoader from "../GroupsSearchLoader";
4
4
 
5
- jest.mock("react-redux", () => ({
6
- ...jest.requireActual("react-redux"),
7
- useDispatch: jest.fn(),
8
- useSelector: jest.fn(selector => selector({ groupsSearchLoading: false }))
9
- }));
5
+ const renderOpts = { state: { groupsSearchLoading: false } };
10
6
 
11
7
  describe("<GroupsSearchLoader />", () => {
12
8
  it("matches the latest snapshot", () => {
13
- const wrapper = shallow(<GroupsSearchLoader query="abc" />);
14
- expect(wrapper).toMatchSnapshot();
9
+ const { container } = render(
10
+ <GroupsSearchLoader query="abc" />,
11
+ renderOpts
12
+ );
13
+ expect(container).toMatchSnapshot();
15
14
  });
16
15
  });
@@ -1,3 +1,3 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`<GroupsSearchLoader /> matches the latest snapshot 1`] = `""`;
3
+ exports[`<GroupsSearchLoader /> matches the latest snapshot 1`] = `<div />`;
@@ -1,29 +1,13 @@
1
1
  import React from "react";
2
- import { intl } from "@truedat/test/intl-stub";
3
- import { shallow } from "enzyme";
4
- import { createStore } from "redux";
5
- import { Provider } from "react-redux";
2
+ import { render } from "@truedat/test/render";
6
3
  import RoleSelector from "../RoleSelector";
7
4
 
8
- jest.mock("react-redux", () => ({
9
- ...jest.requireActual("react-redux"),
10
- useSelector: jest.fn(selector =>
11
- selector({ roles: [{ name: "test1", id: 1 }] })
12
- )
13
- }));
14
-
15
- // workaround for enzyme issue with React.useContext
16
- // see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
17
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
5
+ const renderOpts = { state: { roles: [{ name: "test1", id: 1 }] } };
18
6
 
19
7
  describe("<RoleSelector />", () => {
20
8
  it("matches the latest snapshot", () => {
21
- const store = createStore(() => ({}));
22
- const wrapper = shallow(
23
- <Provider store={store}>
24
- <RoleSelector />
25
- </Provider>
26
- );
27
- expect(wrapper).toMatchSnapshot();
9
+ const props = { onChange: jest.fn() };
10
+ const { container } = render(<RoleSelector {...props} />, renderOpts);
11
+ expect(container).toMatchSnapshot();
28
12
  });
29
13
  });
@@ -1,35 +1,54 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`<RoleSelector /> matches the latest snapshot 1`] = `
4
- <ContextProvider
5
- value={
6
- Object {
7
- "store": Object {
8
- "@@observable": [Function],
9
- "dispatch": [Function],
10
- "getState": [Function],
11
- "replaceReducer": [Function],
12
- "subscribe": [Function],
13
- },
14
- "subscription": Subscription {
15
- "handleChangeWrapper": [Function],
16
- "listeners": Object {
17
- "notify": [Function],
18
- },
19
- "onStateChange": [Function],
20
- "parentSub": undefined,
21
- "store": Object {
22
- "@@observable": [Function],
23
- "dispatch": [Function],
24
- "getState": [Function],
25
- "replaceReducer": [Function],
26
- "subscribe": [Function],
27
- },
28
- "unsubscribe": null,
29
- },
30
- }
31
- }
32
- >
33
- <Connect(RoleSelector) />
34
- </ContextProvider>
4
+ <div>
5
+ <div
6
+ class="field"
7
+ >
8
+ <div
9
+ aria-expanded="false"
10
+ class="ui search selection dropdown"
11
+ role="combobox"
12
+ >
13
+ <input
14
+ aria-autocomplete="list"
15
+ autocomplete="off"
16
+ class="search"
17
+ tabindex="0"
18
+ type="text"
19
+ value=""
20
+ />
21
+ <div
22
+ aria-atomic="true"
23
+ aria-live="polite"
24
+ class="divider default text"
25
+ role="alert"
26
+ >
27
+ Search Roles…
28
+ </div>
29
+ <i
30
+ aria-hidden="true"
31
+ class="dropdown icon"
32
+ />
33
+ <div
34
+ class="menu transition"
35
+ role="listbox"
36
+ >
37
+ <div
38
+ aria-checked="false"
39
+ aria-selected="true"
40
+ class="selected item"
41
+ role="option"
42
+ style="pointer-events: all;"
43
+ >
44
+ <span
45
+ class="text"
46
+ >
47
+ test1
48
+ </span>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
35
54
  `;
@@ -1,21 +1,22 @@
1
- import _ from "lodash/fp";
2
- import React, { useEffect, useCallback } from "react";
1
+ import React, { useEffect } from "react";
3
2
  import PropTypes from "prop-types";
4
- import { useSelector, useDispatch } from "react-redux";
3
+ import { connect } from "react-redux";
5
4
  import { Dimmer, Loader } from "semantic-ui-react";
6
-
7
5
  import { searchUsers, clearUsersSearch } from "../routines";
8
6
 
9
- export const UsersSearchLoader = ({ query, hideLoading }) => {
10
- const loading = useSelector(_.get("usersSearchLoading"));
11
- const dispatch = useDispatch();
12
- const stableDispatch = useCallback(dispatch, []);
7
+ export const UsersSearchLoader = ({
8
+ query,
9
+ hideLoading,
10
+ searchUsers,
11
+ clearUsersSearch,
12
+ loading,
13
+ }) => {
13
14
  useEffect(() => {
14
- stableDispatch(searchUsers({ query }));
15
+ searchUsers({ query });
15
16
  return () => {
16
- stableDispatch(clearUsersSearch());
17
+ clearUsersSearch();
17
18
  };
18
- }, [stableDispatch, query]);
19
+ }, [searchUsers, clearUsersSearch, query]);
19
20
  return loading && !hideLoading ? (
20
21
  <Dimmer active inverted>
21
22
  <Loader size="massive" inverted />
@@ -25,7 +26,16 @@ export const UsersSearchLoader = ({ query, hideLoading }) => {
25
26
 
26
27
  UsersSearchLoader.propTypes = {
27
28
  query: PropTypes.string,
28
- hideLoading: PropTypes.bool
29
+ hideLoading: PropTypes.bool,
30
+ searchUsers: PropTypes.func,
31
+ clearUsersSearch: PropTypes.func,
32
+ loading: PropTypes.bool,
29
33
  };
30
34
 
31
- export default UsersSearchLoader;
35
+ export const mapStateToProps = ({ usersSearchLoading: loading }) => ({
36
+ loading,
37
+ });
38
+
39
+ export default connect(mapStateToProps, { searchUsers, clearUsersSearch })(
40
+ UsersSearchLoader
41
+ );
@@ -1,31 +1,13 @@
1
1
  import React from "react";
2
- import { intl } from "@truedat/test/intl-stub";
3
- import { shallow } from "enzyme";
4
-
5
- import { createStore } from "redux";
6
- import { Provider } from "react-redux";
7
-
2
+ import { render } from "@truedat/test/render";
8
3
  import UserSelector from "../UserSelector";
9
4
 
10
- jest.mock("react-redux", () => ({
11
- ...jest.requireActual("react-redux"),
12
- useSelector: jest.fn(selector =>
13
- selector({ users: [{ full_name: "test1", id: 1 }] })
14
- )
15
- }));
16
-
17
- // workaround for enzyme issue with React.useContext
18
- // see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
19
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
5
+ const renderOpts = { users: [{ full_name: "test1", id: 1 }] };
20
6
 
21
7
  describe("<UserSelector />", () => {
22
8
  it("matches the latest snapshot", () => {
23
- const store = createStore(() => ({}));
24
- const wrapper = shallow(
25
- <Provider store={store}>
26
- <UserSelector />
27
- </Provider>
28
- );
29
- expect(wrapper).toMatchSnapshot();
9
+ const props = { onChange: jest.fn() };
10
+ const { container } = render(<UserSelector {...props} />, renderOpts);
11
+ expect(container).toMatchSnapshot();
30
12
  });
31
13
  });
@@ -1,16 +1,12 @@
1
1
  import React from "react";
2
- import { shallow } from "enzyme";
2
+ import { render } from "@truedat/test/render";
3
3
  import UsersSearchLoader from "../UsersSearchLoader";
4
4
 
5
- jest.mock("react-redux", () => ({
6
- ...jest.requireActual("react-redux"),
7
- useDispatch: jest.fn(),
8
- useSelector: jest.fn(selector => selector({ usersSearchLoading: false }))
9
- }));
5
+ const renderOpts = { state: { usersSearchLoading: false } };
10
6
 
11
7
  describe("<UsersSearchLoader />", () => {
12
8
  it("matches the latest snapshot", () => {
13
- const wrapper = shallow(<UsersSearchLoader query="abc" />);
14
- expect(wrapper).toMatchSnapshot();
9
+ const { container } = render(<UsersSearchLoader query="abc" />, renderOpts);
10
+ expect(container).toMatchSnapshot();
15
11
  });
16
12
  });
@@ -1,35 +1,46 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`<UserSelector /> matches the latest snapshot 1`] = `
4
- <ContextProvider
5
- value={
6
- Object {
7
- "store": Object {
8
- "@@observable": [Function],
9
- "dispatch": [Function],
10
- "getState": [Function],
11
- "replaceReducer": [Function],
12
- "subscribe": [Function],
13
- },
14
- "subscription": Subscription {
15
- "handleChangeWrapper": [Function],
16
- "listeners": Object {
17
- "notify": [Function],
18
- },
19
- "onStateChange": [Function],
20
- "parentSub": undefined,
21
- "store": Object {
22
- "@@observable": [Function],
23
- "dispatch": [Function],
24
- "getState": [Function],
25
- "replaceReducer": [Function],
26
- "subscribe": [Function],
27
- },
28
- "unsubscribe": null,
29
- },
30
- }
31
- }
32
- >
33
- <Connect(UserSelector) />
34
- </ContextProvider>
4
+ <div>
5
+ <div
6
+ class="field"
7
+ >
8
+ <div
9
+ aria-expanded="false"
10
+ class="ui search selection dropdown"
11
+ role="combobox"
12
+ >
13
+ <input
14
+ aria-autocomplete="list"
15
+ autocomplete="off"
16
+ class="search"
17
+ tabindex="0"
18
+ type="text"
19
+ value=""
20
+ />
21
+ <div
22
+ aria-atomic="true"
23
+ aria-live="polite"
24
+ class="divider default text"
25
+ role="alert"
26
+ >
27
+ Search users…
28
+ </div>
29
+ <i
30
+ aria-hidden="true"
31
+ class="dropdown icon"
32
+ />
33
+ <div
34
+ class="menu transition"
35
+ role="listbox"
36
+ >
37
+ <div
38
+ class="message"
39
+ >
40
+ No results found.
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
35
46
  `;
@@ -1,3 +1,3 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`<UsersSearchLoader /> matches the latest snapshot 1`] = `""`;
3
+ exports[`<UsersSearchLoader /> matches the latest snapshot 1`] = `<div />`;
@@ -1,9 +1,7 @@
1
1
  import _ from "lodash/fp";
2
- import { lowerDeburr } from "@truedat/core/services/sort";
2
+ import { lowerDeburrTrim } from "@truedat/core/services/sort";
3
3
 
4
- const lowerDeburrTrim = _.flow(_.trim, lowerDeburr);
5
-
6
- export const filterUsers = usersFilter =>
4
+ export const filterUsers = (usersFilter) =>
7
5
  lowerDeburrTrim(usersFilter)
8
6
  ? _.filter(
9
7
  _.flow(