@truedat/ai 7.5.9 → 7.5.11

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.
Files changed (69) hide show
  1. package/package.json +39 -59
  2. package/src/components/AiRoutes.js +39 -46
  3. package/src/components/TranslationModal.js +8 -10
  4. package/src/components/__tests__/TranslationModal.spec.js +0 -1
  5. package/src/components/actions/Action.js +1 -2
  6. package/src/components/actions/ActionActions.js +4 -5
  7. package/src/components/actions/ActionBreadcrumbs.js +1 -2
  8. package/src/components/actions/ActionDetail.js +4 -3
  9. package/src/components/actions/ActionEdit.js +3 -3
  10. package/src/components/actions/ActionForm.js +7 -7
  11. package/src/components/actions/ActionNew.js +1 -1
  12. package/src/components/actions/Actions.js +1 -2
  13. package/src/components/actions/ActionsContext.js +3 -7
  14. package/src/components/actions/ActionsTable.js +1 -2
  15. package/src/components/actions/__tests__/Action.spec.js +14 -36
  16. package/src/components/actions/__tests__/ActionActions.spec.js +2 -20
  17. package/src/components/actions/__tests__/ActionBreadcrumbs.spec.js +1 -10
  18. package/src/components/actions/__tests__/ActionDetail.spec.js +5 -23
  19. package/src/components/actions/__tests__/ActionEdit.spec.js +7 -31
  20. package/src/components/actions/__tests__/ActionForm.spec.js +11 -27
  21. package/src/components/actions/__tests__/ActionNew.spec.js +7 -53
  22. package/src/components/actions/__tests__/Actions.spec.js +6 -15
  23. package/src/components/actions/__tests__/ActionsTable.spec.js +3 -23
  24. package/src/components/actions/__tests__/__snapshots__/Action.spec.js.snap +39 -11
  25. package/src/components/actions/__tests__/__snapshots__/ActionActions.spec.js.snap +4 -4
  26. package/src/components/actions/__tests__/__snapshots__/ActionBreadcrumbs.spec.js.snap +2 -1
  27. package/src/components/actions/__tests__/__snapshots__/ActionDetail.spec.js.snap +26 -3
  28. package/src/components/actions/__tests__/__snapshots__/ActionEdit.spec.js.snap +11 -73
  29. package/src/components/actions/__tests__/__snapshots__/ActionForm.spec.js.snap +91 -13
  30. package/src/components/actions/__tests__/__snapshots__/ActionNew.spec.js.snap +16 -263
  31. package/src/components/actions/__tests__/__snapshots__/Actions.spec.js.snap +5 -4
  32. package/src/components/actions/__tests__/__snapshots__/ActionsTable.spec.js.snap +7 -5
  33. package/src/components/aiSandbox/AiSandbox.js +3 -6
  34. package/src/components/aiSandbox/RequestForm.js +6 -4
  35. package/src/components/prompts/PromptEditor.js +1 -8
  36. package/src/components/prompts/Prompts.js +2 -6
  37. package/src/components/prompts/__tests__/PromptEditor.spec.js +62 -54
  38. package/src/components/prompts/__tests__/Prompts.spec.js +0 -2
  39. package/src/components/prompts/__tests__/__snapshots__/PromptEditor.spec.js.snap +115 -10
  40. package/src/components/providers/ProviderEditor.js +1 -5
  41. package/src/components/providers/Providers.js +1 -2
  42. package/src/components/providers/__tests__/ProviderEditor.spec.js +54 -75
  43. package/src/components/providers/__tests__/Providers.spec.js +0 -2
  44. package/src/components/providers/__tests__/__snapshots__/ProviderEditor.spec.js.snap +0 -4
  45. package/src/components/providers/providerProperties/AzureOpenai.js +0 -1
  46. package/src/components/providers/providerProperties/BedrockClaude.js +0 -1
  47. package/src/components/providers/providerProperties/Gemini.js +0 -1
  48. package/src/components/providers/providerProperties/Openai.js +0 -1
  49. package/src/components/resourceMappings/ResourceMappingEditor.js +2 -5
  50. package/src/components/resourceMappings/ResourceMappingFields.js +3 -2
  51. package/src/components/resourceMappings/ResourceMappings.js +4 -2
  52. package/src/components/resourceMappings/__tests__/ResourceMappingEditor.spec.js +51 -93
  53. package/src/components/resourceMappings/__tests__/ResourceMappings.spec.js +0 -2
  54. package/src/components/resourceMappings/__tests__/__snapshots__/ResourceMappingEditor.spec.js.snap +4 -4
  55. package/src/components/resourceMappings/selectors/DataStructureSelector.js +0 -1
  56. package/src/components/resourceMappings/selectors/index.js +0 -1
  57. package/src/components/suggestions/SuggestionsWidget.js +1 -1
  58. package/src/components/suggestions/__tests__/SuggestionsWidget.spec.js +3 -3
  59. package/src/components/suggestions/__tests__/__snapshots__/SuggestionsWidget.spec.js.snap +0 -3
  60. package/src/hooks/__mocks__/useActions.js +44 -0
  61. package/src/hooks/__mocks__/useSuggestions.js +5 -0
  62. package/src/hooks/__tests__/usePrompts.spec.js +5 -5
  63. package/src/hooks/__tests__/{useProviders.js → useProviders.spec.js} +5 -5
  64. package/src/hooks/__tests__/useResourceMappings.spec.js +5 -5
  65. package/src/hooks/useActions.js +5 -4
  66. package/src/hooks/usePrompts.js +6 -6
  67. package/src/hooks/useProviders.js +5 -5
  68. package/src/hooks/useResourceMappings.js +4 -4
  69. package/src/index.js +2 -1
