systemview 1.1.2 → 1.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.
Files changed (272) hide show
  1. package/api/connections.txt +1 -1
  2. package/build/asset-manifest.json +29 -0
  3. package/build/favicon.ico +0 -0
  4. package/build/index.html +1 -0
  5. package/build/logo192.png +0 -0
  6. package/build/logo512.png +0 -0
  7. package/build/manifest.json +25 -0
  8. package/build/robots.txt +3 -0
  9. package/build/static/css/main.fb15c45d.chunk.css +16 -0
  10. package/build/static/css/main.fb15c45d.chunk.css.map +1 -0
  11. package/build/static/js/2.b89d4ccd.chunk.js +3 -0
  12. package/build/static/js/2.b89d4ccd.chunk.js.LICENSE.txt +435 -0
  13. package/build/static/js/2.b89d4ccd.chunk.js.map +1 -0
  14. package/build/static/js/3.0571e5a9.chunk.js +2 -0
  15. package/build/static/js/3.0571e5a9.chunk.js.map +1 -0
  16. package/build/static/js/main.a47760bc.chunk.js +2 -0
  17. package/build/static/js/main.a47760bc.chunk.js.map +1 -0
  18. package/build/static/js/runtime-main.17d324d3.js +2 -0
  19. package/build/static/js/runtime-main.17d324d3.js.map +1 -0
  20. package/package.json +4 -3
  21. package/server.js +19 -0
  22. package/babel.config.js +0 -12
  23. package/src/App.css +0 -38
  24. package/src/App.js +0 -30
  25. package/src/ServiceContext.js +0 -9
  26. package/src/assets/arrow.png +0 -0
  27. package/src/assets/clear.png +0 -0
  28. package/src/assets/edit.png +0 -0
  29. package/src/assets/expand-arrow.svg +0 -41
  30. package/src/assets/expand-button.svg +0 -41
  31. package/src/assets/iconfinder-icon (1).svg +0 -14
  32. package/src/assets/iconfinder-icon.svg +0 -14
  33. package/src/assets/icons-save-60.png +0 -0
  34. package/src/assets/missing-doc.png +0 -0
  35. package/src/assets/saved-doc.png +0 -0
  36. package/src/assets/sysly.png +0 -0
  37. package/src/assets/test-missing.png +0 -0
  38. package/src/assets/test-saved.png +0 -0
  39. package/src/atoms/Button/Button.js +0 -20
  40. package/src/atoms/Button/Button.test.js +0 -27
  41. package/src/atoms/Button/__snapshots__/Button.test.js.snap +0 -9
  42. package/src/atoms/Button/styles.scss +0 -35
  43. package/src/atoms/Count/index.js +0 -10
  44. package/src/atoms/Count/styles.scss +0 -25
  45. package/src/atoms/DataTable/DataTable.js +0 -27
  46. package/src/atoms/DataTable/DataTable.test.js +0 -55
  47. package/src/atoms/DataTable/__snapshots__/DataTable.test.js.snap +0 -36
  48. package/src/atoms/DataTable/styles.scss +0 -28
  49. package/src/atoms/DescriptionBox/DescriptionBox.js +0 -24
  50. package/src/atoms/DescriptionBox/DescriptionBox.test.js +0 -36
  51. package/src/atoms/DescriptionBox/__snapshots__/DescriptionBox.test.js.snap +0 -14
  52. package/src/atoms/DescriptionBox/styles.scss +0 -24
  53. package/src/atoms/DescriptionText/DescriptionText.js +0 -12
  54. package/src/atoms/DescriptionText/DescriptionText.test.js +0 -22
  55. package/src/atoms/DescriptionText/styles.scss +0 -10
  56. package/src/atoms/DocsIcon/DocsIcon.js +0 -20
  57. package/src/atoms/DocsIcon/DocsIcon.test.js +0 -23
  58. package/src/atoms/DocsIcon/styles.scss +0 -7
  59. package/src/atoms/ExpandableIcon/ExpandableIcon.js +0 -30
  60. package/src/atoms/ExpandableIcon/ExpandableIcon.test.js +0 -18
  61. package/src/atoms/ExpandableIcon/styles.scss +0 -5
  62. package/src/atoms/JsonTextBox/JsonTextBox.js +0 -61
  63. package/src/atoms/JsonTextBox/JsonTextBox.test.js +0 -0
  64. package/src/atoms/JsonTextBox/styles.scss +0 -41
  65. package/src/atoms/Link/Link.js +0 -17
  66. package/src/atoms/Link/Link.test.js +0 -33
  67. package/src/atoms/Link/styles.scss +0 -8
  68. package/src/atoms/List/List.js +0 -8
  69. package/src/atoms/List/List.test.js +0 -26
  70. package/src/atoms/List/styles.scss +0 -9
  71. package/src/atoms/Markdown/Markdown.js +0 -48
  72. package/src/atoms/Markdown/styles.scss +0 -414
  73. package/src/atoms/RunTestIcon/index.js +0 -41
  74. package/src/atoms/RunTestIcon/styles.scss +0 -16
  75. package/src/atoms/SaveIcon/SaveIcon.js +0 -6
  76. package/src/atoms/SaveIcon/styles.scss +0 -3
  77. package/src/atoms/Selector/Selector.js +0 -28
  78. package/src/atoms/Selector/Selector.test.js +0 -0
  79. package/src/atoms/Selector/styles.scss +0 -1
  80. package/src/atoms/StatusIndicator/StatusIndicator.js +0 -16
  81. package/src/atoms/StatusIndicator/styles.scss +0 -33
  82. package/src/atoms/TestsIcon/TestsIcon.js +0 -17
  83. package/src/atoms/TestsIcon/TestsIcon.test.js +0 -18
  84. package/src/atoms/TestsIcon/styles.scss +0 -0
  85. package/src/atoms/Text/Text.js +0 -8
  86. package/src/atoms/Text/Text.test.js +0 -21
  87. package/src/atoms/Text/styles.scss +0 -0
  88. package/src/atoms/Textbox/Textbox.js +0 -33
  89. package/src/atoms/Textbox/Textbox.test.js +0 -23
  90. package/src/atoms/Textbox/styles.scss +0 -14
  91. package/src/atoms/Title/Title.js +0 -12
  92. package/src/atoms/Title/Title.test.js +0 -0
  93. package/src/atoms/Title/styles.scss +0 -6
  94. package/src/atoms/Toggle/Toggle.js +0 -13
  95. package/src/atoms/Toggle/Toggle.test.js +0 -0
  96. package/src/atoms/Toggle/styles.scss +0 -62
  97. package/src/atoms/TypeSelector/TypeSelector.js +0 -28
  98. package/src/atoms/TypeSelector/TypeSelector.test.js +0 -0
  99. package/src/atoms/TypeSelector/styles.scss +0 -9
  100. package/src/index.css +0 -20
  101. package/src/index.js +0 -24
  102. package/src/logo.svg +0 -7
  103. package/src/molecules/Args/Args.js +0 -302
  104. package/src/molecules/Args/Args.test.js +0 -0
  105. package/src/molecules/Args/styles.scss +0 -166
  106. package/src/molecules/AutoCompleteBox/AutoCompleteBox.js +0 -101
  107. package/src/molecules/AutoCompleteBox/AutoCompleteBox.test.js +0 -0
  108. package/src/molecules/AutoCompleteBox/styles.scss +0 -35
  109. package/src/molecules/DataTableForm/DataTableForm.js +0 -167
  110. package/src/molecules/DataTableForm/DataTableForm.test.js +0 -0
  111. package/src/molecules/DataTableForm/styles.scss +0 -51
  112. package/src/molecules/EditBox/EditBox.js +0 -49
  113. package/src/molecules/EditBox/EditBox.test.js +0 -0
  114. package/src/molecules/EditBox/styles.scss +0 -38
  115. package/src/molecules/ExpandableList/ExpandableList.js +0 -26
  116. package/src/molecules/ExpandableList/ExpandableList.test.js +0 -33
  117. package/src/molecules/ExpandableList/styles.scss +0 -18
  118. package/src/molecules/ExpandableSection/ExpandableSection.js +0 -36
  119. package/src/molecules/ExpandableSection/ExpandableSection.test.js +0 -0
  120. package/src/molecules/ExpandableSection/styles.scss +0 -22
  121. package/src/molecules/ServerModulesList/ServerModulesList.js +0 -75
  122. package/src/molecules/ServerModulesList/styles.scss +0 -28
  123. package/src/molecules/TargetSelector/TargetSelector.js +0 -34
  124. package/src/molecules/TargetSelector/TargetSelector.test.js +0 -0
  125. package/src/molecules/TargetSelector/styles.scss +0 -0
  126. package/src/molecules/TestCaption/TestCaption.js +0 -26
  127. package/src/molecules/TestCaption/TestCaption.test.js +0 -0
  128. package/src/molecules/TestCaption/styles.scss +0 -40
  129. package/src/molecules/TestSummary/index.js +0 -212
  130. package/src/molecules/TestSummary/styles.scss +0 -83
  131. package/src/molecules/TextWith2Links/TextWith2Links.js +0 -10
  132. package/src/molecules/TextWith2Links/styles.scss +0 -0
  133. package/src/molecules/ValidationInput/ValidationInput.js +0 -64
  134. package/src/molecules/ValidationInput/ValidationInput.test.js +0 -0
  135. package/src/molecules/ValidationInput/ValidationMessages.js +0 -178
  136. package/src/molecules/ValidationInput/ValidationOptions.js +0 -113
  137. package/src/molecules/ValidationInput/styles.scss +0 -74
  138. package/src/molecules/ValidationInput/validator.js +0 -244
  139. package/src/organisms/Documentation/Documentation.js +0 -128
  140. package/src/organisms/Documentation/Documentation.test.js +0 -0
  141. package/src/organisms/Documentation/styles.scss +0 -22
  142. package/src/organisms/MultiTestSection/MultiTestSection.js +0 -85
  143. package/src/organisms/MultiTestSection/MultiTestSection.test.js +0 -0
  144. package/src/organisms/MultiTestSection/styles.scss +0 -22
  145. package/src/organisms/SavedTests/SavedTests.js +0 -209
  146. package/src/organisms/SavedTests/SavedTests.test.js +0 -0
  147. package/src/organisms/SavedTests/styles.scss +0 -76
  148. package/src/organisms/SavedTests/transformTests.js +0 -51
  149. package/src/organisms/ScratchPad/ScratchPad.js +0 -128
  150. package/src/organisms/ScratchPad/ScratchPad.test.js +0 -0
  151. package/src/organisms/ScratchPad/styles.scss +0 -100
  152. package/src/organisms/SystemNavigator/SystemNavigator.js +0 -148
  153. package/src/organisms/SystemNavigator/SystemNavigator.test.js +0 -24
  154. package/src/organisms/SystemNavigator/styles.scss +0 -38
  155. package/src/organisms/TestContainer/TestContainer.js +0 -72
  156. package/src/organisms/TestContainer/TestContainer.test.js +0 -0
  157. package/src/organisms/TestContainer/styles.scss +0 -20
  158. package/src/organisms/TestPanel/AfterTest/AfterTest.js +0 -16
  159. package/src/organisms/TestPanel/AfterTest/AfterTest.test.js +0 -0
  160. package/src/organisms/TestPanel/AfterTest/styles.scss +0 -0
  161. package/src/organisms/TestPanel/BeforeTest/BeforeTest.js +0 -16
  162. package/src/organisms/TestPanel/BeforeTest/BeforeTest.test.js +0 -0
  163. package/src/organisms/TestPanel/BeforeTest/styles.scss +0 -0
  164. package/src/organisms/TestPanel/Evaluations.js +0 -369
  165. package/src/organisms/TestPanel/EventsTest/EventsTest.js +0 -19
  166. package/src/organisms/TestPanel/EventsTest/styles.scss +0 -0
  167. package/src/organisms/TestPanel/MainTest/MainTest.js +0 -20
  168. package/src/organisms/TestPanel/MainTest/MainTest.test.js +0 -0
  169. package/src/organisms/TestPanel/MainTest/styles.scss +0 -143
  170. package/src/organisms/TestPanel/TestPanel.js +0 -170
  171. package/src/organisms/TestPanel/TestPanel.test.js +0 -0
  172. package/src/organisms/TestPanel/components/Argument.class.js +0 -94
  173. package/src/organisms/TestPanel/components/FullTestController.js +0 -78
  174. package/src/organisms/TestPanel/components/Test.class.js +0 -162
  175. package/src/organisms/TestPanel/components/TestController.class.js +0 -135
  176. package/src/organisms/TestPanel/components/test-helpers.js +0 -109
  177. package/src/organisms/TestPanel/styles.scss +0 -45
  178. package/src/pages/SystemView/SystemView.js +0 -68
  179. package/src/pages/SystemView/styles.scss +0 -81
  180. package/src/reportWebVitals.js +0 -13
  181. package/src/sass/bootstrap/_alert.scss +0 -51
  182. package/src/sass/bootstrap/_badge.scss +0 -47
  183. package/src/sass/bootstrap/_breadcrumb.scss +0 -38
  184. package/src/sass/bootstrap/_button-group.scss +0 -166
  185. package/src/sass/bootstrap/_buttons.scss +0 -143
  186. package/src/sass/bootstrap/_card.scss +0 -270
  187. package/src/sass/bootstrap/_carousel.scss +0 -191
  188. package/src/sass/bootstrap/_close.scss +0 -34
  189. package/src/sass/bootstrap/_code.scss +0 -56
  190. package/src/sass/bootstrap/_custom-forms.scss +0 -297
  191. package/src/sass/bootstrap/_dropdown.scss +0 -131
  192. package/src/sass/bootstrap/_forms.scss +0 -333
  193. package/src/sass/bootstrap/_functions.scss +0 -86
  194. package/src/sass/bootstrap/_grid.scss +0 -52
  195. package/src/sass/bootstrap/_images.scss +0 -42
  196. package/src/sass/bootstrap/_input-group.scss +0 -159
  197. package/src/sass/bootstrap/_jumbotron.scss +0 -16
  198. package/src/sass/bootstrap/_list-group.scss +0 -115
  199. package/src/sass/bootstrap/_media.scss +0 -8
  200. package/src/sass/bootstrap/_mixins.scss +0 -42
  201. package/src/sass/bootstrap/_modal.scss +0 -168
  202. package/src/sass/bootstrap/_nav.scss +0 -118
  203. package/src/sass/bootstrap/_navbar.scss +0 -311
  204. package/src/sass/bootstrap/_pagination.scss +0 -77
  205. package/src/sass/bootstrap/_popover.scss +0 -183
  206. package/src/sass/bootstrap/_print.scss +0 -124
  207. package/src/sass/bootstrap/_progress.scss +0 -33
  208. package/src/sass/bootstrap/_reboot.scss +0 -482
  209. package/src/sass/bootstrap/_root.scss +0 -19
  210. package/src/sass/bootstrap/_tables.scss +0 -180
  211. package/src/sass/bootstrap/_tooltip.scss +0 -115
  212. package/src/sass/bootstrap/_transitions.scss +0 -36
  213. package/src/sass/bootstrap/_type.scss +0 -125
  214. package/src/sass/bootstrap/_utilities.scss +0 -14
  215. package/src/sass/bootstrap/_variables.scss +0 -894
  216. package/src/sass/bootstrap/bootstrap-grid.scss +0 -32
  217. package/src/sass/bootstrap/bootstrap-reboot.scss +0 -12
  218. package/src/sass/bootstrap/bootstrap.scss +0 -42
  219. package/src/sass/bootstrap/mixins/_alert.scss +0 -13
  220. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -21
  221. package/src/sass/bootstrap/mixins/_badge.scss +0 -12
  222. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -35
  223. package/src/sass/bootstrap/mixins/_box-shadow.scss +0 -5
  224. package/src/sass/bootstrap/mixins/_breakpoints.scss +0 -123
  225. package/src/sass/bootstrap/mixins/_buttons.scss +0 -109
  226. package/src/sass/bootstrap/mixins/_caret.scss +0 -65
  227. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -7
  228. package/src/sass/bootstrap/mixins/_float.scss +0 -11
  229. package/src/sass/bootstrap/mixins/_forms.scss +0 -137
  230. package/src/sass/bootstrap/mixins/_gradients.scss +0 -45
  231. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -67
  232. package/src/sass/bootstrap/mixins/_grid.scss +0 -52
  233. package/src/sass/bootstrap/mixins/_hover.scss +0 -39
  234. package/src/sass/bootstrap/mixins/_image.scss +0 -36
  235. package/src/sass/bootstrap/mixins/_list-group.scss +0 -21
  236. package/src/sass/bootstrap/mixins/_lists.scss +0 -7
  237. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  238. package/src/sass/bootstrap/mixins/_navbar-align.scss +0 -10
  239. package/src/sass/bootstrap/mixins/_pagination.scss +0 -22
  240. package/src/sass/bootstrap/mixins/_reset-text.scss +0 -17
  241. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  242. package/src/sass/bootstrap/mixins/_screen-reader.scss +0 -35
  243. package/src/sass/bootstrap/mixins/_size.scss +0 -6
  244. package/src/sass/bootstrap/mixins/_table-row.scss +0 -30
  245. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -14
  246. package/src/sass/bootstrap/mixins/_text-hide.scss +0 -9
  247. package/src/sass/bootstrap/mixins/_text-truncate.scss +0 -8
  248. package/src/sass/bootstrap/mixins/_transition.scss +0 -9
  249. package/src/sass/bootstrap/mixins/_visibility.scss +0 -7
  250. package/src/sass/bootstrap/utilities/_align.scss +0 -8
  251. package/src/sass/bootstrap/utilities/_background.scss +0 -19
  252. package/src/sass/bootstrap/utilities/_borders.scss +0 -59
  253. package/src/sass/bootstrap/utilities/_clearfix.scss +0 -3
  254. package/src/sass/bootstrap/utilities/_display.scss +0 -38
  255. package/src/sass/bootstrap/utilities/_embed.scss +0 -52
  256. package/src/sass/bootstrap/utilities/_flex.scss +0 -46
  257. package/src/sass/bootstrap/utilities/_float.scss +0 -9
  258. package/src/sass/bootstrap/utilities/_position.scss +0 -36
  259. package/src/sass/bootstrap/utilities/_screenreaders.scss +0 -11
  260. package/src/sass/bootstrap/utilities/_sizing.scss +0 -12
  261. package/src/sass/bootstrap/utilities/_spacing.scss +0 -51
  262. package/src/sass/bootstrap/utilities/_text.scss +0 -52
  263. package/src/sass/bootstrap/utilities/_visibility.scss +0 -11
  264. package/src/setupTests.js +0 -5
  265. /package/{src/assets/fonts/FontsFree-Net-SFMono-Regular.ttf → build/static/media/FontsFree-Net-SFMono-Regular.9647425e.ttf} +0 -0
  266. /package/{src/assets/fonts/Malkor-Regular.ttf → build/static/media/Malkor-Regular.f55d6a82.ttf} +0 -0
  267. /package/{src/assets/check.svg → build/static/media/check.c17549c7.svg} +0 -0
  268. /package/{src/assets/error.svg → build/static/media/error.1d9e99c1.svg} +0 -0
  269. /package/{src/assets/eval-icon.svg → build/static/media/eval-icon.c95744a8.svg} +0 -0
  270. /package/{src/assets/loading.gif → build/static/media/loading.10ca842f.gif} +0 -0
  271. /package/{src/assets/test-icon.svg → build/static/media/test-icon.2b1ada73.svg} +0 -0
  272. /package/{src/assets/x.svg → build/static/media/x.f680188c.svg} +0 -0
