@finsemble/finsemble-ui 6.6.1 → 7.0.0-beta.3

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 (262) hide show
  1. package/package.json +18 -32
  2. package/react/assets/css/button.css +1 -1
  3. package/react/assets/css/favorites.css +0 -47
  4. package/react/assets/css/finsemble.css +3 -0
  5. package/react/assets/css/linkerWindow.css +13 -1
  6. package/react/assets/css/menus.css +2 -2
  7. package/react/assets/css/notificationsCenter.css +32 -1
  8. package/react/assets/css/shared/common.css +40 -0
  9. package/react/assets/css/userPreferences.css +17 -12
  10. package/react/assets/css/windowTitleBar.css +7 -0
  11. package/react/assets/icons/server.svg +26 -0
  12. package/react/components/common/ButtonIcon.js +1 -1
  13. package/react/components/common/ButtonIcon.js.map +1 -1
  14. package/react/components/common/ButtonRow.js +2 -2
  15. package/react/components/common/ButtonRow.js.map +1 -1
  16. package/react/components/common/Checkbox.js +1 -1
  17. package/react/components/common/Checkbox.js.map +1 -1
  18. package/react/components/common/ColorPicker.js +16 -15
  19. package/react/components/common/ColorPicker.js.map +1 -1
  20. package/react/components/common/ErrorBoundary.d.ts +16 -0
  21. package/react/components/common/ErrorBoundary.js +22 -0
  22. package/react/components/common/ErrorBoundary.js.map +1 -0
  23. package/react/components/common/FinsembleIcon.d.ts +3 -2
  24. package/react/components/common/FinsembleIcon.js +10 -3
  25. package/react/components/common/FinsembleIcon.js.map +1 -1
  26. package/react/components/common/FinsembleLink.d.ts +6 -0
  27. package/react/components/common/FinsembleLink.js +12 -0
  28. package/react/components/common/FinsembleLink.js.map +1 -0
  29. package/react/components/common/FinsembleToggle.d.ts +1 -2
  30. package/react/components/common/FinsembleToggle.js +2 -6
  31. package/react/components/common/FinsembleToggle.js.map +1 -1
  32. package/react/components/common/FinsembleToggleButtonBar.d.ts +13 -0
  33. package/react/components/common/FinsembleToggleButtonBar.js +44 -0
  34. package/react/components/common/FinsembleToggleButtonBar.js.map +1 -0
  35. package/react/components/common/InputTable.d.ts +3 -3
  36. package/react/components/common/InputTable.js +13 -13
  37. package/react/components/common/InputTable.js.map +1 -1
  38. package/react/components/common/Tab.js +33 -5
  39. package/react/components/common/Tab.js.map +1 -1
  40. package/react/components/common/css/FinsembleToggle.css +22 -0
  41. package/react/components/common/css/application-edit-page.css +10 -2
  42. package/react/components/common/css/tab.css +8 -8
  43. package/react/components/common/css/time-select.css +1 -1
  44. package/react/components/common/css/toggle.css +2 -10
  45. package/react/components/common/helpers.js +6 -1
  46. package/react/components/common/helpers.js.map +1 -1
  47. package/react/components/common/stories/ColorPicker.stories.js +6 -11
  48. package/react/components/common/stories/ColorPicker.stories.js.map +1 -1
  49. package/react/components/common/stories/FinsembleToggle.stories.d.ts +1 -2
  50. package/react/components/common/stories/FinsembleToggle.stories.js +0 -7
  51. package/react/components/common/stories/FinsembleToggle.stories.js.map +1 -1
  52. package/react/components/common/stories/FinsembleToggleButtonBar.stories.d.ts +14 -0
  53. package/react/components/common/stories/FinsembleToggleButtonBar.stories.js +97 -0
  54. package/react/components/common/stories/FinsembleToggleButtonBar.stories.js.map +1 -0
  55. package/react/components/common/stories/InputTable.stories.d.ts +4 -3
  56. package/react/components/common/stories/InputTable.stories.js +18 -8
  57. package/react/components/common/stories/InputTable.stories.js.map +1 -1
  58. package/react/components/common/tests/ButtonRow.spec.js +5 -0
  59. package/react/components/common/tests/ButtonRow.spec.js.map +1 -1
  60. package/react/components/common/tests/FinsembleToggle.spec.js +1 -6
  61. package/react/components/common/tests/FinsembleToggle.spec.js.map +1 -1
  62. package/react/components/common/tests/FinsembleToggleButtonBar.spec.d.ts +1 -0
  63. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js +40 -0
  64. package/react/components/common/tests/FinsembleToggleButtonBar.spec.js.map +1 -0
  65. package/react/components/common/tests/InputTable.spec.js +3 -3
  66. package/react/components/common/tests/InputTable.spec.js.map +1 -1
  67. package/react/components/favorites/FavoriteMaker.js +1 -1
  68. package/react/components/favorites/FavoriteMaker.js.map +1 -1
  69. package/react/components/fdc3Resolver/ResolverContainer.js +4 -7
  70. package/react/components/fdc3Resolver/ResolverContainer.js.map +1 -1
  71. package/react/components/icon/Icon.d.ts +1 -1
  72. package/react/components/icon/Icon.js +8 -1
  73. package/react/components/icon/Icon.js.map +1 -1
  74. package/react/components/legacyControls/FinsembleDnDContext.js +7 -7
  75. package/react/components/legacyControls/FinsembleDnDContext.js.map +1 -1
  76. package/react/components/linker/remoteRedux.js +1 -0
  77. package/react/components/linker/remoteRedux.js.map +1 -1
  78. package/react/components/menu/MenuItem.js +1 -1
  79. package/react/components/menu/MenuItem.js.map +1 -1
  80. package/react/components/menu/MenuPortal.js +12 -21
  81. package/react/components/menu/MenuPortal.js.map +1 -1
  82. package/react/components/menu/MenuToggle.js +1 -1
  83. package/react/components/menu/MenuToggle.js.map +1 -1
  84. package/react/components/menu/keyboardNavigation.d.ts +1 -22
  85. package/react/components/menu/keyboardNavigation.js +110 -160
  86. package/react/components/menu/keyboardNavigation.js.map +1 -1
  87. package/react/components/notifications/components/drawer/DrawerControls.js +39 -25
  88. package/react/components/notifications/components/drawer/DrawerControls.js.map +1 -1
  89. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js +19 -6
  90. package/react/components/notifications/components/notificationsCenter/NotificationsCenter.js.map +1 -1
  91. package/react/components/notifications/components/shared/CheckButton.js +19 -8
  92. package/react/components/notifications/components/shared/CheckButton.js.map +1 -1
  93. package/react/components/notifications/components/shared/NotificationCardShell.js +2 -1
  94. package/react/components/notifications/components/shared/NotificationCardShell.js.map +1 -1
  95. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js +2 -1
  96. package/react/components/notifications/components/shared/notificationCard/NotificationCardBodyShell.js.map +1 -1
  97. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js +2 -1
  98. package/react/components/notifications/components/shared/notificationCard/NotificationCardHeaderShell.js.map +1 -1
  99. package/react/components/notifications/components/views/CardView.js +5 -3
  100. package/react/components/notifications/components/views/CardView.js.map +1 -1
  101. package/react/components/notifications/components/views/ListView.js +3 -1
  102. package/react/components/notifications/components/views/ListView.js.map +1 -1
  103. package/react/components/notifications/types.d.ts +3 -0
  104. package/react/components/notifications/types.js.map +1 -1
  105. package/react/components/processMonitor/ProcessMonitor.js +4 -1
  106. package/react/components/processMonitor/ProcessMonitor.js.map +1 -1
  107. package/react/components/processMonitor/components/ProcessStatistics.js +1 -3
  108. package/react/components/processMonitor/components/ProcessStatistics.js.map +1 -1
  109. package/react/components/processMonitor/helpers.js +4 -3
  110. package/react/components/processMonitor/helpers.js.map +1 -1
  111. package/react/components/processMonitor/helpers.spec.js +7 -3
  112. package/react/components/processMonitor/helpers.spec.js.map +1 -1
  113. package/react/components/sdd/AddApp.d.ts +4 -3
  114. package/react/components/sdd/AddApp.js +132 -30
  115. package/react/components/sdd/AddApp.js.map +1 -1
  116. package/react/components/sdd/AppEditAccess.d.ts +4 -3
  117. package/react/components/sdd/AppEditAccess.js.map +1 -1
  118. package/react/components/sdd/AppEditPage.d.ts +4 -3
  119. package/react/components/sdd/AppEditPage.js +141 -116
  120. package/react/components/sdd/AppEditPage.js.map +1 -1
  121. package/react/components/sdd/Appearance.d.ts +2 -1
  122. package/react/components/sdd/Appearance.js +15 -7
  123. package/react/components/sdd/Appearance.js.map +1 -1
  124. package/react/components/sdd/Application.d.ts +5 -4
  125. package/react/components/sdd/Application.js +61 -42
  126. package/react/components/sdd/Application.js.map +1 -1
  127. package/react/components/sdd/Applications.d.ts +12 -11
  128. package/react/components/sdd/Applications.js +23 -4
  129. package/react/components/sdd/Applications.js.map +1 -1
  130. package/react/components/sdd/Authentication.js +1 -6
  131. package/react/components/sdd/Authentication.js.map +1 -1
  132. package/react/components/sdd/AuthenticationProviderConfig.js +5 -3
  133. package/react/components/sdd/AuthenticationProviderConfig.js.map +1 -1
  134. package/react/components/sdd/EditPreload.d.ts +4 -3
  135. package/react/components/sdd/EditPreload.js +39 -22
  136. package/react/components/sdd/EditPreload.js.map +1 -1
  137. package/react/components/sdd/Export.d.ts +7 -6
  138. package/react/components/sdd/Export.js +3 -2
  139. package/react/components/sdd/Export.js.map +1 -1
  140. package/react/components/sdd/GettingStarted.js +3 -3
  141. package/react/components/sdd/GettingStarted.js.map +1 -1
  142. package/react/components/sdd/Navigation.js +28 -4
  143. package/react/components/sdd/Navigation.js.map +1 -1
  144. package/react/components/sdd/OptionalSettingsView.d.ts +6 -5
  145. package/react/components/sdd/OptionalSettingsView.js +2 -10
  146. package/react/components/sdd/OptionalSettingsView.js.map +1 -1
  147. package/react/components/sdd/ProjectErrors.js +1 -1
  148. package/react/components/sdd/ProjectErrors.js.map +1 -1
  149. package/react/components/sdd/Publish.js +2 -2
  150. package/react/components/sdd/Publish.js.map +1 -1
  151. package/react/components/sdd/SmartDesktopDesigner.d.ts +17 -16
  152. package/react/components/sdd/SmartDesktopDesigner.js +37 -34
  153. package/react/components/sdd/SmartDesktopDesigner.js.map +1 -1
  154. package/react/components/sdd/ThemePage.js +8 -5
  155. package/react/components/sdd/ThemePage.js.map +1 -1
  156. package/react/components/sdd/Themes.d.ts +2 -1
  157. package/react/components/sdd/Themes.js +2 -2
  158. package/react/components/sdd/Themes.js.map +1 -1
  159. package/react/components/sdd/Toolbar.d.ts +5 -4
  160. package/react/components/sdd/Toolbar.js +11 -9
  161. package/react/components/sdd/Toolbar.js.map +1 -1
  162. package/react/components/sdd/common/setPreloadDefaults.d.ts +1 -1
  163. package/react/components/sdd/common/setPreloadDefaults.js +5 -4
  164. package/react/components/sdd/common/setPreloadDefaults.js.map +1 -1
  165. package/react/components/sdd/common/views.js +7 -4
  166. package/react/components/sdd/common/views.js.map +1 -1
  167. package/react/components/sdd/css/addApp.css +52 -0
  168. package/react/components/sdd/css/applications.css +4 -24
  169. package/react/components/sdd/css/nav.css +3 -3
  170. package/react/components/sdd/fixtures/authenticationProps.js +15 -1
  171. package/react/components/sdd/fixtures/authenticationProps.js.map +1 -1
  172. package/react/components/sdd/fixtures/preloads.js +14 -12
  173. package/react/components/sdd/fixtures/preloads.js.map +1 -1
  174. package/react/components/sdd/smartDesktopClient.d.ts +163 -0
  175. package/react/components/sdd/smartDesktopClient.js +573 -0
  176. package/react/components/sdd/smartDesktopClient.js.map +1 -0
  177. package/react/components/sdd/smartDesktopClient.spec.d.ts +1 -0
  178. package/react/components/sdd/smartDesktopClient.spec.js +61 -0
  179. package/react/components/sdd/smartDesktopClient.spec.js.map +1 -0
  180. package/react/components/sdd/stories/AddApp.stories.d.ts +10 -0
  181. package/react/components/sdd/stories/AddApp.stories.js +18 -0
  182. package/react/components/sdd/stories/AddApp.stories.js.map +1 -0
  183. package/react/components/sdd/stories/AppEditPage.stories.d.ts +2 -0
  184. package/react/components/sdd/stories/AppEditPage.stories.js +2 -0
  185. package/react/components/sdd/stories/AppEditPage.stories.js.map +1 -1
  186. package/react/components/sdd/stories/Appearance.stories.d.ts +1 -1
  187. package/react/components/sdd/stories/Appearance.stories.js +1 -0
  188. package/react/components/sdd/stories/Appearance.stories.js.map +1 -1
  189. package/react/components/sdd/stories/Authentication.stories.js +2 -16
  190. package/react/components/sdd/stories/Authentication.stories.js.map +1 -1
  191. package/react/components/sdd/stories/OptionalSettingsView.stories.js +1 -1
  192. package/react/components/sdd/stories/OptionalSettingsView.stories.js.map +1 -1
  193. package/react/components/sdd/stories/SmartDesktopDesigner.stories.d.ts +1 -1
  194. package/react/components/sdd/stories/SmartDesktopDesigner.stories.js +3 -0
  195. package/react/components/sdd/stories/SmartDesktopDesigner.stories.js.map +1 -1
  196. package/react/components/sdd/stories/Themes.stories.d.ts +1 -1
  197. package/react/components/sdd/stories/Themes.stories.js +1 -0
  198. package/react/components/sdd/stories/Themes.stories.js.map +1 -1
  199. package/react/components/sdd/tests/AddApp.spec.d.ts +1 -0
  200. package/react/components/sdd/tests/AddApp.spec.js +96 -0
  201. package/react/components/sdd/tests/AddApp.spec.js.map +1 -0
  202. package/react/components/sdd/tests/AppEditPage.spec.js +92 -23
  203. package/react/components/sdd/tests/AppEditPage.spec.js.map +1 -1
  204. package/react/components/sdd/tests/Application.spec.js +411 -24
  205. package/react/components/sdd/tests/Application.spec.js.map +1 -1
  206. package/react/components/sdd/tests/Applications.spec.js +1 -45
  207. package/react/components/sdd/tests/Applications.spec.js.map +1 -1
  208. package/react/components/sdd/tests/Authentication.spec.js +1 -1
  209. package/react/components/sdd/tests/Authentication.spec.js.map +1 -1
  210. package/react/components/sdd/tests/EditPreload.spec.js +50 -7
  211. package/react/components/sdd/tests/EditPreload.spec.js.map +1 -1
  212. package/react/components/sdd/tests/Navigation.spec.js +2 -2
  213. package/react/components/sdd/tests/Navigation.spec.js.map +1 -1
  214. package/react/components/sdd/tests/OptionalSettingsView.spec.js +235 -0
  215. package/react/components/sdd/tests/OptionalSettingsView.spec.js.map +1 -1
  216. package/react/components/sdd/tests/ProjectErrors.spec.js +1 -1
  217. package/react/components/sdd/tests/ProjectErrors.spec.js.map +1 -1
  218. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js +2 -2
  219. package/react/components/sdd/tests/SmartDesktopDesigner.spec.js.map +1 -1
  220. package/react/components/search/Search.js +1 -1
  221. package/react/components/search/Search.js.map +1 -1
  222. package/react/components/shared/DefaultDropdownButton.js +12 -1
  223. package/react/components/shared/DefaultDropdownButton.js.map +1 -1
  224. package/react/components/shared/tests/DefaultDropdownButton.spec.js +12 -0
  225. package/react/components/shared/tests/DefaultDropdownButton.spec.js.map +1 -1
  226. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.d.ts +1 -16
  227. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js +0 -4
  228. package/react/components/smartDesktopDesigner/SmartDesktopDesigner.js.map +1 -1
  229. package/react/components/toolbar/DragHandle.stories.js.map +1 -1
  230. package/react/components/toolbar/ToolbarIcon.js +2 -2
  231. package/react/components/toolbar/ToolbarIcon.js.map +1 -1
  232. package/react/components/toolbar/ToolbarSection.d.ts +1 -9
  233. package/react/components/toolbar/ToolbarSection.js +3 -7
  234. package/react/components/toolbar/ToolbarSection.js.map +1 -1
  235. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js +1 -1
  236. package/react/components/toolbar/advancedAppLauncher/stores/StoreActions.js.map +1 -1
  237. package/react/components/toolbar/dashbar/Dashbar.js +21 -12
  238. package/react/components/toolbar/dashbar/Dashbar.js.map +1 -1
  239. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js +1 -1
  240. package/react/components/toolbar/workspaceManagementMenu/components/Workspace.js.map +1 -1
  241. package/react/components/userPreferences/components/ContentSection.js +1 -1
  242. package/react/components/userPreferences/components/ContentSection.js.map +1 -1
  243. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js +4 -3
  244. package/react/components/userPreferences/components/content/notificationViews/NotificationsPreferencesHome.js.map +1 -1
  245. package/react/components/userPreferences/components/general/ScheduledClose.js +12 -3
  246. package/react/components/userPreferences/components/general/ScheduledClose.js.map +1 -1
  247. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js +1 -1
  248. package/react/components/userPreferences/components/workspaces/WorkspaceButton.js.map +1 -1
  249. package/react/components/windowTitleBar/WindowTitleBarShell.d.ts +17 -2
  250. package/react/components/windowTitleBar/WindowTitleBarShell.js +160 -6
  251. package/react/components/windowTitleBar/WindowTitleBarShell.js.map +1 -1
  252. package/react/components/windowTitleBar/components/left/LinkerButton.js +7 -1
  253. package/react/components/windowTitleBar/components/left/LinkerButton.js.map +1 -1
  254. package/react/components/windowTitleBar/components/windowTitle.js +10 -2
  255. package/react/components/windowTitleBar/components/windowTitle.js.map +1 -1
  256. package/react/components/windowTitleBar/stores/windowTitleBarStore.js +11 -1
  257. package/react/components/windowTitleBar/stores/windowTitleBarStore.js.map +1 -1
  258. package/react/reducers/rootReducer.d.ts +2 -2
  259. package/react/store.d.ts +4 -4
  260. package/react/tsconfig.tsbuildinfo +1 -0
  261. package/react/types/smartDesktopDesignerTypes.d.ts +3 -0
  262. package/react/types/smartDesktopDesignerTypes.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddApp.spec.js","sourceRoot":"","sources":["../../../../src/components/sdd/tests/AddApp.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { mount } from \"enzyme\";\nimport { afterEach, describe, it } from \"mocha\";\nimport { expect } from \"chai\";\nimport { Page } from \"../stories/AddApp.stories\";\nimport { AddAppProps } from \"../AddApp\";\nimport { accessibilityAssessor } from \"./a11y_helper\";\nimport { waitTick } from \"../sdd_helpers\";\n\n// For testing user interactions (like click events):\nimport sinon from \"sinon\";\n// Necessary to allow sinon to work with mocked actions (which are shown in the Actions panel in Storybook)\nimport addons, { mockChannel } from \"@storybook/addons\";\naddons.setChannel(mockChannel());\n\nconst QUICK_ADD_APP_URL = \".quick-add-app #app-url\",\n\tQUICK_ADD_APP_BUTTON = \".save-button-container button\",\n\tSECTION_TOGGLE_BUTTON = \".finsembleToggle [role='radio']\",\n\tFILE_INPUT_BUTTON = \".file-input-container [type='file']\",\n\tWEB_APP_NAME = \"#url-app-name\",\n\tNATIVE_APP_NAME = \"#path-app-name\",\n\tCITRIX_ALIAS = \"#app-citrix\",\n\tCITRIX_DISPLAY_NAME = \"#citrix-display-name\";\ndescribe(\"<AddApp/>\", () => {\n\tafterEach(() => {\n\t\tsinon.restore();\n\t});\n\tit(\"should pass accessibility scans\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\texpect(await accessibilityAssessor(wrapper)).to.be.true;\n\t});\n\n\tit(\"should add a web app\", async () => {\n\t\tconst functionSpy = sinon.spy(Page.args as AddAppProps, \"addAppByUrl\");\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// in the URL input, add \"http://www.facebook.com\"\n\t\twrapper.find(QUICK_ADD_APP_URL).simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"http://www.facebook.com\",\n\t\t\t},\n\t\t});\n\n\t\t// click the Add button\n\t\twrapper.find(QUICK_ADD_APP_BUTTON).simulate(\"click\");\n\n\t\t// wait tick\n\t\tawait waitTick();\n\t\twrapper.update();\n\n\t\texpect(functionSpy.calledOnce).to.be.true;\n\t\texpect(functionSpy.args[0]).to.deep.equal([\"http://www.facebook.com\", \"Facebook\"]);\n\t});\n\n\tit(\"if you add a URL, the App name should pre-fill with a generated name\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// in the URL input, add \"http://www.facebook.com\"\n\t\twrapper.find(QUICK_ADD_APP_URL).simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"http://www.google.com\",\n\t\t\t},\n\t\t});\n\n\t\texpect(wrapper.find(\"#url-app-name\").prop(\"value\"), \"Pre-filled generated name\").to.equal(\"Google\");\n\t\texpect(wrapper.find(QUICK_ADD_APP_BUTTON).prop(\"disabled\"), \"Save button should be enabled\").to.be.false;\n\t});\n\n\tit(\"if you add a URL without an auto-name, the App name should be empty\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// in the URL input, add \"http://www.facebook.com\"\n\t\twrapper.find(QUICK_ADD_APP_URL).simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"http://www.cnn.com\",\n\t\t\t},\n\t\t});\n\n\t\texpect(wrapper.find(\"#url-app-name\").prop(\"value\"), \"Pre-filled generated name\").to.equal(\"\");\n\t\texpect(wrapper.find(QUICK_ADD_APP_BUTTON).prop(\"disabled\"), \"Save button should be disabled\").to.be.true;\n\t});\n\n\tit('Toggling \"Path\" should display the Path\\'s section', async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// Go to \"Path\" toggle\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(1).simulate(\"click\");\n\n\t\t// Confirm that the file input button and native app name fields are present\n\t\texpect(wrapper.find(FILE_INPUT_BUTTON).exists(), \"File input button is present\").to.be.true;\n\t\texpect(wrapper.find(NATIVE_APP_NAME).exists(), \"App name field for path is present\").to.be.true;\n\t});\n\tit('Toggling \"Web\" should display the Web\\'s section', async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(0).simulate(\"click\");\n\t\t// Confirm that the file input button and native app name fields are present\n\t\texpect(wrapper.find(QUICK_ADD_APP_URL).exists(), \"URL field is present\").to.be.true;\n\t\texpect(wrapper.find(WEB_APP_NAME).exists(), \"App name field for web is present\").to.be.true;\n\t});\n\tit('Toggling \"Citrix\" should display the Citrix\\'s section', async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// Go to \"Path\" toggle\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(2).simulate(\"click\");\n\n\t\t// Confirm that the file input button and native app name fields are present\n\t\texpect(wrapper.find(CITRIX_ALIAS).exists(), \"Citrix alias field is present\").to.be.true;\n\t\texpect(wrapper.find(CITRIX_DISPLAY_NAME).exists(), \"Citrix display name field is present\").to.be.true;\n\t});\n\tit(\"App names should not be shared between sections\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// By default, start in web section\n\n\t\t// Change web app name\n\t\twrapper.find(WEB_APP_NAME).simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"New name\",\n\t\t\t},\n\t\t});\n\n\t\t// Go to path section\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(1).simulate(\"click\");\n\n\t\t// Confirm that path's app name is still empty\n\t\texpect(wrapper.find(NATIVE_APP_NAME).prop(\"value\")).to.be.empty;\n\t});\n\tit(\"Save button enabled state should be specific to visible section\", async () => {\n\t\tconst wrapper = mount(<Page {...(Page.args as AddAppProps)} />);\n\n\t\t// Fill in web URL (which auto-fills app name)\n\t\twrapper.find(QUICK_ADD_APP_URL).simulate(\"change\", {\n\t\t\ttarget: {\n\t\t\t\tvalue: \"http://www.facebook.com\",\n\t\t\t},\n\t\t});\n\n\t\t// Save should be enabled.\n\t\texpect(wrapper.find(QUICK_ADD_APP_BUTTON).prop(\"disabled\")).to.be.false;\n\n\t\t// Go to path section\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(1).simulate(\"click\");\n\n\t\t// Save should be disabled.\n\t\texpect(wrapper.find(QUICK_ADD_APP_BUTTON).prop(\"disabled\")).to.be.true;\n\n\t\t// Return to Web.\n\t\twrapper.find(SECTION_TOGGLE_BUTTON).at(0).simulate(\"click\");\n\n\t\t// Save should be enabled.\n\t\texpect(wrapper.find(QUICK_ADD_APP_BUTTON).prop(\"disabled\")).to.be.false;\n\t});\n});\n"]}