@@ -1,6 +1,4 @@
1
- import React, { Suspense } from "react";
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 { TEMPLATES_QUERY } from "@truedat/core/api/queries";
5
3
  import ActionDetail from "../ActionDetail";
6
4
 
@@ -73,16 +71,6 @@ const action = {
73
71
  };
74
72
 
75
73
  const renderOpts = {
76
- messages: {
77
- en: {
78
- "ai.actions.search.results.empty": "Empty",
79
- "ai.actions.actions.create": "Create",
80
- "ai.actions.subheader": "AI actions",
81
- "ai.actions.header": "AI actions",
82
- "ai.actions.actions.form.user": "Agent",
83
- "ai.actions.form.type": "Type",
84
- },
85
- },
86
74
  mocks: [templatesMock],
87
75
  };
88
76
 
@@ -92,15 +80,9 @@ describe("<ActionDetail />", () => {
92
80
  };
93
81
 
94
82
  it("matches the latest snapshot", async () => {
95
- const { queryByText, container } = render(
96
- <Suspense fallback={null}>
97
- <ActionDetail {...props} />
98
- </Suspense>,
99
- renderOpts
100
- );
101
- await waitFor(() =>
102
- expect(queryByText(/Value One/i)).not.toBeInTheDocument()
103
- );
104
- expect(container).toMatchSnapshot();
83
+ const rendered = render(<ActionDetail {...props} />, renderOpts);
84
+ await waitForLoad(rendered);
85
+
86
+ expect(rendered.container).toMatchSnapshot();
105
87
  });
106
88
  });
@@ -1,6 +1,4 @@
1
- import React from "react";
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 { TEMPLATES_QUERY } from "@truedat/core/api/queries";
5
3
  import ActionEdit from "../ActionEdit";
6
4
 
@@ -13,8 +11,8 @@ jest.mock("@truedat/auth/hooks/useUsers", () => ({
13
11
  })),
14
12
  }));
15
13
 
16
- jest.mock("react-router-dom", () => ({
17
- ...jest.requireActual("react-router-dom"),
14
+ jest.mock("react-router", () => ({
15
+ ...jest.requireActual("react-router"),
18
16
  useParams: () => ({ id: "123" }),
19
17
  }));
20
18
 
@@ -95,26 +93,7 @@ jest.mock("@truedat/ai/hooks/useActions", () => ({
95
93
  })),
96
94
  }));
97
95
 
98
- const renderOpts = {
99
- messages: {
100
- en: {
101
- "actions.cancel": "Cancel",
102
- "actions.update": "Update",
103
- "ai.actions.actions.edit": "Edit Action",
104
- "ai.actions.actions.form.active": "Active",
105
- "ai.actions.actions.form.name": "Name",
106
- "ai.actions.actions.form.user": "Agent",
107
- "fields.dropdown.placeholder": "Select One...",
108
- loading: "Loading",
109
- "navigation.admin.actions": "Actions",
110
- "selector.no.selection": "No selection",
111
- "template.form.validation.empty_required": "Can't be empty",
112
- "template.selector.label": "Template",
113
- },
114
- },
115
- mocks: [templatesMock],
116
- fallback: "lazy",
117
- };
96
+ const renderOpts = { mocks: [templatesMock] };
118
97
 
