selectors.test.ts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. /*
  2. * <<
  3. * Davinci
  4. * ==
  5. * Copyright (C) 2016 - 2017 EDP
  6. * ==
  7. * Licensed under the Apache License, Version 2.0 (the "License");
  8. * you may not use this file except in compliance with the License.
  9. * You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing, software
  14. * distributed under the License is distributed on an "AS IS" BASIS,
  15. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. * See the License for the specific language governing permissions and
  17. * limitations under the License.
  18. * >>
  19. */
  20. import {
  21. selectDisplay,
  22. makeSelectCurrentLayersOperationInfo,
  23. makeSelectLayersBySlide,
  24. makeSelectLayerIdsBySlide,
  25. makeSelectCurrentLayerList,
  26. selectCurrentLayers,
  27. makeSelectCurrentLayerIds,
  28. makeSelectSlideLayerContextValue,
  29. makeSelectCurrentLayersMaxIndex,
  30. makeSelectCurrentSelectedLayerList,
  31. makeSelectCurrentEditLayerOperationInfo,
  32. makeSelectCurrentSelectedLayerIds,
  33. makeSelectCurrentOperatingLayerList,
  34. makeSelectCurrentOtherLayerList,
  35. makeSelectCurrentOperateItemParams,
  36. makeSelectCurrentDisplayWidgets,
  37. makeSelectClipboardLayers,
  38. makeSelectCurrentDisplayShareToken,
  39. makeSelectCurrentDisplayPasswordShareToken,
  40. makeSelectCurrentDisplayPasswordSharePassword,
  41. makeSelectCurrentDisplayAuthorizedShareToken,
  42. makeSelectSharePanel,
  43. makeSelectDisplayLoading,
  44. makeSelectEditorBaselines
  45. } from 'app/containers/Display/selectors'
  46. import { displayInitialState } from 'app/containers/Display/reducer'
  47. import {
  48. mockGraphLayerId,
  49. mockSlideId,
  50. mockEditing,
  51. mockDisplayState,
  52. mockGraphLayerFormed,
  53. mockGraphLayerInfo
  54. } from './fixtures'
  55. describe('displaySelector', () => {
  56. let state
  57. beforeEach(() => {
  58. state = {
  59. display: displayInitialState
  60. }
  61. })
  62. describe('selectDisplay', () => {
  63. it('should select the display state', () => {
  64. expect(selectDisplay(state)).toEqual(state.display)
  65. })
  66. })
  67. describe('makeSelectCurrentLayersOperationInfo', () => {
  68. let selectCurrentLayersOperationInfo = makeSelectCurrentLayersOperationInfo()
  69. it('should select the current layer operation info', () => {
  70. expect(selectCurrentLayersOperationInfo(mockDisplayState)).toEqual(
  71. mockDisplayState.display.slideLayersOperationInfo[
  72. mockDisplayState.display.currentSlideId
  73. ]
  74. )
  75. })
  76. })
  77. describe('makeSelectLayersBySlide', () => {
  78. let selectLayersBySlide
  79. beforeEach(() => {
  80. selectLayersBySlide = makeSelectLayersBySlide()
  81. selectLayersBySlide.resetRecomputations()
  82. })
  83. test('should return bizTable state', () => {
  84. expect(selectLayersBySlide(state, mockSlideId)).toEqual(
  85. state.display.slideLayers[mockSlideId]
  86. )
  87. })
  88. })
  89. describe('makeSelectLayerIdsBySlide', () => {
  90. let selectLayerIdsBySlide
  91. beforeEach(() => {
  92. selectLayerIdsBySlide = makeSelectLayerIdsBySlide()
  93. selectLayerIdsBySlide.resetRecomputations()
  94. })
  95. test('should return select layer ids by slide', () => {
  96. expect(selectLayerIdsBySlide(mockDisplayState, mockSlideId)).toEqual(
  97. Object.keys(mockDisplayState.display.slideLayers[mockSlideId]).map(
  98. (id) => +id
  99. )
  100. )
  101. })
  102. })
  103. describe('makeSelectCurrentLayerList', () => {
  104. const selectCurrentLayerList = makeSelectCurrentLayerList()
  105. test('should return select current layer list', () => {
  106. expect(selectCurrentLayerList(mockDisplayState)).toEqual(
  107. Object.values(
  108. mockDisplayState.display.slideLayers[
  109. mockDisplayState.display.currentSlideId
  110. ]
  111. ).sort((l1, l2) => l2.index - l1.index)
  112. )
  113. })
  114. })
  115. describe('makeSelectCurrentLayerIds', () => {
  116. const selectCurrentLayerIds = makeSelectCurrentLayerIds()
  117. test('should return select current layer ids', () => {
  118. expect(selectCurrentLayerIds(mockDisplayState)).toEqual(
  119. Object.keys(
  120. mockDisplayState.display.slideLayers[
  121. mockDisplayState.display.currentSlideId
  122. ]
  123. ).map((id) => +id)
  124. )
  125. })
  126. })
  127. describe('makeSelectSlideLayerContextValue', () => {
  128. const selectSlideLayerContextValue = makeSelectSlideLayerContextValue()
  129. test('should return select slide layer context value', () => {
  130. expect(
  131. selectSlideLayerContextValue(
  132. mockDisplayState,
  133. mockSlideId,
  134. mockGraphLayerId,
  135. mockEditing
  136. )
  137. ).toEqual({
  138. layer: mockGraphLayerFormed,
  139. layerInfo: mockGraphLayerInfo
  140. })
  141. })
  142. })
  143. describe('makeSelectCurrentLayersMaxIndex', () => {
  144. const selectCurrentLayersMaxIndex = makeSelectCurrentLayersMaxIndex()
  145. const currentLayers =
  146. mockDisplayState.display.slideLayers[
  147. mockDisplayState.display.currentSlideId
  148. ]
  149. const currentLayerList = Object.values(currentLayers).sort(
  150. (l1, l2) => l2.index - l1.index
  151. )
  152. test('should return select current layer max index', () => {
  153. expect(selectCurrentLayersMaxIndex(mockDisplayState)).toEqual(
  154. currentLayerList[currentLayerList.length - 1].index
  155. )
  156. })
  157. })
  158. describe('makeSelectCurrentSelectedLayerList', () => {
  159. const selectCurrentSelectedLayerList = makeSelectCurrentSelectedLayerList()
  160. const currentLayers =
  161. mockDisplayState.display.slideLayers[
  162. mockDisplayState.display.currentSlideId
  163. ]
  164. const currentLayerList = Object.values(currentLayers).sort(
  165. (l1, l2) => l2.index - l1.index
  166. )
  167. const currentLayersOperationInfo =
  168. mockDisplayState.display.slideLayersOperationInfo[
  169. mockDisplayState.display.currentSlideId
  170. ]
  171. test('should return select current select layer list', () => {
  172. expect(selectCurrentSelectedLayerList(mockDisplayState)).toEqual(
  173. currentLayerList.filter(
  174. ({ id }) => currentLayersOperationInfo[id].selected
  175. )
  176. )
  177. })
  178. })
  179. describe('makeSelectCurrentEditLayerOperationInfo', () => {
  180. const selectCurrentEditLayerOperationInfo = makeSelectCurrentEditLayerOperationInfo()
  181. const currentEditOperationInfo =
  182. mockDisplayState.display.slideLayersOperationInfo[
  183. mockDisplayState.display.currentSlideId
  184. ]
  185. test('should return select current edit layer operation info', () => {
  186. expect(selectCurrentEditLayerOperationInfo(mockDisplayState)).toEqual(
  187. Object.values(currentEditOperationInfo).filter(
  188. (layerInfo) => layerInfo.editing
  189. )
  190. )
  191. })
  192. })
  193. describe('makeSelectCurrentSelectedLayerIds', () => {
  194. const selectCurrentSelectedLayerIds = makeSelectCurrentSelectedLayerIds()
  195. const currentLayersOperationInfo =
  196. mockDisplayState.display.slideLayersOperationInfo[
  197. mockDisplayState.display.currentSlideId
  198. ]
  199. test('should return select current select layer ids', () => {
  200. expect(selectCurrentSelectedLayerIds(mockDisplayState)).toEqual(
  201. Object.keys(currentLayersOperationInfo)
  202. .filter((id) => currentLayersOperationInfo[+id].selected)
  203. .map((id) => +id)
  204. )
  205. })
  206. })
  207. describe('makeSelectCurrentOperatingLayerList', () => {
  208. const selectCurrentOperatingLayerList = makeSelectCurrentOperatingLayerList()
  209. const currentLayers =
  210. mockDisplayState.display.slideLayers[
  211. mockDisplayState.display.currentSlideId
  212. ]
  213. test('should return select current operating layer list', () => {
  214. expect(
  215. selectCurrentOperatingLayerList(mockDisplayState, mockGraphLayerId)
  216. ).toEqual([currentLayers[mockGraphLayerId]])
  217. })
  218. })
  219. describe('makeSelectCurrentOtherLayerList', () => {
  220. const selectCurrentOtherLayerList = makeSelectCurrentOtherLayerList()
  221. const currentLayers =
  222. mockDisplayState.display.slideLayers[
  223. mockDisplayState.display.currentSlideId
  224. ]
  225. test('should return select current other layer list', () => {
  226. expect(
  227. selectCurrentOtherLayerList(mockDisplayState, mockGraphLayerId)
  228. ).toEqual([currentLayers[mockGraphLayerId]])
  229. })
  230. })
  231. describe('makeSelectCurrentOperateItemParams', () => {
  232. const selectCurrentOperateItemParams = makeSelectCurrentOperateItemParams()
  233. test('should return select current operate item params', () => {
  234. expect(selectCurrentOperateItemParams(state)).toEqual(
  235. state.display.operateItemParams
  236. )
  237. })
  238. })
  239. describe('makeSelectCurrentDisplayWidgets', () => {
  240. const selectCurrentDisplayWidgets = makeSelectCurrentDisplayWidgets()
  241. test('should return select current display widgets', () => {
  242. expect(selectCurrentDisplayWidgets(state)).toEqual(
  243. state.display.currentDisplayWidgets
  244. )
  245. })
  246. })
  247. describe('makeSelectClipboardLayers', () => {
  248. const selectClipboardLayers = makeSelectClipboardLayers()
  249. test('should return select clipboard layer list', () => {
  250. expect(selectClipboardLayers(state)).toEqual(
  251. state.display.clipboardLayers
  252. )
  253. })
  254. })
  255. describe('makeSelectCurrentDisplayShareToken', () => {
  256. const selectCurrentDisplayShareToken = makeSelectCurrentDisplayShareToken()
  257. test('should return select current display share token', () => {
  258. expect(selectCurrentDisplayShareToken(state)).toEqual(
  259. state.display.currentDisplayShareToken
  260. )
  261. })
  262. })
  263. describe('makeSelectCurrentDisplayPasswordShareToken', () => {
  264. const selectCurrentDisplayPasswordShareToken = makeSelectCurrentDisplayPasswordShareToken()
  265. test('should return select current display password share token', () => {
  266. expect(selectCurrentDisplayPasswordShareToken(state)).toEqual(
  267. state.display.currentDisplayPasswordShareToken
  268. )
  269. })
  270. })
  271. describe('makeSelectCurrentDisplayPasswordSharePassword', () => {
  272. const selectCurrentDisplayPasswordSharePassword = makeSelectCurrentDisplayPasswordSharePassword()
  273. test('should return select current display password share password', () => {
  274. expect(selectCurrentDisplayPasswordSharePassword(state)).toEqual(
  275. state.display.currentDisplayPasswordPassword
  276. )
  277. })
  278. })
  279. describe('makeSelectCurrentDisplayAuthorizedShareToken', () => {
  280. const selectCurrentDisplayAuthorizedShareToken = makeSelectCurrentDisplayAuthorizedShareToken()
  281. test('should return select current display authorized share token', () => {
  282. expect(selectCurrentDisplayAuthorizedShareToken(state)).toEqual(
  283. state.display.currentDisplayAuthorizedShareToken
  284. )
  285. })
  286. })
  287. describe('makeSelectSharePanel', () => {
  288. const selectSharePanel = makeSelectSharePanel()
  289. test('should return select share panel', () => {
  290. expect(selectSharePanel(state)).toEqual(state.display.sharePanel)
  291. })
  292. })
  293. describe('makeSelectDisplayLoading', () => {
  294. const selectDisplayLoading = makeSelectDisplayLoading()
  295. test('should return select display loading', () => {
  296. expect(selectDisplayLoading(state)).toEqual(state.display.loading)
  297. })
  298. })
  299. describe('makeSelectEditorBaselines', () => {
  300. const selectEditorBaselines = makeSelectEditorBaselines()
  301. test('should return select editor baselines', () => {
  302. expect(selectEditorBaselines(state)).toEqual(
  303. state.display.editorBaselines
  304. )
  305. })
  306. })
  307. describe('selectCurrentLayers', () => {
  308. test('should return select current layers', () => {
  309. expect(selectCurrentLayers(mockDisplayState)).toEqual(
  310. mockDisplayState.display.slideLayers[
  311. mockDisplayState.display.currentSlideId
  312. ]
  313. )
  314. })
  315. })
  316. })