@@ -3,11 +3,13 @@ import { mount } from "enzyme";
3
3
  import { afterEach, describe, it } from "mocha";
4
4
  import { expect } from "chai";
5
5
  import sinon from "sinon";
6
- import { Page, EmptyPage, NativePage, PageWithIconURL } from "../stories/AppEditPage.stories";
6
+ import { Page, EmptyPage, NativePage, PageWithIconURL, AssimilationPage, CitrixPage, } from "../stories/AppEditPage.stories";
7
+ import { accessibilityAssessor } from "./a11y_helper";
7
8
  const defaults = {
8
9
  name: "Test",
9
10
  abstractPosition: 0,
10
11
  addToWorkspace: true,
12
+ alias: "",
11
13
  allowAutoArrange: true,
12
14
  allowGrouping: true,
13
15
  allowMaximize: true,
@@ -41,6 +43,7 @@ const defaults = {
41
43
  security: "trusted",
42
44
  singleton: false,
43
45
  spawnOnStartup: false,
46
+ titlebarType: "injected",
44
47
  url: "http://www.google.com",
45
48
  width: 1280,
46
49
  };
@@ -156,27 +159,87 @@ describe("<AppEditPage/>", () => {
156
159
  expect(buttonSpy.calledOnce).to.be.true;
157
160
  expect(buttonSpy.firstCall.args[0]).to.deep.equal(defaults);
158
161
  });
159
- describe("Web versus native apps", () => {
160
- it("If App type = web, show web-only apps and don't show native-only apps", () => {
162
+ it("should pass accessibility scans", async () => {
163
+ const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
164
+ expect(await accessibilityAssessor(wrapper)).to.be.true;
165
+ }).timeout(10e3);
166
+ describe("Show/hide sections for types of apps", () => {
167
+ it("Web app type", () => {
161
168
  const wrapper = mount(React.createElement(Page, Object.assign({}, Page.args)));
162
169
  expect(wrapper.contains("App URL")).to.be.true;
163
170
  expect(wrapper.contains("File path")).to.be.false;
164
171
  expect(wrapper.contains("Arguments")).to.be.false;
165
172
  expect(wrapper.contains("API access")).to.be.false;
173
+ expect(wrapper.contains("Virtual app name")).to.be.false;
166
174
  expect(wrapper.contains("Launch timeout")).to.be.false;
175
+ expect(wrapper.contains("Persist across workspaces")).to.be.true;
176
+ expect(wrapper.find("#accordion-control-select-connect").exists()).to.be.true;
177
+ expect(wrapper.find("#accordion-control-preloads").exists()).to.be.true;
178
+ expect(wrapper.find("#accordion-control-window").exists()).to.be.true;
179
+ expect(wrapper.find("#accordion-control-window-behavior").exists()).to.be.true;
180
+ expect(wrapper.find("#accordion-control-interop").exists()).to.be.true;
181
+ expect(wrapper.find("#accordion-control-component").exists()).to.be.true;
182
+ expect(wrapper.find("#accordion-control-workspace").exists()).to.be.true;
167
183
  expect(wrapper.find("#persist-url").exists()).to.be.true;
168
184
  expect(wrapper.find("#persist-path").exists()).to.be.false;
169
185
  });
170
- it("If App type = native, show native-only apps and don't show web-only apps", () => {
186
+ it("Native app type", () => {
171
187
  const wrapper = mount(React.createElement(NativePage, Object.assign({}, NativePage.args)));
172
188
  expect(wrapper.contains("App URL")).to.be.false;
173
189
  expect(wrapper.contains("File path")).to.be.true;
174
190
  expect(wrapper.contains("Arguments")).to.be.true;
175
191
  expect(wrapper.contains("API access")).to.be.true;
192
+ expect(wrapper.contains("Virtual app name")).to.be.false;
176
193
  expect(wrapper.contains("Launch timeout")).to.be.true;
194
+ expect(wrapper.contains("Persist across workspaces")).to.be.true;
195
+ expect(wrapper.find("#accordion-control-select-connect").exists()).to.be.true;
196
+ expect(wrapper.find("#accordion-control-preloads").exists()).to.be.false;
197
+ expect(wrapper.find("#accordion-control-window").exists()).to.be.true;
198
+ expect(wrapper.find("#accordion-control-window-behavior").exists()).to.be.false;
199
+ expect(wrapper.find("#accordion-control-interop").exists()).to.be.true;
200
+ expect(wrapper.find("#accordion-control-component").exists()).to.be.true;
201
+ expect(wrapper.find("#accordion-control-workspace").exists()).to.be.true;
202
+ expect(wrapper.find("#persist-url").exists()).to.be.false;
203
+ expect(wrapper.find("#persist-path").exists()).to.be.true;
204
+ });
205
+ it("Assimilation app type", () => {
206
+ const wrapper = mount(React.createElement(AssimilationPage, Object.assign({}, AssimilationPage.args)));
207
+ expect(wrapper.contains("App URL")).to.be.false;
208
+ expect(wrapper.contains("File path")).to.be.true;
209
+ expect(wrapper.contains("Arguments")).to.be.true;
210
+ expect(wrapper.contains("API access")).to.be.true;
211
+ expect(wrapper.contains("Virtual app name")).to.be.false;
212
+ expect(wrapper.contains("Launch timeout")).to.be.false;
213
+ expect(wrapper.contains("Persist across workspaces")).to.be.true;
214
+ expect(wrapper.find("#accordion-control-select-connect").exists()).to.be.false;
215
+ expect(wrapper.find("#accordion-control-preloads").exists()).to.be.false;
216
+ expect(wrapper.find("#accordion-control-window").exists()).to.be.true;
217
+ expect(wrapper.find("#accordion-control-window-behavior").exists()).to.be.false;
218
+ expect(wrapper.find("#accordion-control-interop").exists()).to.be.false;
219
+ expect(wrapper.find("#accordion-control-component").exists()).to.be.true;
220
+ expect(wrapper.find("#accordion-control-workspace").exists()).to.be.true;
177
221
  expect(wrapper.find("#persist-url").exists()).to.be.false;
178
222
  expect(wrapper.find("#persist-path").exists()).to.be.true;
179
223
  });
224
+ it("Citrix app type", () => {
225
+ const wrapper = mount(React.createElement(CitrixPage, Object.assign({}, CitrixPage.args)));
226
+ expect(wrapper.contains("App URL")).to.be.false;
227
+ expect(wrapper.contains("File path")).to.be.false;
228
+ expect(wrapper.contains("Arguments")).to.be.true;
229
+ expect(wrapper.contains("API access")).to.be.false;
230
+ expect(wrapper.contains("Virtual app name")).to.be.true;
231
+ expect(wrapper.contains("Launch timeout")).to.be.false;
232
+ expect(wrapper.contains("Persist across workspaces")).to.be.false;
233
+ expect(wrapper.find("#accordion-control-select-connect").exists()).to.be.true;
234
+ expect(wrapper.find("#accordion-control-preloads").exists()).to.be.false;
235
+ expect(wrapper.find("#accordion-control-window").exists()).to.be.false;
236
+ expect(wrapper.find("#accordion-control-window-behavior").exists()).to.be.false;
237
+ expect(wrapper.find("#accordion-control-interop").exists()).to.be.true;
238
+ expect(wrapper.find("#accordion-control-component").exists()).to.be.true;
239
+ expect(wrapper.find("#accordion-control-workspace").exists()).to.be.false;
240
+ expect(wrapper.find("#persist-url").exists()).to.be.false;
241
+ expect(wrapper.find("#persist-path").exists()).to.be.false;
242
+ });
180
243
  });
181
244
  describe("Name", () => {
182
245
  afterEach(() => {
@@ -295,26 +358,32 @@ describe("<AppEditPage/>", () => {
295
358
  const assimilationParams = {
296
359
  appType: "assimilation",
297
360
  };
298
- it.skip("should display correctly when preset: With API Access", () => {
299
- presetRadioButtons(name, nativeParams, [true, false]);
300
- });
301
- it.skip("should display correctly when preset: Without API Access", () => {
302
- presetRadioButtons(name, assimilationParams, [false, true]);
303
- });
304
361
  it("should save correctly when edited: With API Access", () => {
305
- saveRadioButton(name, 0, nativeParams, NativePage);
362
+ const buttonSpy = sinon.spy(AssimilationPage.args, "submitFn");
363
+ const wrapper = mount(React.createElement(Page, Object.assign({}, AssimilationPage.args)));
364
+ wrapper.find(`input[type='checkbox'][name='${name}']`).simulate("change");
365
+ const collection = wrapper.find("button");
366
+ const saveButton = collection.at(collection.length - 1);
367
+ saveButton.simulate("click");
368
+ const savedValue = buttonSpy.args[0][0];
369
+ for (let key in assimilationParams) {
370
+ expect(savedValue[key]).to.equal(nativeParams[key]);
371
+ }
306
372
  });
307
373
  it("should save correctly when edited: Without API Access", () => {
308
- saveRadioButton(name, 1, assimilationParams, NativePage);
309
- });
310
- it("confirm that the radio buttons stay independent", () => {
311
- checkUniqueRadioButtons(name, 2, NativePage);
312
- });
313
- it("should submit on enter: Yes", () => {
314
- testSubmitOnEnter("#api-access-yes", NativePage);
374
+ const buttonSpy = sinon.spy(NativePage.args, "submitFn");
375
+ const wrapper = mount(React.createElement(Page, Object.assign({}, NativePage.args)));
376
+ wrapper.find(`input[type='checkbox'][name='${name}']`).simulate("change");
377
+ const collection = wrapper.find("button");
378
+ const saveButton = collection.at(collection.length - 1);
379
+ saveButton.simulate("click");
380
+ const savedValue = buttonSpy.args[0][0];
381
+ for (let key in assimilationParams) {
382
+ expect(savedValue[key]).to.equal(assimilationParams[key]);
383
+ }
315
384
  });
316
- it("should submit on enter: No", () => {
317
- testSubmitOnEnter("#api-access-no", NativePage);
385
+ it("should submit on enter", () => {
386
+ testSubmitOnEnter("[name='api-access']", NativePage);
318
387
  });
319
388
  });
320
389
  describe("App URL", () => {
@@ -757,8 +826,8 @@ describe("<AppEditPage/>", () => {
757
826
  flipCheckbox(appDataKey, label, false);
758
827
  });
759
828
  });
760
- describe("Show title bar", () => {
761
- const label = "Show title bar";
829
+ describe("Enable title bar", () => {
830
+ const label = "Enable title bar";
762
831
  const appDataKey = "enableTitleBar";
763
832
  it("should display pre-set value: checked", () => {
764
833
  presetCheckbox(appDataKey, label, true, true);
@@ -1132,7 +1201,7 @@ describe("<AppEditPage/>", () => {
1132
1201
  });
1133
1202
  });
1134
1203
  describe("Persist the location", () => {
1135
- const label = "Persist the location";
1204
+ const label = "Persist the URL";
1136
1205
  const appDataKey = "persistURL";
1137
1206
  it("should display pre-set value: checked", () => {
1138
1207
  presetCheckbox(appDataKey, label, true, true);