119
98
  describe("<ActionEdit />", () => {
120
99
  const setActionResource = jest.fn();
@@ -122,12 +101,9 @@ describe("<ActionEdit />", () => {
122
101
  setActionResource,
123
102
  };
124
103
  it("matches the latest snapshot", async () => {
125
- const { container, queryByText } = render(
126
- <ActionEdit {...props} />,
127
- renderOpts
128
- );
104
+ const rendered = render(<ActionEdit {...props} />, renderOpts);
129
105
 
130
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
131
- expect(container).toMatchSnapshot();
106
+ await waitForLoad(rendered);
107
+ expect(rendered.container).toMatchSnapshot();
132
108
  });
133
109
  });
@@ -1,6 +1,4 @@
1
- import React, { Suspense } from "react";
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 { TEMPLATES_QUERY } from "@truedat/core/api/queries";
5
3
  import ActionForm from "../ActionForm";
6
4
 
@@ -80,14 +78,10 @@ describe("<ActionForm />", () => {
80
78
  isEnabled: true,
81
79
  onSubmit: jest.fn(),
82
80
  };
83
- const { container } = render(
84
- <Suspense fallback={null}>
85
- <ActionForm {...props} />
86
- </Suspense>,
87
- renderOpts
88
- );
81
+ const rendered = render(<ActionForm {...props} />, renderOpts);
89
82
 
90
- await waitFor(() => expect(container).toMatchSnapshot());
83
+ await waitForLoad(rendered);
84
+ expect(rendered.container).toMatchSnapshot();
91
85
  });
92
86
 
93
87
  it("create button disable if has empty data", async () => {
@@ -95,14 +89,10 @@ describe("<ActionForm />", () => {
95
89
  isEnabled: true,
96
90
  onSubmit: jest.fn(),
97
91
  };
98
- const { getByRole } = render(
99
- <Suspense fallback={null}>
100
- <ActionForm {...props} />
101
- </Suspense>,
102
- renderOpts
103
- );
92
+ const rendered = render(<ActionForm {...props} />, renderOpts);
104
93
 
105
- expect(getByRole("button", { name: /create/i })).not.toBeEnabled();
94
+ await waitForLoad(rendered);
95
+ expect(rendered.getByRole("button", { name: /create/i })).not.toBeEnabled();
106
96
  });
107
97
 
108
98
  it("matches the latest snapshot when is editing", async () => {
@@ -132,15 +122,9 @@ describe("<ActionForm />", () => {
132
122
  isEnabled: true,
133
123
  onSubmit: jest.fn(),
134
124
  };
135
- const { container, queryByText } = render(
136
- <Suspense fallback={null}>
137
- <ActionForm {...props} />
138
- </Suspense>,
139
- renderOpts
140
- );
141
- await waitFor(() =>
142
- expect(queryByText(/Loading/i)).not.toBeInTheDocument()
143
- );
144
- await waitFor(() => expect(container).toMatchSnapshot());
125
+ const rendered = render(<ActionForm {...props} />, renderOpts);
126
+
127
+ await waitForLoad(rendered);
128
+ expect(rendered.container).toMatchSnapshot();
145
129
  });
146
130
  });
@@ -1,6 +1,4 @@
1
- import React from "react";
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 { TEMPLATES_QUERY } from "@truedat/core/api/queries";
5
3
  import ActionNew from "../ActionNew";
6
4
 
@@ -56,24 +54,7 @@ const templatesMock = {
56
54
  };
57
55
 
58
56
  const renderOpts = {
59
- messages: {
60
- en: {
61
- "actions.cancel": "Cancel",
62
- "actions.create": "Create",
63
- "ai.actions.actions.create": "New Action",
64
- "ai.actions.actions.form.active": "Active",
65
- "ai.actions.actions.form.name": "Name",
66
- "ai.actions.actions.form.user": "Agent",
67
- "fields.dropdown.placeholder": "Select One...",
68
- loading: "Loading",
69
- "navigation.admin.actions": "Actions",
70
- "selector.no.selection": "No Selection",
71
- "template.form.validation.empty_required": "Can't be empty",
72
- "template.selector.label": "Template",
73
- },
74
- },
75
57
  mocks: [templatesMock],
76
- fallback: "lazy",
77
58
  };