@@ -1,170 +0,0 @@
1
- import React, { useState, useContext, useEffect } from "react";
2
- import BeforeTest from "./BeforeTest/BeforeTest";
3
- import AfterTest from "./AfterTest/AfterTest";
4
- import MainTest from "./MainTest/MainTest";
5
- import EventsTest from "./EventsTest/EventsTest";
6
- import ServiceContext from "../../ServiceContext";
7
- import Test from "./components/Test.class";
8
- import TestController from "./components/TestController.class";
9
- import "./styles.scss";
10
- import RunTestIcon from "../../atoms/RunTestIcon";
11
- import SaveIcon from "../../atoms/SaveIcon/SaveIcon";
12
- import SavedTests from "../SavedTests/SavedTests";
13
- import { Client } from "systemlynx";
14
- import FullTestController from "./components/FullTestController";
15
- import Title from "../../atoms/Title/Title";
16
- import { CurrentTest } from "../../atoms/StatusIndicator/StatusIndicator";
17
-
18
- const FullTest = ({ serviceId, moduleName, methodName }) => {
19
- const namespace = { serviceId, moduleName, methodName };
20
- const { connectedServices } = useContext(ServiceContext);
21
- const serviceData = connectedServices.find(
22
- (service) => service.serviceId === serviceId
23
- );
24
- const { Plugin } = serviceData
25
- ? Client.createService(serviceData.system.connectionData)
26
- : {};
27
- const [Before, setTestBefore] = useState([]);
28
- const [After, setTestAfter] = useState([]);
29
- const [Main, setTestMain] = useState([new Test({ namespace, shouldValidate: true })]);
30
- const eventNamespace = { serviceId, moduleName, methodName: "on" };
31
- const [Events, setEventTest] = useState([]);
32
- const FullTest = [Before, Main, Events, After];
33
- const [savedTests, setSavedTests] = useState([]);
34
- const [saveResponse, setMessage] = useState({ message: "", error: false });
35
- window.Tests = FullTest;
36
- const testCtrl = (TestSection, setState, section, FullTest) =>
37
- new TestController({
38
- TestSection,
39
- setState,
40
- section,
41
- FullTest,
42
- connectedServices,
43
- });
44
- const MainCtrl = testCtrl(Main, setTestMain, 1, FullTest);
45
- const BeforeCtrl = testCtrl(Before, setTestBefore, 0, FullTest);
46
- const EventCtrl = testCtrl(Events, setEventTest, 2, FullTest);
47
- const AfterCtrl = testCtrl(After, setTestAfter, 3, FullTest);
48
-
49
- const { runFullTest, saveTests } = new FullTestController({
50
- FullTest,
51
- connectedServices,
52
- });
53
-
54
- const runTest = async () => {
55
- const tests = await runFullTest();
56
- setFullTest(tests);
57
- };
58
- const setFullTest = ([Before, Main, Events, After]) => {
59
- setTestMain([...Main]);
60
- setTestBefore([...Before]);
61
- setEventTest([...Events]);
62
- setTestAfter([...After]);
63
- };
64
- const clearMessage = () => setMessage({ error: false, message: "" });
65
- const save = async () => {
66
- const { error, message } = await saveTests();
67
-
68
- if (!error) {
69
- resetTests();
70
- //fetchTests();
71
- }
72
-
73
- setMessage({ error, message });
74
- setTimeout(clearMessage, 4000);
75
- };
76
-
77
- const fetchTests = async () => {
78
- try {
79
- if (Plugin) {
80
- const results = await Plugin.getTests(namespace);
81
- setSavedTests(results);
82
- }
83
- } catch (error) {
84
- return [];
85
- }
86
- };
87
- const resetTests = () => {
88
- setTestBefore([]);
89
- setTestAfter([]);
90
- setEventTest([]);
91
- //get connection for the main test and set state
92
- const test = new Test({ namespace, shouldValidate: true }).getConnection(
93
- connectedServices
94
- );
95
- setTestMain([test]);
96
- };
97
-
98
- useEffect(() => {
99
- resetTests();
100
- fetchTests();
101
- // eslint-disable-next-line react-hooks/exhaustive-deps
102
- }, [serviceId, moduleName, methodName, connectedServices]);
103
-
104
- return (
105
- <section className="test-panel">
106
- <div className="container">
107
- <div className="row">
108
- <Title text="Scratch Pad" />
109
- {typeof Main[0].index === "number" && (
110
- <CurrentTest name={`Saved Test ${1 + Main[0].index}`} onClick={resetTests} />
111
- )}
112
- </div>
113
- <div>
114
- <span className="row test__buttons">
115
- <span
116
- className={`test-panel__error-message test-panel__error-message--hide-${!saveResponse.message} test-panel__error-message--error-${
117
- saveResponse.error
118
- } `}
119
- >
120
- <span>{saveResponse.message}</span>
121
- <span onClick={clearMessage} className="test-panel__clear-error btn">
122
- ×
123
- </span>
124
- </span>
125
-
126
- <span>
127
- <span className="btn" onClick={runTest}>
128
- <RunTestIcon />
129
- </span>
130
- <span className="btn" onClick={save}>
131
- <SaveIcon />
132
- </span>
133
- </span>
134
- </span>
135
-
136
- <div className="row test-panel__section">
137
- <BeforeTest TestController={BeforeCtrl} TestSection={Before} />
138
- </div>
139
- <div className="row test-panel__section">
140
- <MainTest TestController={MainCtrl} TestSection={Main} />
141
- </div>
142
-
143
- <div className="row test-panel__section">
144
- <AfterTest TestController={AfterCtrl} TestSection={After} />
145
- </div>
146
- <div className="row test-panel__section">
147
- <EventsTest
148
- TestController={EventCtrl}
149
- TestSection={Events}
150
- namespace={eventNamespace}
151
- FullTest={FullTest}
152
- />
153
- </div>
154
- <div className="row test-panel__section">
155
- <SavedTests
156
- savedTests={savedTests}
157
- connectedServices={connectedServices}
158
- setFullTest={setFullTest}
159
- Plugin={Plugin}
160
- fetchTests={fetchTests}
161
- />
162
- </div>
163
- </div>
164
- </div>
165
- <div className="scroll-buffer"></div>
166
- </section>
167
- );
168
- };
169
-
170
- export default FullTest;
File without changes
@@ -1,94 +0,0 @@
1
- import {
2
- isTargetValueFn,
3
- isTargetNamespace,
4
- targetValueFnRegex,
5
- obj,
6
- isEqualArrays,
7
- isFunction,
8
- strFn,
9
- } from "./test-helpers";
10
-
11
- export function TargetValue(target_namespace, source_map = [], source_index = 0) {
12
- this.target_namespace = target_namespace;
13
- this.source_map = source_map;
14
- this.source_index = source_index;
15
- }
16
- export default function Argument(
17
- name,
18
- FullTest,
19
- input_type = "undefined",
20
- input,
21
- targetValues = []
22
- ) {
23
- this.name = name;
24
- this.input = input;
25
- this.input_type = input_type;
26
- this.data_type = "";
27
- this.targetValues = targetValues;
28
-
29
- this.value = () => {
30
- return this.targetValues.reduce((arg, { source_map, target_namespace: nsp }) => {
31
- const [value, placeholder, key] = obj(arg).parse(source_map);
32
-
33
- if (isTargetValueFn(nsp)) {
34
- placeholder[key] = value
35
- .trim()
36
- .replace(nsp, getTargetValue(nsp.substring(3, nsp.length - 1)));
37
- } else if (isTargetNamespace(nsp)) {
38
- placeholder[key] = getTargetValue(nsp);
39
- } else {
40
- placeholder[key] = strFn(nsp);
41
- }
42
-
43
- return arg;
44
- //creating a deep copy in order to lose refs to original
45
- }, obj(this).clone()).input;
46
- };
47
-
48
- this.parseTargetValues = (input, source_map) => {
49
- //extract one or more target replacer text from string (i.e. "tv(beforeTest.Action1.error)")
50
- Array.from(input.matchAll(targetValueFnRegex)).forEach((match) => {
51
- this.addTargetValue(match[0], source_map, match.index);
52
- });
53
- if (isTargetNamespace(input) || isFunction(input))
54
- this.addTargetValue(input, source_map, 0);
55
-
56
- return this;
57
- };
58
-
59
- this.checkTargetNamespaces = () => {
60
- // check target namespaces against current input for deletion
61
- //keep if the target value string still exist on this.input...
62
- this.targetValues = this.targetValues.filter(
63
- ({ target_namespace, source_map, source_index }) => {
64
- const value = obj(this).valueAt(source_map);
65
- return (
66
- typeof value === "string" &&
67
- value.indexOf(target_namespace, source_index) === source_index
68
- );
69
- }
70
- );
71
- return this;
72
- };
73
-
74
- this.addTargetValue = (target_namespace, source_map = [], source_index) => {
75
- //check to see if target value already exists first
76
- this.targetValues.findIndex(
77
- (tv) =>
78
- tv.target_namespace === target_namespace &&
79
- isEqualArrays(tv.source_map, source_map) &&
80
- tv.source_index === source_index
81
- ) === -1 &&
82
- this.targetValues.push(new TargetValue(target_namespace, source_map, source_index));
83
- return this;
84
- };
85
-
86
- const getTargetValue = (input) => {
87
- const [test, action] = input.split(".");
88
- const nsp = input
89
- .replace(test, { beforeTest: 0, mainTest: 1, Events: 2, afterTest: 3 }[test])
90
- .replace(action, parseInt(action.replace("Action", "")) - 1)
91
- .replace("error", "results");
92
- return obj(FullTest).valueAtNsp(nsp);
93
- };
94
- }
@@ -1,78 +0,0 @@
1
- import Test from "./Test.class";
2
-
3
- const sections = ["Before", "Main", "Events", "After"];
4
-
5
- export default function FullTestController({ FullTest, connectedServices }) {
6
- this.runFullTest = async ([Before, Main, Events, After] = FullTest) => {
7
- Events.forEach((test) => test.runTest());
8
-
9
- await new Promise((resolve) => {
10
- function recursiveRunTest(tests, i = 0) {
11
- if (i === tests.length) resolve();
12
- else tests[i].runTest().then(() => recursiveRunTest(tests, i + 1));
13
- }
14
- recursiveRunTest([...Before, ...Main, ...After]);
15
- });
16
-
17
- return [Before, Main, Events, After];
18
- };
19
-
20
- function validateTest({ title, evaluations, shouldValidate }, section, index) {
21
- if (!title)
22
- return {
23
- message: `${sections[section]}: Action ${index + 1} description is required`,
24
- error: true,
25
- };
26
- if (shouldValidate && !evaluations.filter((e) => e.save).length)
27
- return {
28
- message: `${sections[section]}: Action ${index + 1} validations required`,
29
- error: true,
30
- };
31
-
32
- return { error: false };
33
- }
34
- this.saveTests = async (Tests = FullTest) => {
35
- const { title, getConnection, namespace, index } = Tests[1][0];
36
-
37
- for (let i = 0; i < Tests.length; i++) {
38
- for (let x = 0; x < Tests.length; x++) {
39
- const res = Tests[i][x] ? validateTest(Tests[i][x], i, x) : {};
40
- if (res.error) return res;
41
- }
42
- }
43
-
44
- const { connection } = getConnection(connectedServices);
45
-
46
- const { Plugin } = connection[namespace.serviceId];
47
-
48
- if (Plugin) {
49
- const [Before, Main, Events, After] = Tests.map((testSection) =>
50
- testSection.map((test) => {
51
- const { args, evaluations, namespace, title } = test;
52
- //resetting scope of test
53
- Object.assign(test, new Test(test));
54
- return {
55
- args,
56
- namespace,
57
- title,
58
- savedEvaluations: evaluations
59
- .filter((e) => e.save)
60
- .map(({ namespace, expected_type, validations, save, indexed }) => ({
61
- namespace,
62
- expected_type,
63
- validations,
64
- save,
65
- indexed,
66
- })),
67
- };
68
- })
69
- );
70
-
71
- const testIndex = await Plugin.saveTest(
72
- { Before, Main, Events, After, title, namespace },
73
- index
74
- );
75
- return { message: "Test Saved!", error: false, testIndex };
76
- } else return { message: "Plugin Plugin not connected!", error: true };
77
- };
78
- }
@@ -1,162 +0,0 @@
1
- import { validateResults } from "../../../molecules/ValidationInput/validator";
2
- import { Client } from "systemlynx";
3
- import moment from "moment";
4
- import { getArrayNamespaces, getLastArrayNamespace, obj } from "./test-helpers";
5
-
6
- export default function Test({
7
- namespace,
8
- args,
9
- title,
10
- shouldValidate = false,
11
- savedEvaluations = [],
12
- index,
13
- editMode = true,
14
- }) {
15
- const logger = new TestLogger(this);
16
- this.index = index;
17
- this.connection = {};
18
- this.title = title;
19
- this.args = args || [];
20
- this.editMode = editMode;
21
- this.shouldValidate = shouldValidate || !!savedEvaluations.length;
22
- this.namespace = namespace || {
23
- serviceId: "",
24
- moduleName: "",
25
- methodName: "",
26
- };
27
- this.clearResults = () => {
28
- this.results = null;
29
- this.response_type = "";
30
- this.test_start = null;
31
- this.test_end = null;
32
- this.evaluations = [];
33
- this.savedEvaluations = obj(savedEvaluations).clone();
34
- this.errors = [];
35
- return this;
36
- };
37
-
38
- this.clearResults();
39
-
40
- this.getErrors = () => {
41
- this.errors = this.evaluations
42
- .filter(({ save }) => save)
43
- .reduce(
44
- (sum, { errors, namespace }) =>
45
- sum.concat(errors.map((e) => ({ ...e, namespace }))),
46
- []
47
- );
48
- return this.errors;
49
- };
50
-
51
- this.validate = validateResults.bind(this);
52
-
53
- this.runTest = async () => {
54
- const { serviceId, moduleName, methodName } = this.namespace;
55
- const args = this.args.map((arg) => arg.value());
56
-
57
- this.test_start = moment().toJSON();
58
- const Module = this.connection[serviceId][moduleName];
59
- if (methodName === "on") {
60
- const eventTest = (e) => {
61
- this.results = e;
62
- this.test_end = moment().toJSON();
63
- this.response_type = "event";
64
- this.shouldValidate && this.validate();
65
- logger.end();
66
- Module.$clearEvent(args[0], "eventTest");
67
- };
68
- logger.start(args);
69
- Module.on(args[0], eventTest);
70
- } else {
71
- try {
72
- logger.start(args);
73
- this.results = await Module[methodName](...args);
74
- this.test_end = moment().toJSON();
75
- this.response_type = "results";
76
- this.shouldValidate && this.validate();
77
- logger.end();
78
- } catch (error) {
79
- this.test_end = moment().toJSON();
80
- this.results = error;
81
- this.response_type = "error";
82
- this.shouldValidate && this.validate();
83
- logger.end();
84
- }
85
- }
86
- return this;
87
- };
88
-
89
- this.getConnection = (connectedServices) => {
90
- const { serviceId } = this.namespace;
91
-
92
- if (connectedServices.length > 0) {
93
- const service = connectedServices.find(
94
- (service) => service.serviceId === serviceId
95
- );
96
- if (!service) {
97
- console.warn("connection data not found");
98
- return this;
99
- }
100
- const { connectionData } = service.system;
101
-
102
- this.connection[serviceId] = Client.createService(connectionData);
103
- }
104
-
105
- return this;
106
- };
107
-
108
- this.addEvaluation = (evaluation) => {
109
- const savedEval = this.savedEvaluations.find(
110
- ({ namespace }) => namespace === evaluation.namespace
111
- );
112
- if (savedEval) Object.assign(savedEval, evaluation);
113
- else this.savedEvaluations.push(evaluation);
114
- };
115
- this.removeEvaluation = (namespace) => {
116
- const index = this.savedEvaluations.findIndex((e) => e.namespace === namespace);
117
- if (index > -1) return this.savedEvaluations.splice(index, 1)[0];
118
- else return {};
119
- };
120
-
121
- this.addSavedIndices = (arrayNamespace, newArrayNamespace) => {
122
- //break namespace into multiple array namespaces
123
- const nspList = getArrayNamespaces(arrayNamespace);
124
- this.evaluations.forEach((e) => {
125
- if (nspList.includes(getLastArrayNamespace(e.namespace))) {
126
- e.namespace = e.namespace.replace(arrayNamespace, newArrayNamespace);
127
- e.indexed = true;
128
- e.expected_type = undefined;
129
- this.addEvaluation(e);
130
- }
131
- });
132
- };
133
- this.removeSavedIndices = (namespace) => {
134
- this.savedEvaluations = this.savedEvaluations.filter(
135
- (e) => !e.namespace.includes(namespace) //|| !e.indexed
136
- );
137
- };
138
- }
139
-
140
- function TestLogger(test) {
141
- this.start = (args) => {
142
- const { serviceId, moduleName, methodName } = test.namespace;
143
-
144
- console.log(
145
- `[${moment(this.test_start).format(
146
- "L LTS"
147
- )}]> [invoking]:${serviceId}.${moduleName}.${methodName}()`
148
- );
149
- console.log.apply({}, ["args:"].concat(args));
150
- };
151
- this.end = () => {
152
- const { serviceId, moduleName, methodName } = test.namespace;
153
- const { results, response_type } = test;
154
- console.log(
155
- `[${moment(this.test_end).format(
156
- "L LTS"
157
- )}]> [${response_type}]:${serviceId}.${moduleName}.${methodName}()`,
158
- `${response_type}:`,
159
- results
160
- );
161
- };
162
- }
@@ -1,135 +0,0 @@
1
- import { getType } from "../../../molecules/ValidationInput/validator";
2
- import Test from "./Test.class";
3
- import Argument, { TargetValue } from "./Argument.class";
4
- export default function TestController({
5
- TestSection,
6
- setState,
7
- section,
8
- FullTest,
9
- connectedServices,
10
- }) {
11
- this.runTest = async (testIndex) => {
12
- const test = TestSection[testIndex];
13
- //run only one test
14
- await test.runTest();
15
- setState([...TestSection]);
16
- };
17
-
18
- this.runAllTest = async () => {};
19
-
20
- this.updateNamespace = (index, namespace) => {
21
- TestSection[index].namespace = namespace;
22
- TestSection[index].getConnection(connectedServices);
23
- setState([...TestSection]);
24
- };
25
- this.addTest = (namespace, args, title) => {
26
- TestSection.push(new Test({ namespace, args, title, editMode: true }));
27
- setState([...TestSection]);
28
- if (namespace) this.updateNamespace(TestSection.length - 1, namespace);
29
- };
30
- this.deleteTest = (index) => {
31
- TestSection.splice(index, 1);
32
- setState([...TestSection]);
33
- };
34
- this.addArg = (index) => {
35
- const name = "arg" + (TestSection[0].args.length + 1);
36
- TestSection[index].args.push(new Argument(name, FullTest));
37
- setState([...TestSection]);
38
- };
39
- this.deleteArg = (index, arg_index) => {
40
- TestSection[index].args.splice(arg_index, 1);
41
- setState([...TestSection]);
42
- };
43
- this.editArg = (index, arg_index, arg) => {
44
- arg.data_type = getType(arg.input);
45
- TestSection[index].args[arg_index] = arg;
46
- setState([...TestSection]);
47
- };
48
- this.resetResults = (index) => {
49
- TestSection[index].clearResults();
50
- setState([...TestSection]);
51
- };
52
-
53
- this.addTargetValue = (
54
- testIndex,
55
- arg_index,
56
- target_namespace,
57
- source_map,
58
- source_index
59
- ) => {
60
- //check to see if target value already exists first
61
- const arg = TestSection[testIndex].args[arg_index];
62
- arg.addTargetValue(target_namespace, source_map, source_index);
63
- setState([...TestSection]);
64
- };
65
- this.setTargetValue = (
66
- testIndex,
67
- arg_index,
68
- target_index,
69
- target_namespace,
70
- source_map,
71
- source_index
72
- ) => {
73
- const arg = TestSection[testIndex].args[arg_index];
74
-
75
- arg.targetValues[target_index] = new TargetValue(
76
- target_namespace.trim(),
77
- source_map,
78
- source_index
79
- );
80
- setState([...TestSection]);
81
- };
82
-
83
- this.parseTargetValues = (testIndex, arg_index, input, source_map) => {
84
- const arg = TestSection[testIndex].args[arg_index];
85
- arg.parseTargetValues(input, source_map).checkTargetNamespaces();
86
- setState([...TestSection]);
87
- };
88
- this.checkTargetValues = (testIndex, arg_index) => {
89
- const arg = TestSection[testIndex].args[arg_index];
90
- arg.checkTargetNamespaces();
91
- setState([...TestSection]);
92
- };
93
- this.updateTitle = (testIndex, title) => {
94
- TestSection[testIndex].title = title;
95
- setState([...TestSection]);
96
- };
97
- this.updateEvaluations = (testIndex, evaluations) => {
98
- TestSection[testIndex].evaluations = evaluations;
99
- setState([...TestSection]);
100
- };
101
- this.updateTests = () => {
102
- setState([...TestSection]);
103
- };
104
- this.updateValidationStatus = (testIndex) => {
105
- if (section !== 1) {
106
- TestSection[testIndex].shouldValidate = !TestSection[testIndex].shouldValidate;
107
- if (TestSection[testIndex].shouldValidate) TestSection[testIndex].validate();
108
- else TestSection[testIndex].evaluations = [];
109
- setState([...TestSection]);
110
- }
111
- };
112
- this.getTargetSuggestions = (testIndex) => {
113
- //get target value suggestion (namespaces) for previous test including sub test
114
- const suggestions = [];
115
- const test_names = ["beforeTest", "mainTest", "afterTest"];
116
- //exclude all test sections following current section
117
- const targetTests = FullTest.slice(0, section + 1);
118
-
119
- targetTests.forEach((test_section, sIndex) => {
120
- //also exclude current test and the tests that follow from the suggestions
121
- const count = sIndex === section ? testIndex : test_section.length;
122
- for (let i = 0; i < count; i++) {
123
- suggestions.push(
124
- `${test_names[sIndex]}.${"Action" + (i + 1) + "."}${
125
- test_section[i].response_type || "results"
126
- }`
127
- );
128
- }
129
- });
130
-
131
- return suggestions;
132
- };
133
-
134
- return this;
135
- }