space.test.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import React from 'react';
  2. import { mount } from 'enzyme';
  3. import { BASE_CLASS_PREFIX } from '../../../semi-foundation/base/constants';
  4. import Space from '../index';
  5. describe('Space', () => {
  6. it('spacing', () => {
  7. const defaultNode = mount(
  8. <Space>
  9. {Array.from(Array(5)).map((i, idx) => (
  10. <div key={idx}>content</div>
  11. ))}
  12. </Space>
  13. );
  14. const looseNode = mount(
  15. <Space spacing="loose">
  16. {Array.from(Array(5)).map((i, idx) => (
  17. <div key={idx}>content</div>
  18. ))}
  19. </Space>
  20. );
  21. const mediumNode = mount(
  22. <Space spacing="medium">
  23. {Array.from(Array(5)).map((i, idx) => (
  24. <div key={idx}>content</div>
  25. ))}
  26. </Space>
  27. );
  28. const tightNode = mount(
  29. <Space spacing="tight">
  30. {Array.from(Array(5)).map((i, idx) => (
  31. <div key={idx}>content</div>
  32. ))}
  33. </Space>
  34. );
  35. const numberNode = mount(
  36. <Space spacing={20}>
  37. {Array.from(Array(5)).map((i, idx) => (
  38. <div key={idx}>content</div>
  39. ))}
  40. </Space>
  41. );
  42. const arrayNumberNode = mount(
  43. <Space spacing={[10, 20]}>
  44. {Array.from(Array(5)).map((i, idx) => (
  45. <div key={idx}>content</div>
  46. ))}
  47. </Space>
  48. );
  49. const arrayStringNode = mount(
  50. <Space spacing={['tight', 'loose']}>
  51. {Array.from(Array(5)).map((i, idx) => (
  52. <div key={idx}>content</div>
  53. ))}
  54. </Space>
  55. );
  56. expect(defaultNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-tight-horizontal')).toEqual(true);
  57. expect(defaultNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-tight-vertical')).toEqual(true);
  58. expect(looseNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-loose-horizontal')).toEqual(true);
  59. expect(looseNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-loose-vertical')).toEqual(true);
  60. expect(mediumNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-medium-horizontal')).toEqual(true);
  61. expect(mediumNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-medium-vertical')).toEqual(true);
  62. expect(tightNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-tight-horizontal')).toEqual(true);
  63. expect(tightNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-tight-vertical')).toEqual(true);
  64. expect(numberNode.find(`.${BASE_CLASS_PREFIX}-space`).getDOMNode().style['column-gap']).toEqual('20px');
  65. expect(numberNode.find(`.${BASE_CLASS_PREFIX}-space`).getDOMNode().style['row-gap']).toEqual('20px');
  66. expect(arrayNumberNode.find(`.${BASE_CLASS_PREFIX}-space`).getDOMNode().style['column-gap']).toEqual('10px');
  67. expect(arrayNumberNode.find(`.${BASE_CLASS_PREFIX}-space`).getDOMNode().style['row-gap']).toEqual('20px');
  68. expect(arrayStringNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-tight-horizontal')).toEqual(
  69. true
  70. );
  71. expect(arrayStringNode.find(`.${BASE_CLASS_PREFIX}-space`).hasClass('semi-space-loose-vertical')).toEqual(true);
  72. });
  73. it('children render', () => {
  74. const containNullNode = mount(
  75. <Space>
  76. <div>content</div>
  77. {null}
  78. <div>content</div>
  79. {false}
  80. <div>content</div>
  81. {undefined}
  82. <>
  83. <div>content</div>
  84. <div>content</div>
  85. </>
  86. </Space>
  87. );
  88. const children = containNullNode.find(`.${BASE_CLASS_PREFIX}-space`).children();
  89. expect(children.length).toEqual(5);
  90. });
  91. });