react-native-navigation的迁移库

LayoutBuilder.test.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. describe('LayoutBuilder', () => {
  2. let LayoutBuilder;
  3. beforeEach(() => {
  4. jest.mock('../providers/UniqueIdProvider');
  5. LayoutBuilder = require('./LayoutBuilder');
  6. });
  7. describe('parse', () => {
  8. it('deeply clones input params', () => {
  9. const input = {inner: {value: 1}};
  10. expect(LayoutBuilder.parse(input)).not.toBe(input);
  11. expect(LayoutBuilder.parse(input).inner).not.toBe(input.inner);
  12. });
  13. it('adds uniqueId to passed container', () => {
  14. expect(LayoutBuilder.parse({
  15. container: {
  16. name: 'com.example.MyScreen'
  17. }
  18. })).toEqual({
  19. container: {
  20. name: 'com.example.MyScreen',
  21. id: 'containerUNIQUE'
  22. }
  23. });
  24. });
  25. it('adds uniqueId to passed sideMenu', () => {
  26. expect(LayoutBuilder.parse({
  27. container: {
  28. name: 'com.example.MyScreen'
  29. },
  30. sideMenu: {
  31. left: {
  32. name: 'com.example.SideMenu1'
  33. },
  34. right: {
  35. name: 'com.example.SideMenu2'
  36. }
  37. }
  38. })).toEqual({
  39. container: {
  40. name: 'com.example.MyScreen',
  41. id: 'containerUNIQUE'
  42. },
  43. sideMenu: {
  44. left: {
  45. name: 'com.example.SideMenu1',
  46. id: 'containerUNIQUE'
  47. },
  48. right: {
  49. name: 'com.example.SideMenu2',
  50. id: 'containerUNIQUE'
  51. }
  52. }
  53. });
  54. });
  55. it('adds uniqueId to passed tabs', () => {
  56. expect(LayoutBuilder.parse({
  57. tabs: [
  58. {
  59. container: {
  60. name: 'com.example.FirstTab'
  61. }
  62. },
  63. {
  64. container: {
  65. name: 'com.example.SecondTab'
  66. }
  67. },
  68. {
  69. container: {
  70. name: 'com.example.FirstTab'
  71. }
  72. }
  73. ],
  74. sideMenu: {
  75. left: {
  76. name: 'com.example.Menu1'
  77. },
  78. right: {
  79. name: 'com.example.Menu2'
  80. }
  81. }
  82. })).toEqual({
  83. tabs: [
  84. {
  85. container: {
  86. name: 'com.example.FirstTab',
  87. id: 'containerUNIQUE'
  88. }
  89. },
  90. {
  91. container: {
  92. name: 'com.example.SecondTab',
  93. id: 'containerUNIQUE'
  94. }
  95. },
  96. {
  97. container: {
  98. name: 'com.example.FirstTab',
  99. id: 'containerUNIQUE'
  100. }
  101. }
  102. ],
  103. sideMenu: {
  104. left: {
  105. name: 'com.example.Menu1',
  106. id: 'containerUNIQUE'
  107. },
  108. right: {
  109. name: 'com.example.Menu2',
  110. id: 'containerUNIQUE'
  111. }
  112. }
  113. });
  114. });
  115. });
  116. });