@truedat/audit 8.12.2 → 8.12.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@truedat/audit",
3
- "version": "8.12.2",
3
+ "version": "8.12.5",
4
4
  "description": "Truedat Web Audit Module",
5
5
  "sideEffects": false,
6
6
  "module": "src/index.js",
@@ -54,7 +54,7 @@
54
54
  "@testing-library/jest-dom": "^6.6.3",
55
55
  "@testing-library/react": "^16.3.0",
56
56
  "@testing-library/user-event": "^14.6.1",
57
- "@truedat/test": "8.12.2",
57
+ "@truedat/test": "8.12.5",
58
58
  "identity-obj-proxy": "^3.0.0",
59
59
  "jest": "^29.7.0",
60
60
  "redux-saga-test-plan": "^4.0.6"
@@ -86,5 +86,5 @@
86
86
  "semantic-ui-react": "^3.0.0-beta.2",
87
87
  "swr": "^2.3.3"
88
88
  },
89
- "gitHead": "b0000f1b2727cad43ce3c3eb2fa29681488dd2ec"
89
+ "gitHead": "71dd08262e6c26dd25466154c49fadb7b3449bd7"
90
90
  }
@@ -56,21 +56,24 @@ const searchProps = {
56
56
  };
57
57
 
58
58
  describe("<SubscriptionForm />", () => {
59
+ beforeEach(() => jest.useRealTimers());
60
+
59
61
  it("matches the latest snapshot", async () => {
60
62
  const rendered = render(<SubscriptionForm />, renderOpts);
61
- await waitForLoad(rendered);
63
+ await waitForLoad(rendered, /loading/i, { timeout: 5000 });
62
64
  expect(rendered.container).toMatchSnapshot();
63
65
  });
64
66
 
65
- it("test SubscriptionForm functionality", async () => {
66
- const onSubmit = jest.fn();
67
- const props = { onSubmit };
68
- const rendered = render(
67
+ const renderWithSearchContext = (props = {}) =>
68
+ render(
69
69
  <SearchContextWrapper props={searchProps}>
70
70
  <SubscriptionForm {...props} />
71
71
  </SearchContextWrapper>,
72
72
  renderOpts,
73
73
  );
74
+
75
+ it("switches between role and email subscribers", async () => {
76
+ const rendered = renderWithSearchContext();
74
77
  await waitForLoad(rendered);
75
78
 
76
79
  const user = userEvent.setup({ delay: null });
@@ -79,29 +82,25 @@ describe("<SubscriptionForm />", () => {
79
82
  rendered.getByRole("button", { name: "actions.save" }),
80
83
  ).toBeDisabled();
81
84
 
82
- // Select role
83
85
  await user.click(rendered.getByText("role"));
84
-
85
- await waitFor(() =>
86
- expect(
87
- rendered.getByText(/role.search.placeholder/i),
88
- ).toBeInTheDocument(),
89
- );
90
-
91
86
  await user.click(await rendered.findByText(/role2/i));
92
87
 
93
- // Select email
94
88
  await user.click(rendered.getByText(/email/i));
89
+ const emailInput = (
90
+ await rendered.findByTestId("email-input")
91
+ ).querySelector("input");
92
+ await user.clear(emailInput);
93
+ await user.type(emailInput, "foo");
94
+ expect(emailInput).toHaveValue("foo");
95
+ });
95
96
 
96
- await waitFor(() =>
97
- expect(rendered.getByTestId("email-input")).toBeInTheDocument(),
98
- );
97
+ it("removes the concept selector when switching to a taxonomy role", async () => {
98
+ const rendered = renderWithSearchContext();
99
+ await waitForLoad(rendered);
99
100
 
100
- await user.type(rendered.getByTestId("email-input"), "foo");
101
+ const user = userEvent.setup({ delay: null });
101
102
 
102
- // Select concept and taxonomy_role
103
103
  await user.click(rendered.getByText("concept"));
104
-
105
104
  await waitFor(() =>
106
105
  expect(
107
106
  rendered.getByText(/concepts.search.results.empty/i),
@@ -109,52 +108,49 @@ describe("<SubscriptionForm />", () => {
109
108
  );
110
109
 
111
110
  await user.click(rendered.getByText("taxonomy_role"));
112
-
113
- await waitFor(() =>
114
- expect(
115
- rendered.getByText(/role.search.placeholder/i),
116
- ).toBeInTheDocument(),
117
- );
118
-
119
- // Wait for concepts.search.results.empty to disappear
120
111
  await rendered.findByText(/role2/i);
121
- expect(rendered.queryByText(/concepts.search.results.empty/i)).toBeFalsy();
122
-
123
- await user.click(await rendered.findByText(/role2/i));
124
-
125
- // Select user
126
- await user.click(rendered.getByText(/user/i));
112
+ expect(rendered.queryByText(/concepts.search.results.empty/i)).toBeNull();
113
+ await user.click(rendered.getByText(/role2/i));
114
+ });
127
115
 
128
- await waitFor(() =>
129
- expect(
130
- rendered.getByText(/user.search.placeholder/i),
131
- ).toBeInTheDocument(),
132
- );
116
+ it("shows empty concept and structure selectors", async () => {
117
+ const rendered = renderWithSearchContext();
118
+ await waitForLoad(rendered);
133
119
 
134
- await user.click(await rendered.findByText(/user2/i));
120
+ const user = userEvent.setup({ delay: null });
135
121
 
136
- // Test concepts
137
122
  await user.click(rendered.getByText("concept"));
138
-
139
123
  await waitFor(() =>
140
124
  expect(
141
125
  rendered.getByText(/concepts.search.results.empty/i),
142
126
  ).toBeInTheDocument(),
143
127
  );
144
128
 
145
- // Test structures
146
129
  await user.click(rendered.getByText(/structure/i));
147
-
148
- // Wait for loading to disappear
149
130
  await waitFor(() =>
150
131
  expect(
151
132
  rendered.getByText(/structures.not_found.body/i),
152
133
  ).toBeInTheDocument(),
153
134
  );
154
-
155
135
  expect(rendered.container.querySelector(".loading")).toBeNull();
136
+ });
156
137
 
157
- // Select domains
138
+ it("submits a subscription for a user and domain", async () => {
139
+ const onSubmit = jest.fn();
140
+ const rendered = render(
141
+ <SubscriptionForm onSubmit={onSubmit} />,
142
+ renderOpts,
143
+ );
144
+ await waitForLoad(rendered);
145
+
146
+ const user = userEvent.setup({ delay: null });
147
+
148
+ expect(
149
+ rendered.getByRole("button", { name: "actions.save" }),
150
+ ).toBeDisabled();
151
+
152
+ await user.click(rendered.getByText(/user/i));
153
+ await user.click(await rendered.findByText(/user2/i));
158
154
  await user.click(rendered.getByText(/domains/i));
159
155
 
160
156
  await waitFor(() =>