78
59
 
79
60
  describe("<ActionNew />", () => {
@@ -82,30 +63,10 @@ describe("<ActionNew />", () => {
82
63
  setActionResource,
83
64
  };
84
65
  it("matches the latest snapshot", async () => {
85
- const { container, queryByText } = render(
86
- <ActionNew {...props} />,
87
- renderOpts
88
- );
89
-
90
- await waitFor(() => {
91
- expect(queryByText(/lazy/i)).not.toBeInTheDocument();
92
- expect(container.querySelector(".loader")).not.toBeInTheDocument();
93
- });
94
- expect(container).toMatchSnapshot();
95
- });
96
-
97
- it("matches the latest snapshot", async () => {
98
- const { container, queryByText } = render(
99
- <ActionNew {...props} />,
100
- renderOpts
101
- );
66
+ const rendered = render(<ActionNew {...props} />, renderOpts);
102
67
 
103
- await waitFor(() => {
104
- expect(queryByText(/lazy/i)).not.toBeInTheDocument();
105
- expect(container.querySelector(".loader")).not.toBeInTheDocument();
106
- });
107
-
108
- expect(container).toMatchSnapshot();
68
+ await waitForLoad(rendered);
69
+ expect(rendered.container).toMatchSnapshot();
109
70
  });
110
71
 
111
72
  it("create button is disable", async () => {
@@ -113,16 +74,9 @@ describe("<ActionNew />", () => {
113
74
  isEnabled: true,
114
75
  onSubmit: jest.fn(),
115
76
  };
116
- const { container, queryByText, getByRole } = render(
117
- <ActionNew {...props} />,
118
- renderOpts
119
- );
120
-
121
- await waitFor(() => {
122
- expect(queryByText(/lazy/i)).not.toBeInTheDocument();
123
- expect(container.querySelector(".loader")).not.toBeInTheDocument();
124
- });
77
+ const rendered = render(<ActionNew {...props} />, renderOpts);
125
78
 
126
- expect(getByRole("button", { name: /create/i })).not.toBeEnabled();
79
+ await waitForLoad(rendered);
80
+ expect(rendered.getByRole("button", { name: /create/i })).not.toBeEnabled();
127
81
  });
128
82
  });
@@ -1,21 +1,12 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import Actions from "../Actions";
4
3
 
5
- const renderOpts = {
6
- messages: {
7
- en: {
8
- "ai.actions.search.results.empty": "Empty",
9
- "ai.actions.actions.create": "Create",
10
- "ai.actions.subheader": "AI actions",
11
- "ai.actions.header": "AI actions",
12
- },
13
- },
14
- };
4
+ jest.mock("@truedat/ai/hooks/useActions");
15
5
 
16
6
  describe("<Actions />", () => {
17
- it("matches the latest snapshot", () => {
18
- const { container } = render(<Actions />, renderOpts);
19
- expect(container).toMatchSnapshot();
7
+ it("matches the latest snapshot", async () => {
8
+ const rendered = render(<Actions />);
9
+ await waitForLoad(rendered);
10
+ expect(rendered.container).toMatchSnapshot();
20
11
  });
21
12
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { ActionsContextProvider } from "../ActionsContext";
4
3
  import { ActionsTable } from "../ActionsTable";
@@ -6,7 +5,7 @@ import { ActionsTable } from "../ActionsTable";
6
5
  const data = {
7
6
  data: [
8
7
  {
9
- id: 1,
8
+ id: "1",
10
9
  name: "action_1",
11
10
  type: "bar",
12
11
  is_enabled: true,
@@ -14,7 +13,7 @@ const data = {
14
13
  updated_at: "2020-01-01T00:00:00.000Z",
15
14
  },
16
15
  {
17
- id: 2,
16
+ id: "2",
18
17
  name: "action_2",
19
18
  type: "foo",
20
19
  is_enabled: false,
@@ -41,31 +40,12 @@ const searchProps = {
41
40
  useSearch: useSearch,
42
41
  };
43
42
 
44
- const renderOpts = {
45
- messages: {
46
- en: {
47
- "ai.actions.search.results.empty": "Empty",
48
- "ai.actions.actions.create": "Create",
49
- "ai.actions.subheader": "AI actions",
50
- "ai.actions.header": "AI actions",
51
- "ai.actions.resource_type.structures": "structures",
52
- "ai.actions.is_enabled.true": "enabled",
53
- "ai.actions.is_enabled.false": "disabled",
54
- "ai.actions.form.user.full_name": "Agent",
55
- "ai.actions.form.is_enabled": "status",
56
- "ai.actions.form.name": "name",
57
- "ai.actions.form.type": "Type",
58
- },
59
- },
60
- };
61
-
62
43
  describe("<ActionsTable />", () => {
63
44
  it("matches the latest snapshot", () => {
64
45
  const { container } = render(
65
46
  <ActionsContextProvider {...searchProps}>
66
47
  <ActionsTable />
67
- </ActionsContextProvider>,
68
- renderOpts
48
+ </ActionsContextProvider>
69
49
  );
70
50
  expect(container).toMatchSnapshot();
71
51
  });
@@ -4,13 +4,13 @@ exports[`<Action /> matches the latest snapshot 1`] = `
4
4
  <div>
5
5
  <div
6
6
  class="ui breadcrumb"
7
- style="display: none;"
8
7
  >
9
8
  <a
10
9
  class="section"
10
+ data-discover="true"
11
11
  href="/tasks"
12
12
  >
13
- Actions
13
+ navigation.admin.actions
14
14
  </a>
15
15
  <i
16
16
  aria-hidden="true"
@@ -24,7 +24,6 @@ exports[`<Action /> matches the latest snapshot 1`] = `
24
24
  </div>
25
25
  <div
26
26
  class="ui segment"
27
- style="display: none;"
28
27
  >
29
28
  <div
30
29
  class="ui grid"
@@ -53,7 +52,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
53
52
  aria-hidden="true"
54
53
  class="green play fitted icon"
55
54
  />
56
- Active
55
+ ai.actions.is_enabled.true
57
56
  </p>
58
57
  </div>
59
58
  </div>
@@ -63,7 +62,6 @@ exports[`<Action /> matches the latest snapshot 1`] = `
63
62
  class="right aligned eight wide column"
64
63
  >
65
64
  <div
66
- aria-disabled="false"
67
65
  aria-expanded="false"
68
66
  class="ui floating dropdown button icon group-actions"
69
67
  role="listbox"
@@ -80,6 +78,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
80
78
  aria-checked="false"
81
79
  aria-selected="true"
82
80
  class="selected item"
81
+ data-discover="true"
83
82
  href="/tasks/3/edit"
84
83
  role="option"
85
84
  style="pointer-events: all;"
@@ -91,7 +90,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
91
90
  <span
92
91
  class="text"
93
92
  >
94
- Edit
93
+ ai.actions.actions.edit
95
94
  </span>
96
95
  </a>
97
96
  <button
@@ -101,7 +100,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
101
100
  aria-hidden="true"
102
101
  class="pause icon"
103
102
  />
104
- Disable
103
+ ai.actions.actions.disable
105
104
  </button>
106
105
  <button
107
106
  class="ui button"
@@ -110,7 +109,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
110
109
  aria-hidden="true"
111
110
  class="red trash alternate outline icon"
112
111
  />
113
- Delete
112
+ ai.actions.actions.delete
114
113
  </button>
115
114
  </div>
116
115
  </div>
@@ -130,7 +129,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
130
129
  <div
131
130
  class="header dynamic-field-header"
132
131
  >
133
- Agent
132
+ ai.actions.actions.form.user
134
133
  </div>
135
134
  <div
136
135
  class="content"
@@ -145,7 +144,7 @@ exports[`<Action /> matches the latest snapshot 1`] = `
145
144
  <div
146
145
  class="header dynamic-field-header"
147
146
  >
148
- Type
147
+ ai.actions.form.type
149
148
  </div>
150
149
  <div
151
150
  class="content"
@@ -154,8 +153,37 @@ exports[`<Action /> matches the latest snapshot 1`] = `
154
153
  </div>
155
154
  </div>
156
155
  </div>
156
+ <div
157
+ class="ui horizontal divider"
158
+ >
159
+ <h3>
160
+ g1
161
+ </h3>
162
+ </div>
163
+ <div
164
+ class="ui big very relaxed list"
165
+ role="list"
166
+ >
167
+ <div
168
+ class="item"
169
+ role="listitem"
170
+ >
171
+ <div
172
+ class="header dynamic-field-header"
173
+ >
174
+ field1
175
+ </div>
176
+ <div
177
+ class="description"
178
+ >
179
+ <i
180
+ aria-hidden="true"
181
+ class="grey minus icon"
182
+ />
183
+ </div>
184
+ </div>
185
+ </div>
157
186
  </div>
158
187
  </div>
159
- lazy
160
188
  </div>
161
189
  `;
@@ -3,7 +3,6 @@
3
3
  exports[`<ActionActions /> matches the latest snapshot 1`] = `
4
4
  <div>
5
5
  <div
6
- aria-disabled="false"
7
6
  aria-expanded="false"
8
7
  class="ui floating dropdown button icon group-actions"
9
8
  role="listbox"
@@ -20,6 +19,7 @@ exports[`<ActionActions /> matches the latest snapshot 1`] = `
20
19
  aria-checked="false"
21
20
  aria-selected="true"
22
21
  class="selected item"
22
+ data-discover="true"
23
23
  href="/tasks/3/edit"
24
24
  role="option"
25
25
  style="pointer-events: all;"
@@ -31,7 +31,7 @@ exports[`<ActionActions /> matches the latest snapshot 1`] = `
31
31
  <span
32
32
  class="text"
33
33
  >
34
- Edit
34
+ ai.actions.actions.edit
35
35
  </span>
36
36
  </a>
37
37
  <button
@@ -41,7 +41,7 @@ exports[`<ActionActions /> matches the latest snapshot 1`] = `
41
41
  aria-hidden="true"
42
42
  class="pause icon"
43
43
  />
44
- Disable
44
+ ai.actions.actions.disable
45
45
  </button>
46
46
  <button
47
47
  class="ui button"
@@ -50,7 +50,7 @@ exports[`<ActionActions /> matches the latest snapshot 1`] = `
50
50
  aria-hidden="true"
51
51
  class="red trash alternate outline icon"
52
52
  />
53
- Delete
53
+ ai.actions.actions.delete
54
54
  </button>
55
55
  </div>
56
56
  </div>
@@ -7,9 +7,10 @@ exports[`<ActionBreadcrumbs /> matches the latest snapshot 1`] = `
7
7
  >
8
8
  <a
9
9
  class="section"
10
+ data-discover="true"
10
11
  href="/tasks"
11
12
  >
12
- Actions
13
+ navigation.admin.actions
13
14
  </a>
14
15
  <i
15
16
  aria-hidden="true"
@@ -4,7 +4,6 @@ exports[`<ActionDetail /> matches the latest snapshot 1`] = `
4
4
  <div>
5
5
  <div
6
6
  class="ui bottom attached segment"
7
- style="display: none;"
8
7
  >
9
8
  <div
10
9
  class="ui big relaxed list"
@@ -17,7 +16,7 @@ exports[`<ActionDetail /> matches the latest snapshot 1`] = `
17
16
  <div
18
17
  class="header dynamic-field-header"
19
18
  >
20
- Agent
19
+ ai.actions.actions.form.user
21
20
  </div>
22
21
  <div
23
22
  class="content"
@@ -32,7 +31,7 @@ exports[`<ActionDetail /> matches the latest snapshot 1`] = `
32
31
  <div
33
32
  class="header dynamic-field-header"
34
33
  >
35
- Type
34
+ ai.actions.form.type
36
35
  </div>
37
36
  <div
38
37
  class="content"
@@ -41,6 +40,30 @@ exports[`<ActionDetail /> matches the latest snapshot 1`] = `
41
40
  </div>
42
41
  </div>
43
42
  </div>
43
+ <div
44
+ class="ui big very relaxed list"
45
+ role="list"
46
+ >
47
+ <div
48
+ class="item"
49
+ role="listitem"
50
+ >
51
+ <div
52
+ class="header dynamic-field-header"
53
+ >
54
+ Field Label
55
+ </div>
56
+ <div
57
+ class="description"
58
+ >
59
+ <div
60
+ class="default-value"
61
+ >
62
+ Value One
63
+ </div>
64
+ </div>
65
+ </div>
66
+ </div>
44
67
  </div>
45
68
  </div>
46
69
  `;