@pie-element/categorize 11.3.4-next.3 → 12.0.0-beta.1

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 (106) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/__tests__/main.test.js +100 -0
  4. package/configure/lib/__tests__/utils.js +39 -0
  5. package/configure/lib/defaults.js +3 -6
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/design/__tests__/builder.test.js +34 -0
  8. package/configure/lib/design/__tests__/buttons.test.js +36 -0
  9. package/configure/lib/design/__tests__/header.test.js +37 -0
  10. package/configure/lib/design/__tests__/index.test.js +125 -0
  11. package/configure/lib/design/__tests__/input-header.test.js +41 -0
  12. package/configure/lib/design/builder.js +16 -34
  13. package/configure/lib/design/builder.js.map +1 -1
  14. package/configure/lib/design/buttons.js +42 -96
  15. package/configure/lib/design/buttons.js.map +1 -1
  16. package/configure/lib/design/categories/RowLabel.js +34 -47
  17. package/configure/lib/design/categories/RowLabel.js.map +1 -1
  18. package/configure/lib/design/categories/__tests__/alternateResponses.test.js +93 -0
  19. package/configure/lib/design/categories/__tests__/category.test.js +65 -0
  20. package/configure/lib/design/categories/__tests__/choice-preview.test.js +52 -0
  21. package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +63 -0
  22. package/configure/lib/design/categories/__tests__/index.test.js +91 -0
  23. package/configure/lib/design/categories/alternateResponses.js +97 -252
  24. package/configure/lib/design/categories/alternateResponses.js.map +1 -1
  25. package/configure/lib/design/categories/category.js +136 -209
  26. package/configure/lib/design/categories/category.js.map +1 -1
  27. package/configure/lib/design/categories/choice-preview.js +62 -127
  28. package/configure/lib/design/categories/choice-preview.js.map +1 -1
  29. package/configure/lib/design/categories/droppable-placeholder.js +74 -166
  30. package/configure/lib/design/categories/droppable-placeholder.js.map +1 -1
  31. package/configure/lib/design/categories/index.js +196 -385
  32. package/configure/lib/design/categories/index.js.map +1 -1
  33. package/configure/lib/design/choices/__tests__/choice.test.js +62 -0
  34. package/configure/lib/design/choices/__tests__/config.test.js +66 -0
  35. package/configure/lib/design/choices/__tests__/index.test.js +70 -0
  36. package/configure/lib/design/choices/choice.js +156 -265
  37. package/configure/lib/design/choices/choice.js.map +1 -1
  38. package/configure/lib/design/choices/config.js +43 -99
  39. package/configure/lib/design/choices/config.js.map +1 -1
  40. package/configure/lib/design/choices/index.js +149 -237
  41. package/configure/lib/design/choices/index.js.map +1 -1
  42. package/configure/lib/design/header.js +58 -112
  43. package/configure/lib/design/header.js.map +1 -1
  44. package/configure/lib/design/index.js +633 -478
  45. package/configure/lib/design/index.js.map +1 -1
  46. package/configure/lib/design/input-header.js +95 -151
  47. package/configure/lib/design/input-header.js.map +1 -1
  48. package/configure/lib/design/utils.js +5 -16
  49. package/configure/lib/design/utils.js.map +1 -1
  50. package/configure/lib/index.js +121 -184
  51. package/configure/lib/index.js.map +1 -1
  52. package/configure/lib/main.js +31 -75
  53. package/configure/lib/main.js.map +1 -1
  54. package/configure/lib/utils.js +23 -33
  55. package/configure/lib/utils.js.map +1 -1
  56. package/configure/package.json +15 -15
  57. package/controller/CHANGELOG.md +0 -11
  58. package/controller/lib/__tests__/index.test.js +526 -0
  59. package/controller/lib/defaults.js +3 -6
  60. package/controller/lib/defaults.js.map +1 -1
  61. package/controller/lib/index.js +238 -319
  62. package/controller/lib/index.js.map +1 -1
  63. package/controller/lib/utils.js +29 -66
  64. package/controller/lib/utils.js.map +1 -1
  65. package/controller/package.json +5 -5
  66. package/docs/demo/.pie/.configure/package.json +10 -0
  67. package/docs/demo/.pie/.configure/yarn.lock +2181 -0
  68. package/docs/demo/.pie/.controllers/package.json +10 -0
  69. package/docs/demo/.pie/.controllers/yarn.lock +110 -0
  70. package/docs/demo/.pie/info.entry.js +89 -0
  71. package/docs/demo/.pie/info.webpack.config.js +119 -0
  72. package/docs/demo/.pie/package.json +10 -0
  73. package/docs/demo/.pie/yarn.lock +2190 -0
  74. package/docs/demo/pie.manifest.json +11 -0
  75. package/lib/__tests__/index.test.js +197 -0
  76. package/lib/categorize/__tests__/categories.test.js +138 -0
  77. package/lib/categorize/__tests__/category.test.js +137 -0
  78. package/lib/categorize/__tests__/choice.test.js +88 -0
  79. package/lib/categorize/__tests__/choices.test.js +118 -0
  80. package/lib/categorize/__tests__/droppable-placeholder.test.js +96 -0
  81. package/lib/categorize/__tests__/grid-content.test.js +48 -0
  82. package/lib/categorize/__tests__/index.test.js +152 -0
  83. package/lib/categorize/categories.js +107 -165
  84. package/lib/categorize/categories.js.map +1 -1
  85. package/lib/categorize/category.js +74 -124
  86. package/lib/categorize/category.js.map +1 -1
  87. package/lib/categorize/choice.js +119 -246
  88. package/lib/categorize/choice.js.map +1 -1
  89. package/lib/categorize/choices.js +67 -132
  90. package/lib/categorize/choices.js.map +1 -1
  91. package/lib/categorize/droppable-placeholder.js +47 -104
  92. package/lib/categorize/droppable-placeholder.js.map +1 -1
  93. package/lib/categorize/grid-content.js +40 -88
  94. package/lib/categorize/grid-content.js.map +1 -1
  95. package/lib/categorize/index.js +342 -318
  96. package/lib/categorize/index.js.map +1 -1
  97. package/lib/index.js +286 -307
  98. package/lib/index.js.map +1 -1
  99. package/package.json +16 -14
  100. package/esm/configure.js +0 -34401
  101. package/esm/configure.js.map +0 -1
  102. package/esm/controller.js +0 -1468
  103. package/esm/controller.js.map +0 -1
  104. package/esm/element.js +0 -13134
  105. package/esm/element.js.map +0 -1
  106. package/esm/package.json +0 -3
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _styles = require("@mui/material/styles");
7
+ var _choices = require("../choices");
8
+ jest.mock('../choice', () => ({
9
+ __esModule: true,
10
+ default: ({
11
+ label,
12
+ id
13
+ }) => /*#__PURE__*/_react.default.createElement("div", {
14
+ "data-testid": `choice-${id}`
15
+ }, label),
16
+ ChoiceType: {}
17
+ }));
18
+ jest.mock('@pie-lib/drag', () => ({
19
+ DraggableChoice: props => /*#__PURE__*/_react.default.createElement("div", props),
20
+ PlaceHolder: ({
21
+ children
22
+ }) => /*#__PURE__*/_react.default.createElement("div", null, children),
23
+ uid: {
24
+ withUid: jest.fn(input => input),
25
+ generateUid: jest.fn().mockReturnValue('1')
26
+ }
27
+ }));
28
+ const theme = (0, _styles.createTheme)();
29
+ describe('Choices', () => {
30
+ const renderChoices = extras => {
31
+ const defaults = {
32
+ classes: {},
33
+ choices: [],
34
+ onDropChoice: jest.fn(),
35
+ onRemoveChoice: jest.fn(),
36
+ id: '1',
37
+ label: 'Category Label',
38
+ grid: {
39
+ columns: 1,
40
+ rows: 1
41
+ }
42
+ };
43
+ const props = {
44
+ ...defaults,
45
+ ...extras
46
+ };
47
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
48
+ theme: theme
49
+ }, /*#__PURE__*/_react.default.createElement(_choices.Choices, props)));
50
+ };
51
+ describe('rendering', () => {
52
+ it('renders without crashing', () => {
53
+ const {
54
+ container
55
+ } = renderChoices();
56
+ expect(container).toBeInTheDocument();
57
+ });
58
+ it('renders when disabled', () => {
59
+ const {
60
+ container
61
+ } = renderChoices({
62
+ disabled: true
63
+ });
64
+ expect(container).toBeInTheDocument();
65
+ });
66
+ it('renders choices with their labels', () => {
67
+ renderChoices({
68
+ choices: [{
69
+ id: '1',
70
+ label: 'Choice One'
71
+ }, {
72
+ id: '2',
73
+ label: 'Choice Two'
74
+ }]
75
+ });
76
+ expect(_react2.screen.getByTestId('choice-1')).toBeInTheDocument();
77
+ expect(_react2.screen.getByTestId('choice-2')).toBeInTheDocument();
78
+ expect(_react2.screen.getByText('Choice One')).toBeInTheDocument();
79
+ expect(_react2.screen.getByText('Choice Two')).toBeInTheDocument();
80
+ });
81
+ it('does not render empty choices as visible elements', () => {
82
+ const {
83
+ container
84
+ } = renderChoices({
85
+ choices: [{
86
+ empty: true
87
+ }, {
88
+ id: '1',
89
+ label: 'Visible Choice'
90
+ }]
91
+ });
92
+ expect(_react2.screen.getByText('Visible Choice')).toBeInTheDocument();
93
+ // Empty choice renders as empty div
94
+ expect(container.querySelectorAll('[data-testid^="choice-"]').length).toBe(1);
95
+ });
96
+ });
97
+ describe('choices label', () => {
98
+ it('displays choices label when provided', () => {
99
+ renderChoices({
100
+ model: {
101
+ choicesLabel: 'Available Choices',
102
+ categoriesPerRow: 1
103
+ }
104
+ });
105
+ expect(_react2.screen.getByText('Available Choices')).toBeInTheDocument();
106
+ });
107
+ it('does not display label when choicesLabel is empty', () => {
108
+ renderChoices({
109
+ model: {
110
+ choicesLabel: '',
111
+ categoriesPerRow: 1
112
+ }
113
+ });
114
+ expect(_react2.screen.queryByText('Available Choices')).not.toBeInTheDocument();
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2Nob2ljZXMiLCJqZXN0IiwibW9jayIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwibGFiZWwiLCJpZCIsImNyZWF0ZUVsZW1lbnQiLCJDaG9pY2VUeXBlIiwiRHJhZ2dhYmxlQ2hvaWNlIiwicHJvcHMiLCJQbGFjZUhvbGRlciIsImNoaWxkcmVuIiwidWlkIiwid2l0aFVpZCIsImZuIiwiaW5wdXQiLCJnZW5lcmF0ZVVpZCIsIm1vY2tSZXR1cm5WYWx1ZSIsInRoZW1lIiwiY3JlYXRlVGhlbWUiLCJkZXNjcmliZSIsInJlbmRlckNob2ljZXMiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjaG9pY2VzIiwib25Ecm9wQ2hvaWNlIiwib25SZW1vdmVDaG9pY2UiLCJncmlkIiwiY29sdW1ucyIsInJvd3MiLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiQ2hvaWNlcyIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJkaXNhYmxlZCIsInNjcmVlbiIsImdldEJ5VGVzdElkIiwiZ2V0QnlUZXh0IiwiZW1wdHkiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwidG9CZSIsIm1vZGVsIiwiY2hvaWNlc0xhYmVsIiwiY2F0ZWdvcmllc1BlclJvdyIsInF1ZXJ5QnlUZXh0Iiwibm90Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhdGVnb3JpemUvX190ZXN0c19fL2Nob2ljZXMudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciwgc2NyZWVuIH0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQgeyBUaGVtZVByb3ZpZGVyLCBjcmVhdGVUaGVtZSB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwvc3R5bGVzJztcbmltcG9ydCB7IENob2ljZXMgfSBmcm9tICcuLi9jaG9pY2VzJztcblxuamVzdC5tb2NrKCcuLi9jaG9pY2UnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAoeyBsYWJlbCwgaWQgfSkgPT4gPGRpdiBkYXRhLXRlc3RpZD17YGNob2ljZS0ke2lkfWB9PntsYWJlbH08L2Rpdj4sXG4gIENob2ljZVR5cGU6IHt9LFxufSkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9kcmFnJywgKCkgPT4gKHtcbiAgRHJhZ2dhYmxlQ2hvaWNlOiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbiAgUGxhY2VIb2xkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgdWlkOiB7XG4gICAgd2l0aFVpZDogamVzdC5mbigoaW5wdXQpID0+IGlucHV0KSxcbiAgICBnZW5lcmF0ZVVpZDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSgnMScpLFxuICB9LFxufSkpO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdDaG9pY2VzJywgKCkgPT4ge1xuICBjb25zdCByZW5kZXJDaG9pY2VzID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjaG9pY2VzOiBbXSxcbiAgICAgIG9uRHJvcENob2ljZTogamVzdC5mbigpLFxuICAgICAgb25SZW1vdmVDaG9pY2U6IGplc3QuZm4oKSxcbiAgICAgIGlkOiAnMScsXG4gICAgICBsYWJlbDogJ0NhdGVnb3J5IExhYmVsJyxcbiAgICAgIGdyaWQ6IHsgY29sdW1uczogMSwgcm93czogMSB9LFxuICAgIH07XG5cbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoXG4gICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICA8Q2hvaWNlcyB7Li4ucHJvcHN9IC8+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ2hvaWNlcygpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdoZW4gZGlzYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ2hvaWNlcyh7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNob2ljZXMgd2l0aCB0aGVpciBsYWJlbHMnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDaG9pY2VzKHtcbiAgICAgICAgY2hvaWNlczogW1xuICAgICAgICAgIHsgaWQ6ICcxJywgbGFiZWw6ICdDaG9pY2UgT25lJyB9LFxuICAgICAgICAgIHsgaWQ6ICcyJywgbGFiZWw6ICdDaG9pY2UgVHdvJyB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGVzdElkKCdjaG9pY2UtMScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRlc3RJZCgnY2hvaWNlLTInKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdDaG9pY2UgT25lJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQ2hvaWNlIFR3bycpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHJlbmRlciBlbXB0eSBjaG9pY2VzIGFzIHZpc2libGUgZWxlbWVudHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ2hvaWNlcyh7XG4gICAgICAgIGNob2ljZXM6IFt7IGVtcHR5OiB0cnVlIH0sIHsgaWQ6ICcxJywgbGFiZWw6ICdWaXNpYmxlIENob2ljZScgfV0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KCdWaXNpYmxlIENob2ljZScpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgLy8gRW1wdHkgY2hvaWNlIHJlbmRlcnMgYXMgZW1wdHkgZGl2XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXRlc3RpZF49XCJjaG9pY2UtXCJdJykubGVuZ3RoKS50b0JlKDEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY2hvaWNlcyBsYWJlbCcsICgpID0+IHtcbiAgICBpdCgnZGlzcGxheXMgY2hvaWNlcyBsYWJlbCB3aGVuIHByb3ZpZGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ2hvaWNlcyh7XG4gICAgICAgIG1vZGVsOiB7IGNob2ljZXNMYWJlbDogJ0F2YWlsYWJsZSBDaG9pY2VzJywgY2F0ZWdvcmllc1BlclJvdzogMSB9LFxuICAgICAgfSk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgnQXZhaWxhYmxlIENob2ljZXMnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCBkaXNwbGF5IGxhYmVsIHdoZW4gY2hvaWNlc0xhYmVsIGlzIGVtcHR5JywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ2hvaWNlcyh7XG4gICAgICAgIG1vZGVsOiB7IGNob2ljZXNMYWJlbDogJycsIGNhdGVnb3JpZXNQZXJSb3c6IDEgfSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgnQXZhaWxhYmxlIENob2ljZXMnKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTztFQUM1QkMsVUFBVSxFQUFFLElBQUk7RUFDaEJDLE9BQU8sRUFBRUEsQ0FBQztJQUFFQyxLQUFLO0lBQUVDO0VBQUcsQ0FBQyxrQkFBS1gsTUFBQSxDQUFBUyxPQUFBLENBQUFHLGFBQUE7SUFBSyxlQUFhLFVBQVVELEVBQUU7RUFBRyxHQUFFRCxLQUFXLENBQUM7RUFDM0VHLFVBQVUsRUFBRSxDQUFDO0FBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSFAsSUFBSSxDQUFDQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU87RUFDaENPLGVBQWUsRUFBR0MsS0FBSyxpQkFBS2YsTUFBQSxDQUFBUyxPQUFBLENBQUFHLGFBQUEsUUFBU0csS0FBUSxDQUFDO0VBQzlDQyxXQUFXLEVBQUVBLENBQUM7SUFBRUM7RUFBUyxDQUFDLGtCQUFLakIsTUFBQSxDQUFBUyxPQUFBLENBQUFHLGFBQUEsY0FBTUssUUFBYyxDQUFDO0VBQ3BEQyxHQUFHLEVBQUU7SUFDSEMsT0FBTyxFQUFFYixJQUFJLENBQUNjLEVBQUUsQ0FBRUMsS0FBSyxJQUFLQSxLQUFLLENBQUM7SUFDbENDLFdBQVcsRUFBRWhCLElBQUksQ0FBQ2MsRUFBRSxDQUFDLENBQUMsQ0FBQ0csZUFBZSxDQUFDLEdBQUc7RUFDNUM7QUFDRixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU1DLEtBQUssR0FBRyxJQUFBQyxtQkFBVyxFQUFDLENBQUM7QUFFM0JDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTTtFQUN4QixNQUFNQyxh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
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _styles = require("@mui/material/styles");
7
+ var _droppablePlaceholder = _interopRequireDefault(require("../droppable-placeholder"));
8
+ jest.mock('../grid-content', () => ({
9
+ GridContent: props => /*#__PURE__*/_react.default.createElement("div", props)
10
+ }));
11
+ jest.mock('@dnd-kit/core', () => ({
12
+ useDroppable: () => ({
13
+ setNodeRef: jest.fn(),
14
+ isOver: false
15
+ })
16
+ }));
17
+ jest.mock('@pie-lib/drag', () => ({
18
+ PlaceHolder: ({
19
+ children,
20
+ isOver,
21
+ disabled
22
+ }) => /*#__PURE__*/_react.default.createElement("div", {
23
+ "data-testid": "placeholder",
24
+ "data-is-over": isOver,
25
+ "data-disabled": disabled
26
+ }, children)
27
+ }));
28
+ const theme = (0, _styles.createTheme)();
29
+ describe('DroppablePlaceholder', () => {
30
+ const renderPlaceholder = extras => {
31
+ const defaults = {
32
+ id: 'test-placeholder',
33
+ classes: {}
34
+ };
35
+ const props = {
36
+ ...defaults,
37
+ ...extras
38
+ };
39
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
40
+ theme: theme
41
+ }, /*#__PURE__*/_react.default.createElement(_droppablePlaceholder.default, props, /*#__PURE__*/_react.default.createElement("span", null, "Child Content"))));
42
+ };
43
+ describe('rendering', () => {
44
+ it('renders without crashing', () => {
45
+ const {
46
+ container
47
+ } = renderPlaceholder();
48
+ expect(container).toBeInTheDocument();
49
+ });
50
+ it('renders children content', () => {
51
+ renderPlaceholder();
52
+ expect(_react2.screen.getByText('Child Content')).toBeInTheDocument();
53
+ });
54
+ it('renders the placeholder wrapper', () => {
55
+ renderPlaceholder();
56
+ expect(_react2.screen.getByTestId('placeholder')).toBeInTheDocument();
57
+ });
58
+ });
59
+ describe('disabled state', () => {
60
+ it('passes disabled prop to placeholder', () => {
61
+ renderPlaceholder({
62
+ disabled: true
63
+ });
64
+ const placeholder = _react2.screen.getByTestId('placeholder');
65
+ expect(placeholder).toHaveAttribute('data-disabled', 'true');
66
+ });
67
+ it('passes disabled=false when not disabled', () => {
68
+ renderPlaceholder({
69
+ disabled: false
70
+ });
71
+ const placeholder = _react2.screen.getByTestId('placeholder');
72
+ expect(placeholder).toHaveAttribute('data-disabled', 'false');
73
+ });
74
+ });
75
+ describe('minRowHeight', () => {
76
+ it('renders with default min height', () => {
77
+ const {
78
+ container
79
+ } = renderPlaceholder();
80
+ expect(container.firstChild).toHaveStyle({
81
+ minHeight: '80px'
82
+ });
83
+ });
84
+ it('applies custom minRowHeight', () => {
85
+ const {
86
+ container
87
+ } = renderPlaceholder({
88
+ minRowHeight: '120px'
89
+ });
90
+ expect(container.firstChild).toHaveStyle({
91
+ minHeight: '120px'
92
+ });
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2Ryb3BwYWJsZVBsYWNlaG9sZGVyIiwiamVzdCIsIm1vY2siLCJHcmlkQ29udGVudCIsInByb3BzIiwiZGVmYXVsdCIsImNyZWF0ZUVsZW1lbnQiLCJ1c2VEcm9wcGFibGUiLCJzZXROb2RlUmVmIiwiZm4iLCJpc092ZXIiLCJQbGFjZUhvbGRlciIsImNoaWxkcmVuIiwiZGlzYWJsZWQiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiZGVzY3JpYmUiLCJyZW5kZXJQbGFjZWhvbGRlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiaWQiLCJjbGFzc2VzIiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJnZXRCeVRlc3RJZCIsInBsYWNlaG9sZGVyIiwidG9IYXZlQXR0cmlidXRlIiwiZmlyc3RDaGlsZCIsInRvSGF2ZVN0eWxlIiwibWluSGVpZ2h0IiwibWluUm93SGVpZ2h0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhdGVnb3JpemUvX190ZXN0c19fL2Ryb3BwYWJsZS1wbGFjZWhvbGRlci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuXG5pbXBvcnQgRHJvcHBhYmxlUGxhY2Vob2xkZXIgZnJvbSAnLi4vZHJvcHBhYmxlLXBsYWNlaG9sZGVyJztcblxuamVzdC5tb2NrKCcuLi9ncmlkLWNvbnRlbnQnLCAoKSA9PiAoe1xuICBHcmlkQ29udGVudDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5cbmplc3QubW9jaygnQGRuZC1raXQvY29yZScsICgpID0+ICh7XG4gIHVzZURyb3BwYWJsZTogKCkgPT4gKHtcbiAgICBzZXROb2RlUmVmOiBqZXN0LmZuKCksXG4gICAgaXNPdmVyOiBmYWxzZSxcbiAgfSksXG59KSk7XG5cbmplc3QubW9jaygnQHBpZS1saWIvZHJhZycsICgpID0+ICh7XG4gIFBsYWNlSG9sZGVyOiAoeyBjaGlsZHJlbiwgaXNPdmVyLCBkaXNhYmxlZCB9KSA9PiAoXG4gICAgPGRpdiBkYXRhLXRlc3RpZD1cInBsYWNlaG9sZGVyXCIgZGF0YS1pcy1vdmVyPXtpc092ZXJ9IGRhdGEtZGlzYWJsZWQ9e2Rpc2FibGVkfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKSxcbn0pKTtcblxuY29uc3QgdGhlbWUgPSBjcmVhdGVUaGVtZSgpO1xuXG5kZXNjcmliZSgnRHJvcHBhYmxlUGxhY2Vob2xkZXInLCAoKSA9PiB7XG4gIGNvbnN0IHJlbmRlclBsYWNlaG9sZGVyID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgaWQ6ICd0ZXN0LXBsYWNlaG9sZGVyJyxcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPERyb3BwYWJsZVBsYWNlaG9sZGVyIHsuLi5wcm9wc30+XG4gICAgICAgICAgPHNwYW4+Q2hpbGQgQ29udGVudDwvc3Bhbj5cbiAgICAgICAgPC9Ecm9wcGFibGVQbGFjZWhvbGRlcj5cbiAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICApO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJQbGFjZWhvbGRlcigpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIGNoaWxkcmVuIGNvbnRlbnQnLCAoKSA9PiB7XG4gICAgICByZW5kZXJQbGFjZWhvbGRlcigpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoJ0NoaWxkIENvbnRlbnQnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHRoZSBwbGFjZWhvbGRlciB3cmFwcGVyJywgKCkgPT4ge1xuICAgICAgcmVuZGVyUGxhY2Vob2xkZXIoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXN0SWQoJ3BsYWNlaG9sZGVyJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdkaXNhYmxlZCBzdGF0ZScsICgpID0+IHtcbiAgICBpdCgncGFzc2VzIGRpc2FibGVkIHByb3AgdG8gcGxhY2Vob2xkZXInLCAoKSA9PiB7XG4gICAgICByZW5kZXJQbGFjZWhvbGRlcih7IGRpc2FibGVkOiB0cnVlIH0pO1xuICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSBzY3JlZW4uZ2V0QnlUZXN0SWQoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICBleHBlY3QocGxhY2Vob2xkZXIpLnRvSGF2ZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcsICd0cnVlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgncGFzc2VzIGRpc2FibGVkPWZhbHNlIHdoZW4gbm90IGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyUGxhY2Vob2xkZXIoeyBkaXNhYmxlZDogZmFsc2UgfSk7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IHNjcmVlbi5nZXRCeVRlc3RJZCgncGxhY2Vob2xkZXInKTtcbiAgICAgIGV4cGVjdChwbGFjZWhvbGRlcikudG9IYXZlQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJywgJ2ZhbHNlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdtaW5Sb3dIZWlnaHQnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkZWZhdWx0IG1pbiBoZWlnaHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyUGxhY2Vob2xkZXIoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9IYXZlU3R5bGUoeyBtaW5IZWlnaHQ6ICc4MHB4JyB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdhcHBsaWVzIGN1c3RvbSBtaW5Sb3dIZWlnaHQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyUGxhY2Vob2xkZXIoeyBtaW5Sb3dIZWlnaHQ6ICcxMjBweCcgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvSGF2ZVN0eWxlKHsgbWluSGVpZ2h0OiAnMTIwcHgnIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxxQkFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU87RUFDbENDLFdBQVcsRUFBR0MsS0FBSyxpQkFBS1QsTUFBQSxDQUFBVSxPQUFBLENBQUFDLGFBQUEsUUFBU0YsS0FBUTtBQUMzQyxDQUFDLENBQUMsQ0FBQztBQUVISCxJQUFJLENBQUNDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTztFQUNoQ0ssWUFBWSxFQUFFQSxDQUFBLE1BQU87SUFDbkJDLFVBQVUsRUFBRVAsSUFB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
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _styles = require("@mui/material/styles");
7
+ var _gridContent = require("../grid-content");
8
+ const theme = (0, _styles.createTheme)();
9
+ describe('grid-content', () => {
10
+ const renderGridContent = extras => {
11
+ const defaults = {
12
+ classes: {},
13
+ columns: 2
14
+ };
15
+ const props = {
16
+ ...defaults,
17
+ ...extras
18
+ };
19
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
20
+ theme: theme
21
+ }, /*#__PURE__*/_react.default.createElement(_gridContent.GridContent, props, "content")));
22
+ };
23
+ describe('renders', () => {
24
+ it('renders without crashing', () => {
25
+ const {
26
+ container
27
+ } = renderGridContent();
28
+ expect(container).toBeInTheDocument();
29
+ });
30
+ it('renders with different columns', () => {
31
+ const {
32
+ container
33
+ } = renderGridContent({
34
+ columns: 3
35
+ });
36
+ expect(container).toBeInTheDocument();
37
+ });
38
+ it('renders with className', () => {
39
+ const {
40
+ container
41
+ } = renderGridContent({
42
+ className: 'foo'
43
+ });
44
+ expect(container).toBeInTheDocument();
45
+ });
46
+ });
47
+ });
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2dyaWRDb250ZW50IiwidGhlbWUiLCJjcmVhdGVUaGVtZSIsImRlc2NyaWJlIiwicmVuZGVyR3JpZENvbnRlbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjb2x1bW5zIiwicHJvcHMiLCJyZW5kZXIiLCJkZWZhdWx0IiwiY3JlYXRlRWxlbWVudCIsIlRoZW1lUHJvdmlkZXIiLCJHcmlkQ29udGVudCIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJjbGFzc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2F0ZWdvcml6ZS9fX3Rlc3RzX18vZ3JpZC1jb250ZW50LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgR3JpZENvbnRlbnQgfSBmcm9tICcuLi9ncmlkLWNvbnRlbnQnO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdncmlkLWNvbnRlbnQnLCAoKSA9PiB7XG4gIGNvbnN0IHJlbmRlckdyaWRDb250ZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjb2x1bW5zOiAyLFxuICAgIH07XG5cbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoXG4gICAgICA8VGhlbWVQcm92aWRlciB0aGVtZT17dGhlbWV9PlxuICAgICAgICA8R3JpZENvbnRlbnQgey4uLnByb3BzfT5jb250ZW50PC9HcmlkQ29udGVudD5cbiAgICAgIDwvVGhlbWVQcm92aWRlcj5cbiAgICApO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJzJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyR3JpZENvbnRlbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGRpZmZlcmVudCBjb2x1bW5zJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckdyaWRDb250ZW50KHsgY29sdW1uczogMyB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBjbGFzc05hbWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyR3JpZENvbnRlbnQoeyBjbGFzc05hbWU6ICdmb28nIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksS0FBSyxHQUFHLElBQUFDLG1CQUFXLEVBQUMsQ0FBQztBQUUzQkMsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNO0VBQzdCLE1BQU1DLGlCQUFpQixHQUFJQyxNQUFNLElBQUs7SUFDcEMsTUFBTUMsUUFBUSxHQUFHO01BQ2ZDLE9BQU8sRUFBRSxDQUFDLENBQUM7TUFDWEMsT0FBTyxFQUFFO0lBQ1gsQ0FBQztJQUVELE1BQU1DLEtBQUssR0FBRztNQUFFLEdBQUdILFFBQVE7TUFBRSxHQUFHRDtJQUFPLENBQUM7SUFDeEMsT0FBTyxJQUFBSyxjQUFNLGVBQ1hmLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQUMsYUFBQSxDQUFDYixPQUFBLENBQUFjLGFBQWE7TUFBQ1osS0FBSyxFQUFFQTtJQUFNLGdCQUMxQk4sTUFBQSxDQUFBZ0IsT0FBQSxDQUFBQyxhQUFBLENBQUNaLFlBQUEsQ0FBQWMsV0FBVyxFQUFLTCxLQUFLLEVBQUUsU0FBb0IsQ0FDL0IsQ0FDakIsQ0FBQztFQUNILENBQUM7RUFFRE4sUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNO0lBQ3hCWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsTUFBTTtNQUNuQyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHWixpQkFBaUIsQ0FBQyxDQUFDO01BQ3pDYSxNQUFNLENBQUNELFNBQVMsQ0FBQyxDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztJQUVGSCxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsTUFBTTtNQUN6QyxNQUFNO1FBQUVDO01BQVUsQ0FBQyxHQUFHWixpQkFBaUIsQ0FBQztRQUFFSSxPQUFPLEVBQUU7TUFBRSxDQUFDLENBQUM7TUFDdkRTLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDLENBQUNFLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDO0lBQ0ZILEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxNQUFNO01BQ2pDLE1BQU07UUFBRUM7TUFBVSxDQUFDLEdBQUdaLGlCQUFpQixDQUFDO1FBQUVlLFNBQVMsRUFBRTtNQUFNLENBQUMsQ0FBQztNQUM3REYsTUFBTSxDQUFDRCxTQUFTLENBQUMsQ0FBQ0UsaUJBQWlCLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _react2 = require("@testing-library/react");
7
+ var _styles = require("@mui/material/styles");
8
+ var _index = require("../index");
9
+ jest.mock('@pie-lib/drag', () => ({
10
+ uid: {
11
+ withUid: jest.fn(a => a),
12
+ Provider: ({
13
+ children
14
+ }) => /*#__PURE__*/_react.default.createElement("div", null, children),
15
+ generateId: jest.fn().mockReturnValue('1')
16
+ },
17
+ withDragContext: jest.fn(n => n),
18
+ DragProvider: ({
19
+ children
20
+ }) => /*#__PURE__*/_react.default.createElement("div", null, children)
21
+ }));
22
+ jest.mock('@dnd-kit/core', () => ({
23
+ DragOverlay: ({
24
+ children
25
+ }) => /*#__PURE__*/_react.default.createElement("div", null, children),
26
+ useSensor: jest.fn(),
27
+ useSensors: jest.fn(() => []),
28
+ PointerSensor: jest.fn()
29
+ }));
30
+ jest.mock('../categories', () => ({
31
+ __esModule: true,
32
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
33
+ }));
34
+ jest.mock('../choices', () => ({
35
+ __esModule: true,
36
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
37
+ }));
38
+ jest.mock('../choice', () => ({
39
+ __esModule: true,
40
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
41
+ }));
42
+ jest.mock('@pie-lib/correct-answer-toggle', () => ({
43
+ __esModule: true,
44
+ default: props => /*#__PURE__*/_react.default.createElement("div", props)
45
+ }));
46
+ jest.mock('@pie-lib/categorize', () => ({
47
+ buildState: jest.fn(() => ({})),
48
+ removeChoiceFromCategory: jest.fn(() => []),
49
+ moveChoiceToCategory: jest.fn(() => [])
50
+ }));
51
+ jest.mock('@pie-lib/config-ui', () => ({
52
+ AlertDialog: props => /*#__PURE__*/_react.default.createElement("div", props)
53
+ }));
54
+ jest.mock('@pie-lib/render-ui', () => {
55
+ const React = require('react');
56
+ const UiLayout = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
57
+ ref: ref
58
+ }, props)));
59
+ UiLayout.displayName = 'UiLayout';
60
+ return {
61
+ Collapsible: ({
62
+ children
63
+ }) => /*#__PURE__*/React.createElement("div", null, children),
64
+ Feedback: props => /*#__PURE__*/React.createElement("div", props),
65
+ UiLayout,
66
+ hasText: jest.fn(() => false),
67
+ hasMedia: jest.fn(() => false),
68
+ PreviewPrompt: props => /*#__PURE__*/React.createElement("div", props),
69
+ color: {
70
+ text: () => '#000',
71
+ background: () => '#fff',
72
+ white: () => '#fff',
73
+ correct: () => '#00ff00',
74
+ incorrect: () => '#ff0000'
75
+ }
76
+ };
77
+ });
78
+ const theme = (0, _styles.createTheme)();
79
+ describe('categorize', () => {
80
+ const defaultProps = {
81
+ classes: {},
82
+ session: {
83
+ answers: []
84
+ },
85
+ model: {
86
+ choices: [],
87
+ categories: []
88
+ }
89
+ };
90
+ let onAnswersChange;
91
+ let onShowCorrectToggle;
92
+ beforeEach(() => {
93
+ onAnswersChange = jest.fn();
94
+ onShowCorrectToggle = jest.fn();
95
+ });
96
+ const renderCategorize = extras => {
97
+ const defaults = {
98
+ ...defaultProps,
99
+ onAnswersChange,
100
+ onShowCorrectToggle
101
+ };
102
+ const props = {
103
+ ...defaults,
104
+ ...extras
105
+ };
106
+ return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
107
+ theme: theme
108
+ }, /*#__PURE__*/_react.default.createElement(_index.Categorize, props)));
109
+ };
110
+ describe('renders', () => {
111
+ it('renders without crashing', () => {
112
+ const {
113
+ container
114
+ } = renderCategorize();
115
+ expect(container).toBeInTheDocument();
116
+ });
117
+ it('renders with feedback', () => {
118
+ const {
119
+ container
120
+ } = renderCategorize({
121
+ model: {
122
+ ...defaultProps.model,
123
+ correctness: 'correct',
124
+ feedback: {
125
+ correct: {
126
+ type: 'default',
127
+ default: 'Correct'
128
+ },
129
+ incorrect: {
130
+ type: 'default',
131
+ default: 'Incorrect'
132
+ },
133
+ partial: {
134
+ type: 'default',
135
+ default: 'Nearly'
136
+ }
137
+ }
138
+ }
139
+ });
140
+ expect(container).toBeInTheDocument();
141
+ });
142
+ it('renders when incorrect', () => {
143
+ const {
144
+ container
145
+ } = renderCategorize({
146
+ incorrect: true
147
+ });
148
+ expect(container).toBeInTheDocument();
149
+ });
150
+ });
151
+ });
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4IiwiamVzdCIsIm1vY2siLCJ1aWQiLCJ3aXRoVWlkIiwiZm4iLCJhIiwiUHJvdmlkZXIiLCJjaGlsZHJlbiIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiZ2VuZXJhdGVJZCIsIm1vY2tSZXR1cm5WYWx1ZSIsIndpdGhEcmFnQ29udGV4dCIsIm4iLCJEcmFnUHJvdmlkZXIiLCJEcmFnT3ZlcmxheSIsInVzZVNlbnNvciIsInVzZVNlbnNvcnMiLCJQb2ludGVyU2Vuc29yIiwiX19lc01vZHVsZSIsInByb3BzIiwiYnVpbGRTdGF0ZSIsInJlbW92ZUNob2ljZUZyb21DYXRlZ29yeSIsIm1vdmVDaG9pY2VUb0NhdGVnb3J5IiwiQWxlcnREaWFsb2ciLCJSZWFjdCIsIlVpTGF5b3V0IiwiZm9yd2FyZFJlZiIsInJlZiIsIl9leHRlbmRzMiIsImRpc3BsYXlOYW1lIiwiQ29sbGFwc2libGUiLCJGZWVkYmFjayIsImhhc1RleHQiLCJoYXNNZWRpYSIsIlByZXZpZXdQcm9tcHQiLCJjb2xvciIsInRleHQiLCJiYWNrZ3JvdW5kIiwid2hpdGUiLCJjb3JyZWN0IiwiaW5jb3JyZWN0IiwidGhlbWUiLCJjcmVhdGVUaGVtZSIsImRlc2NyaWJlIiwiZGVmYXVsdFByb3BzIiwiY2xhc3NlcyIsInNlc3Npb24iLCJhbnN3ZXJzIiwibW9kZWwiLCJjaG9pY2VzIiwiY2F0ZWdvcmllcyIsIm9uQW5zd2Vyc0NoYW5nZSIsIm9uU2hvd0NvcnJlY3RUb2dnbGUiLCJiZWZvcmVFYWNoIiwicmVuZGVyQ2F0ZWdvcml6ZSIsImV4dHJhcyIsImRlZmF1bHRzIiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsIkNhdGVnb3JpemUiLCJpdCIsImNvbnRhaW5lciIsImV4cGVjdCIsInRvQmVJblRoZURvY3VtZW50IiwiY29ycmVjdG5lc3MiLCJmZWVkYmFjayIsInR5cGUiLCJwYXJ0aWFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhdGVnb3JpemUvX190ZXN0c19fL2luZGV4LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3JlYWN0JztcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIsIGNyZWF0ZVRoZW1lIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IHsgQ2F0ZWdvcml6ZSB9IGZyb20gJy4uL2luZGV4JztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9kcmFnJywgKCkgPT4gKHtcbiAgdWlkOiB7XG4gICAgd2l0aFVpZDogamVzdC5mbigoYSkgPT4gYSksXG4gICAgUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgICBnZW5lcmF0ZUlkOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKCcxJyksXG4gIH0sXG4gIHdpdGhEcmFnQ29udGV4dDogamVzdC5mbigobikgPT4gbiksXG4gIERyYWdQcm92aWRlcjogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdj57Y2hpbGRyZW59PC9kaXY+LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L2NvcmUnLCAoKSA9PiAoe1xuICBEcmFnT3ZlcmxheTogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdj57Y2hpbGRyZW59PC9kaXY+LFxuICB1c2VTZW5zb3I6IGplc3QuZm4oKSxcbiAgdXNlU2Vuc29yczogamVzdC5mbigoKSA9PiBbXSksXG4gIFBvaW50ZXJTZW5zb3I6IGplc3QuZm4oKSxcbn0pKTtcblxuamVzdC5tb2NrKCcuLi9jYXRlZ29yaWVzJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5qZXN0Lm1vY2soJy4uL2Nob2ljZXMnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbn0pKTtcbmplc3QubW9jaygnLi4vY2hvaWNlJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL2NvcnJlY3QtYW5zd2VyLXRvZ2dsZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9jYXRlZ29yaXplJywgKCkgPT4gKHtcbiAgYnVpbGRTdGF0ZTogamVzdC5mbigoKSA9PiAoe30pKSxcbiAgcmVtb3ZlQ2hvaWNlRnJvbUNhdGVnb3J5OiBqZXN0LmZuKCgpID0+IFtdKSxcbiAgbW92ZUNob2ljZVRvQ2F0ZWdvcnk6IGplc3QuZm4oKCkgPT4gW10pLFxufSkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9jb25maWctdWknLCAoKSA9PiAoe1xuICBBbGVydERpYWxvZzogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5qZXN0Lm1vY2soJ0BwaWUtbGliL3JlbmRlci11aScsICgpID0+IHtcbiAgY29uc3QgUmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuICBjb25zdCBVaUxheW91dCA9IFJlYWN0LmZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IDxkaXYgcmVmPXtyZWZ9IHsuLi5wcm9wc30gLz4pO1xuICBVaUxheW91dC5kaXNwbGF5TmFtZSA9ICdVaUxheW91dCc7XG5cbiAgcmV0dXJuIHtcbiAgICBDb2xsYXBzaWJsZTogKHsgY2hpbGRyZW4gfSkgPT4gPGRpdj57Y2hpbGRyZW59PC9kaXY+LFxuICAgIEZlZWRiYWNrOiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbiAgICBVaUxheW91dCxcbiAgICBoYXNUZXh0OiBqZXN0LmZuKCgpID0+IGZhbHNlKSxcbiAgICBoYXNNZWRpYTogamVzdC5mbigoKSA9PiBmYWxzZSksXG4gICAgUHJldmlld1Byb21wdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG4gICAgY29sb3I6IHtcbiAgICAgIHRleHQ6ICgpID0+ICcjMDAwJyxcbiAgICAgIGJhY2tncm91bmQ6ICgpID0+ICcjZmZmJyxcbiAgICAgIHdoaXRlOiAoKSA9PiAnI2ZmZicsXG4gICAgICBjb3JyZWN0OiAoKSA9PiAnIzAwZmYwMCcsXG4gICAgICBpbmNvcnJlY3Q6ICgpID0+ICcjZmYwMDAwJyxcbiAgICB9LFxuICB9O1xufSk7XG5cbmNvbnN0IHRoZW1lID0gY3JlYXRlVGhlbWUoKTtcblxuZGVzY3JpYmUoJ2NhdGVnb3JpemUnLCAoKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbGFzc2VzOiB7fSxcbiAgICBzZXNzaW9uOiB7XG4gICAgICBhbnN3ZXJzOiBbXSxcbiAgICB9LFxuICAgIG1vZGVsOiB7XG4gICAgICBjaG9pY2VzOiBbXSxcbiAgICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgIH0sXG4gIH07XG4gIGxldCBvbkFuc3dlcnNDaGFuZ2U7XG4gIGxldCBvblNob3dDb3JyZWN0VG9nZ2xlO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQW5zd2Vyc0NoYW5nZSA9IGplc3QuZm4oKTtcbiAgICBvblNob3dDb3JyZWN0VG9nZ2xlID0gamVzdC5mbigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDYXRlZ29yaXplID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgb25BbnN3ZXJzQ2hhbmdlLFxuICAgICAgb25TaG93Q29ycmVjdFRvZ2dsZSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG5cbiAgICByZXR1cm4gcmVuZGVyKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgICAgPENhdGVnb3JpemUgey4uLnByb3BzfSAvPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgICk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcnMnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDYXRlZ29yaXplKCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBmZWVkYmFjaycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDYXRlZ29yaXplKHtcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0UHJvcHMubW9kZWwsXG4gICAgICAgICAgY29ycmVjdG5lc3M6ICdjb3JyZWN0JyxcbiAgICAgICAgICBmZWVkYmFjazoge1xuICAgICAgICAgICAgY29ycmVjdDoge1xuICAgICAgICAgICAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgIGRlZmF1bHQ6ICdDb3JyZWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbmNvcnJlY3Q6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICBkZWZhdWx0OiAnSW5jb3JyZWN0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYXJ0aWFsOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgZGVmYXVsdDogJ05lYXJseScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aGVuIGluY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDYXRlZ29yaXplKHsgaW5jb3JyZWN0OiB0cnVlIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBSSxJQUFJLENBQUNDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTztFQUNoQ0MsR0FBRyxFQUFFO0lBQ0hDLE9BQU8sRUFBRUgsSUFBSSxDQUFDSSxFQUFFLENBQUVDLENBQUMsSUFBS0EsQ0FBQyxDQUFDO0lBQzFCQyxRQUFRLEVBQUVBLENBQUM7TUFBRUM7SUFBUyxDQUFDLGtCQUFLYixNQUFBLENBQUFjLE9BQUEsQ0FBQUMsYUFBQSxjQUFNRixRQUFjLENBQUM7SUFDakRHLFVBQVUsRUFBRVYsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDTyxlQUFlLENBQUMsR0FBRztFQUMzQyxDQUFDO0VBQ0RDLGVBQWUsRUFBRVosSUFBSSxDQUFDSSxFQUFFLENBQUVTLENBQUMsSUFBS0EsQ0FBQyxDQUFDO0VBQ2xDQyxZQUFZLEVBQUVBLENBQUM7SUFBRVA7RUFBUyxDQUFDLGtCQUFLYixNQUFBLENBQUFjLE9BQUEsQ0FBQUMsYUFBQSxjQUFNRixRQUFjO0FBQ3RELENBQUMsQ0FBQyxDQUFDO0FBRUhQLElBQUksQ0FBQ0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPO0VBQ2hDYyxXQUFXLEVBQUVBLENBQUM7SUFBRVI7RUFBUyxDQUFDLGtCQUFLYixNQUFBLENBQUFj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