@pie-element/categorize 13.1.9 → 13.1.10

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 (39) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/configure/CHANGELOG.md +4 -0
  3. package/configure/package.json +4 -4
  4. package/controller/CHANGELOG.md +4 -0
  5. package/controller/package.json +1 -1
  6. package/package.json +4 -4
  7. package/configure/lib/__tests__/main.test.js +0 -100
  8. package/configure/lib/__tests__/utils.js +0 -39
  9. package/configure/lib/design/__tests__/builder.test.js +0 -34
  10. package/configure/lib/design/__tests__/buttons.test.js +0 -36
  11. package/configure/lib/design/__tests__/header.test.js +0 -37
  12. package/configure/lib/design/__tests__/index.test.js +0 -269
  13. package/configure/lib/design/__tests__/input-header.test.js +0 -41
  14. package/configure/lib/design/categories/__tests__/alternateResponses.test.js +0 -93
  15. package/configure/lib/design/categories/__tests__/category.test.js +0 -65
  16. package/configure/lib/design/categories/__tests__/choice-preview.test.js +0 -52
  17. package/configure/lib/design/categories/__tests__/droppable-placeholder.test.js +0 -63
  18. package/configure/lib/design/categories/__tests__/index.test.js +0 -91
  19. package/configure/lib/design/choices/__tests__/choice.test.js +0 -62
  20. package/configure/lib/design/choices/__tests__/config.test.js +0 -66
  21. package/configure/lib/design/choices/__tests__/index.test.js +0 -70
  22. package/controller/lib/__tests__/index.test.js +0 -526
  23. package/docs/demo/.pie/.configure/package.json +0 -10
  24. package/docs/demo/.pie/.configure/yarn.lock +0 -2122
  25. package/docs/demo/.pie/.controllers/package.json +0 -10
  26. package/docs/demo/.pie/.controllers/yarn.lock +0 -110
  27. package/docs/demo/.pie/info.entry.js +0 -89
  28. package/docs/demo/.pie/info.webpack.config.js +0 -119
  29. package/docs/demo/.pie/package.json +0 -10
  30. package/docs/demo/.pie/yarn.lock +0 -2137
  31. package/docs/demo/pie.manifest.json +0 -11
  32. package/lib/__tests__/index.test.js +0 -197
  33. package/lib/categorize/__tests__/categories.test.js +0 -138
  34. package/lib/categorize/__tests__/category.test.js +0 -137
  35. package/lib/categorize/__tests__/choice.test.js +0 -88
  36. package/lib/categorize/__tests__/choices.test.js +0 -118
  37. package/lib/categorize/__tests__/droppable-placeholder.test.js +0 -96
  38. package/lib/categorize/__tests__/grid-content.test.js +0 -48
  39. package/lib/categorize/__tests__/index.test.js +0 -250
@@ -1,118 +0,0 @@
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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
@@ -1,96 +0,0 @@
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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
@@ -1,48 +0,0 @@
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=
@@ -1,250 +0,0 @@
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 = _interopRequireWildcard(require("../index"));
9
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
10
- jest.mock('@pie-lib/drag', () => ({
11
- uid: {
12
- withUid: jest.fn(a => a),
13
- Provider: ({
14
- children
15
- }) => /*#__PURE__*/_react.default.createElement("div", null, children),
16
- generateId: jest.fn().mockReturnValue('1')
17
- },
18
- withDragContext: jest.fn(n => n),
19
- DragProvider: ({
20
- children
21
- }) => /*#__PURE__*/_react.default.createElement("div", null, children)
22
- }));
23
- jest.mock('@dnd-kit/core', () => ({
24
- DragOverlay: ({
25
- children
26
- }) => /*#__PURE__*/_react.default.createElement("div", null, children),
27
- useSensor: jest.fn(),
28
- useSensors: jest.fn(() => []),
29
- PointerSensor: jest.fn()
30
- }));
31
- jest.mock('../categories', () => ({
32
- __esModule: true,
33
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
34
- }));
35
- jest.mock('../choices', () => ({
36
- __esModule: true,
37
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
38
- }));
39
- jest.mock('../choice', () => ({
40
- __esModule: true,
41
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
42
- }));
43
- jest.mock('@pie-lib/correct-answer-toggle', () => ({
44
- __esModule: true,
45
- default: props => /*#__PURE__*/_react.default.createElement("div", props)
46
- }));
47
- jest.mock('@pie-lib/categorize', () => ({
48
- buildState: jest.fn(() => ({})),
49
- removeChoiceFromCategory: jest.fn(() => []),
50
- moveChoiceToCategory: jest.fn(() => [])
51
- }));
52
- jest.mock('@pie-lib/config-ui', () => ({
53
- AlertDialog: props => /*#__PURE__*/_react.default.createElement("div", props)
54
- }));
55
- jest.mock('@pie-lib/render-ui', () => {
56
- const React = require('react');
57
- const UiLayout = React.forwardRef((props, ref) => /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
58
- ref: ref
59
- }, props)));
60
- UiLayout.displayName = 'UiLayout';
61
- return {
62
- Collapsible: ({
63
- children
64
- }) => /*#__PURE__*/React.createElement("div", null, children),
65
- Feedback: props => /*#__PURE__*/React.createElement("div", props),
66
- UiLayout,
67
- hasText: jest.fn(() => false),
68
- hasMedia: jest.fn(() => false),
69
- PreviewPrompt: props => /*#__PURE__*/React.createElement("div", props),
70
- color: {
71
- text: () => '#000',
72
- background: () => '#fff',
73
- white: () => '#fff',
74
- correct: () => '#00ff00',
75
- incorrect: () => '#ff0000'
76
- }
77
- };
78
- });
79
- const theme = (0, _styles.createTheme)();
80
- describe('categorize', () => {
81
- const defaultProps = {
82
- classes: {},
83
- session: {
84
- answers: []
85
- },
86
- model: {
87
- choices: [],
88
- categories: []
89
- }
90
- };
91
- let onAnswersChange;
92
- let onShowCorrectToggle;
93
- beforeEach(() => {
94
- onAnswersChange = jest.fn();
95
- onShowCorrectToggle = jest.fn();
96
- });
97
- const renderCategorize = extras => {
98
- const defaults = {
99
- ...defaultProps,
100
- onAnswersChange,
101
- onShowCorrectToggle
102
- };
103
- const props = {
104
- ...defaults,
105
- ...extras
106
- };
107
- return (0, _react2.render)(/*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
108
- theme: theme
109
- }, /*#__PURE__*/_react.default.createElement(_index.Categorize, props)));
110
- };
111
- describe('renders', () => {
112
- it('renders without crashing', () => {
113
- const {
114
- container
115
- } = renderCategorize();
116
- expect(container).toBeInTheDocument();
117
- });
118
- it('renders with feedback', () => {
119
- const {
120
- container
121
- } = renderCategorize({
122
- model: {
123
- ...defaultProps.model,
124
- correctness: 'correct',
125
- feedback: {
126
- correct: {
127
- type: 'default',
128
- default: 'Correct'
129
- },
130
- incorrect: {
131
- type: 'default',
132
- default: 'Incorrect'
133
- },
134
- partial: {
135
- type: 'default',
136
- default: 'Nearly'
137
- }
138
- }
139
- }
140
- });
141
- expect(container).toBeInTheDocument();
142
- });
143
- it('renders when incorrect', () => {
144
- const {
145
- container
146
- } = renderCategorize({
147
- incorrect: true
148
- });
149
- expect(container).toBeInTheDocument();
150
- });
151
- });
152
- describe('provider onDragEnd', () => {
153
- const createProvider = (extras = {}) => {
154
- const instance = new _index.default({
155
- ...defaultProps,
156
- onAnswersChange: jest.fn(),
157
- onShowCorrectToggle: jest.fn(),
158
- resumeMathObserver: jest.fn(),
159
- ...extras
160
- });
161
- instance.setState = jest.fn();
162
- instance.categorizeRef = {
163
- removeChoice: jest.fn(),
164
- dropChoice: jest.fn()
165
- };
166
- return instance;
167
- };
168
- const dndEvent = ({
169
- activeData,
170
- overId,
171
- overData
172
- }) => ({
173
- active: activeData ? {
174
- data: {
175
- current: activeData
176
- }
177
- } : null,
178
- over: overId || overData ? {
179
- id: overId,
180
- data: {
181
- current: overData
182
- }
183
- } : null
184
- });
185
- it('removes choice from source when dropped outside valid target', () => {
186
- const provider = createProvider();
187
- const event = dndEvent({
188
- activeData: {
189
- id: 'c1',
190
- type: 'choice',
191
- categoryId: 'cat-1',
192
- choiceIndex: 0,
193
- value: 'v1',
194
- itemType: 'categorize'
195
- }
196
- });
197
- provider.onDragEnd(event);
198
- expect(provider.categorizeRef.removeChoice).toHaveBeenCalledWith(expect.objectContaining({
199
- id: 'c1',
200
- categoryId: 'cat-1',
201
- choiceIndex: 0
202
- }));
203
- expect(provider.categorizeRef.dropChoice).not.toHaveBeenCalled();
204
- });
205
- it('removes choice from source when dropped on choices-board', () => {
206
- const provider = createProvider();
207
- const event = dndEvent({
208
- overId: 'choices-board',
209
- overData: {
210
- itemType: 'categorize'
211
- },
212
- activeData: {
213
- id: 'c2',
214
- type: 'choice',
215
- categoryId: 'cat-2',
216
- choiceIndex: 1,
217
- value: 'v2',
218
- itemType: 'categorize'
219
- }
220
- });
221
- provider.onDragEnd(event);
222
- expect(provider.categorizeRef.removeChoice).toHaveBeenCalled();
223
- expect(provider.categorizeRef.dropChoice).not.toHaveBeenCalled();
224
- });
225
- it('drops choice into category when valid category target exists', () => {
226
- const provider = createProvider();
227
- const event = dndEvent({
228
- overId: 'cat-target',
229
- overData: {
230
- itemType: 'categorize'
231
- },
232
- activeData: {
233
- id: 'c3',
234
- type: 'choice',
235
- categoryId: 'cat-source',
236
- choiceIndex: 2,
237
- value: 'v3',
238
- itemType: 'categorize'
239
- }
240
- });
241
- provider.onDragEnd(event);
242
- expect(provider.categorizeRef.dropChoice).toHaveBeenCalledWith('cat-target', expect.objectContaining({
243
- id: 'c3',
244
- categoryId: 'cat-source',
245
- choiceIndex: 2
246
- }));
247
- });
248
- });
249
- });
250
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2luZGV4IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJqZXN0IiwibW9jayIsInVpZCIsIndpdGhVaWQiLCJmbiIsImEiLCJQcm92aWRlciIsImNoaWxkcmVuIiwiY3JlYXRlRWxlbWVudCIsImdlbmVyYXRlSWQiLCJtb2NrUmV0dXJuVmFsdWUiLCJ3aXRoRHJhZ0NvbnRleHQiLCJEcmFnUHJvdmlkZXIiLCJEcmFnT3ZlcmxheSIsInVzZVNlbnNvciIsInVzZVNlbnNvcnMiLCJQb2ludGVyU2Vuc29yIiwicHJvcHMiLCJidWlsZFN0YXRlIiwicmVtb3ZlQ2hvaWNlRnJvbUNhdGVnb3J5IiwibW92ZUNob2ljZVRvQ2F0ZWdvcnkiLCJBbGVydERpYWxvZyIsIlJlYWN0IiwiVWlMYXlvdXQiLCJmb3J3YXJkUmVmIiwicmVmIiwiX2V4dGVuZHMyIiwiZGlzcGxheU5hbWUiLCJDb2xsYXBzaWJsZSIsIkZlZWRiYWNrIiwiaGFzVGV4dCIsImhhc01lZGlhIiwiUHJldmlld1Byb21wdCIsImNvbG9yIiwidGV4dCIsImJhY2tncm91bmQiLCJ3aGl0ZSIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJ0aGVtZSIsImNyZWF0ZVRoZW1lIiwiZGVzY3JpYmUiLCJkZWZhdWx0UHJvcHMiLCJjbGFzc2VzIiwic2Vzc2lvbiIsImFuc3dlcnMiLCJtb2RlbCIsImNob2ljZXMiLCJjYXRlZ29yaWVzIiwib25BbnN3ZXJzQ2hhbmdlIiwib25TaG93Q29ycmVjdFRvZ2dsZSIsImJlZm9yZUVhY2giLCJyZW5kZXJDYXRlZ29yaXplIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJyZW5kZXIiLCJUaGVtZVByb3ZpZGVyIiwiQ2F0ZWdvcml6ZSIsIml0IiwiY29udGFpbmVyIiwiZXhwZWN0IiwidG9CZUluVGhlRG9jdW1lbnQiLCJjb3JyZWN0bmVzcyIsImZlZWRiYWNrIiwidHlwZSIsInBhcnRpYWwiLCJjcmVhdGVQcm92aWRlciIsImluc3RhbmNlIiwiQ2F0ZWdvcml6ZVByb3ZpZGVyIiwicmVzdW1lTWF0aE9ic2VydmVyIiwic2V0U3RhdGUiLCJjYXRlZ29yaXplUmVmIiwicmVtb3ZlQ2hvaWNlIiwiZHJvcENob2ljZSIsImRuZEV2ZW50IiwiYWN0aXZlRGF0YSIsIm92ZXJJZCIsIm92ZXJEYXRhIiwiYWN0aXZlIiwiZGF0YSIsImN1cnJlbnQiLCJvdmVyIiwiaWQiLCJwcm92aWRlciIsImV2ZW50IiwiY2F0ZWdvcnlJZCIsImNob2ljZUluZGV4IiwidmFsdWUiLCJpdGVtVHlwZSIsIm9uRHJhZ0VuZCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwib2JqZWN0Q29udGFpbmluZyIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2F0ZWdvcml6ZS9fX3Rlc3RzX18vaW5kZXgudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0B0ZXN0aW5nLWxpYnJhcnkvcmVhY3QnO1xuaW1wb3J0IHsgVGhlbWVQcm92aWRlciwgY3JlYXRlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyBDYXRlZ29yaXplIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IENhdGVnb3JpemVQcm92aWRlciBmcm9tICcuLi9pbmRleCc7XG5cbmplc3QubW9jaygnQHBpZS1saWIvZHJhZycsICgpID0+ICh7XG4gIHVpZDoge1xuICAgIHdpdGhVaWQ6IGplc3QuZm4oKGEpID0+IGEpLFxuICAgIFByb3ZpZGVyOiAoeyBjaGlsZHJlbiB9KSA9PiA8ZGl2PntjaGlsZHJlbn08L2Rpdj4sXG4gICAgZ2VuZXJhdGVJZDogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZSgnMScpLFxuICB9LFxuICB3aXRoRHJhZ0NvbnRleHQ6IGplc3QuZm4oKG4pID0+IG4pLFxuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgRHJhZ092ZXJsYXk6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgdXNlU2Vuc29yOiBqZXN0LmZuKCksXG4gIHVzZVNlbnNvcnM6IGplc3QuZm4oKCkgPT4gW10pLFxuICBQb2ludGVyU2Vuc29yOiBqZXN0LmZuKCksXG59KSk7XG5cbmplc3QubW9jaygnLi4vY2F0ZWdvcmllcycsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuamVzdC5tb2NrKCcuLi9jaG9pY2VzJywgKCkgPT4gKHtcbiAgX19lc01vZHVsZTogdHJ1ZSxcbiAgZGVmYXVsdDogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG59KSk7XG5qZXN0Lm1vY2soJy4uL2Nob2ljZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIGRlZmF1bHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9jb3JyZWN0LWFuc3dlci10b2dnbGUnLCAoKSA9PiAoe1xuICBfX2VzTW9kdWxlOiB0cnVlLFxuICBkZWZhdWx0OiAocHJvcHMpID0+IDxkaXYgey4uLnByb3BzfSAvPixcbn0pKTtcbmplc3QubW9jaygnQHBpZS1saWIvY2F0ZWdvcml6ZScsICgpID0+ICh7XG4gIGJ1aWxkU3RhdGU6IGplc3QuZm4oKCkgPT4gKHt9KSksXG4gIHJlbW92ZUNob2ljZUZyb21DYXRlZ29yeTogamVzdC5mbigoKSA9PiBbXSksXG4gIG1vdmVDaG9pY2VUb0NhdGVnb3J5OiBqZXN0LmZuKCgpID0+IFtdKSxcbn0pKTtcbmplc3QubW9jaygnQHBpZS1saWIvY29uZmlnLXVpJywgKCkgPT4gKHtcbiAgQWxlcnREaWFsb2c6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxufSkpO1xuamVzdC5tb2NrKCdAcGllLWxpYi9yZW5kZXItdWknLCAoKSA9PiB7XG4gIGNvbnN0IFJlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcbiAgY29uc3QgVWlMYXlvdXQgPSBSZWFjdC5mb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiA8ZGl2IHJlZj17cmVmfSB7Li4ucHJvcHN9IC8+KTtcbiAgVWlMYXlvdXQuZGlzcGxheU5hbWUgPSAnVWlMYXlvdXQnO1xuXG4gIHJldHVybiB7XG4gICAgQ29sbGFwc2libGU6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXY+e2NoaWxkcmVufTwvZGl2PixcbiAgICBGZWVkYmFjazogKHByb3BzKSA9PiA8ZGl2IHsuLi5wcm9wc30gLz4sXG4gICAgVWlMYXlvdXQsXG4gICAgaGFzVGV4dDogamVzdC5mbigoKSA9PiBmYWxzZSksXG4gICAgaGFzTWVkaWE6IGplc3QuZm4oKCkgPT4gZmFsc2UpLFxuICAgIFByZXZpZXdQcm9tcHQ6IChwcm9wcykgPT4gPGRpdiB7Li4ucHJvcHN9IC8+LFxuICAgIGNvbG9yOiB7XG4gICAgICB0ZXh0OiAoKSA9PiAnIzAwMCcsXG4gICAgICBiYWNrZ3JvdW5kOiAoKSA9PiAnI2ZmZicsXG4gICAgICB3aGl0ZTogKCkgPT4gJyNmZmYnLFxuICAgICAgY29ycmVjdDogKCkgPT4gJyMwMGZmMDAnLFxuICAgICAgaW5jb3JyZWN0OiAoKSA9PiAnI2ZmMDAwMCcsXG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCB0aGVtZSA9IGNyZWF0ZVRoZW1lKCk7XG5cbmRlc2NyaWJlKCdjYXRlZ29yaXplJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2xhc3Nlczoge30sXG4gICAgc2Vzc2lvbjoge1xuICAgICAgYW5zd2VyczogW10sXG4gICAgfSxcbiAgICBtb2RlbDoge1xuICAgICAgY2hvaWNlczogW10sXG4gICAgICBjYXRlZ29yaWVzOiBbXSxcbiAgICB9LFxuICB9O1xuICBsZXQgb25BbnN3ZXJzQ2hhbmdlO1xuICBsZXQgb25TaG93Q29ycmVjdFRvZ2dsZTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkFuc3dlcnNDaGFuZ2UgPSBqZXN0LmZuKCk7XG4gICAgb25TaG93Q29ycmVjdFRvZ2dsZSA9IGplc3QuZm4oKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyQ2F0ZWdvcml6ZSA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIG9uQW5zd2Vyc0NoYW5nZSxcbiAgICAgIG9uU2hvd0NvcnJlY3RUb2dnbGUsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuXG4gICAgcmV0dXJuIHJlbmRlcihcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XG4gICAgICAgIDxDYXRlZ29yaXplIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvVGhlbWVQcm92aWRlcj4sXG4gICAgKTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVycycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNhdGVnb3JpemUoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGZlZWRiYWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNhdGVnb3JpemUoe1xuICAgICAgICBtb2RlbDoge1xuICAgICAgICAgIC4uLmRlZmF1bHRQcm9wcy5tb2RlbCxcbiAgICAgICAgICBjb3JyZWN0bmVzczogJ2NvcnJlY3QnLFxuICAgICAgICAgIGZlZWRiYWNrOiB7XG4gICAgICAgICAgICBjb3JyZWN0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgZGVmYXVsdDogJ0NvcnJlY3QnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGluY29ycmVjdDoge1xuICAgICAgICAgICAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgIGRlZmF1bHQ6ICdJbmNvcnJlY3QnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhcnRpYWw6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICBkZWZhdWx0OiAnTmVhcmx5JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lcikudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdoZW4gaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNhdGVnb3JpemUoeyBpbmNvcnJlY3Q6IHRydWUgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncHJvdmlkZXIgb25EcmFnRW5kJywgKCkgPT4ge1xuICAgIGNvbnN0IGNyZWF0ZVByb3ZpZGVyID0gKGV4dHJhcyA9IHt9KSA9PiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBDYXRlZ29yaXplUHJvdmlkZXIoe1xuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXG4gICAgICAgIG9uQW5zd2Vyc0NoYW5nZTogamVzdC5mbigpLFxuICAgICAgICBvblNob3dDb3JyZWN0VG9nZ2xlOiBqZXN0LmZuKCksXG4gICAgICAgIHJlc3VtZU1hdGhPYnNlcnZlcjogamVzdC5mbigpLFxuICAgICAgICAuLi5leHRyYXMsXG4gICAgICB9KTtcblxuICAgICAgaW5zdGFuY2Uuc2V0U3RhdGUgPSBqZXN0LmZuKCk7XG4gICAgICBpbnN0YW5jZS5jYXRlZ29yaXplUmVmID0ge1xuICAgICAgICByZW1vdmVDaG9pY2U6IGplc3QuZm4oKSxcbiAgICAgICAgZHJvcENob2ljZTogamVzdC5mbigpLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgIH07XG5cbiAgICBjb25zdCBkbmRFdmVudCA9ICh7IGFjdGl2ZURhdGEsIG92ZXJJZCwgb3ZlckRhdGEgfSkgPT4gKHtcbiAgICAgIGFjdGl2ZTogYWN0aXZlRGF0YSA/IHsgZGF0YTogeyBjdXJyZW50OiBhY3RpdmVEYXRhIH0gfSA6IG51bGwsXG4gICAgICBvdmVyOiBvdmVySWQgfHwgb3ZlckRhdGEgPyB7IGlkOiBvdmVySWQsIGRhdGE6IHsgY3VycmVudDogb3ZlckRhdGEgfSB9IDogbnVsbCxcbiAgICB9KTtcblxuICAgIGl0KCdyZW1vdmVzIGNob2ljZSBmcm9tIHNvdXJjZSB3aGVuIGRyb3BwZWQgb3V0c2lkZSB2YWxpZCB0YXJnZXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm92aWRlciA9IGNyZWF0ZVByb3ZpZGVyKCk7XG4gICAgICBjb25zdCBldmVudCA9IGRuZEV2ZW50KHtcbiAgICAgICAgYWN0aXZlRGF0YToge1xuICAgICAgICAgIGlkOiAnYzEnLFxuICAgICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICAgIGNhdGVnb3J5SWQ6ICdjYXQtMScsXG4gICAgICAgICAgY2hvaWNlSW5kZXg6IDAsXG4gICAgICAgICAgdmFsdWU6ICd2MScsXG4gICAgICAgICAgaXRlbVR5cGU6ICdjYXRlZ29yaXplJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBwcm92aWRlci5vbkRyYWdFbmQoZXZlbnQpO1xuXG4gICAgICBleHBlY3QocHJvdmlkZXIuY2F0ZWdvcml6ZVJlZi5yZW1vdmVDaG9pY2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaWQ6ICdjMScsXG4gICAgICAgICAgY2F0ZWdvcnlJZDogJ2NhdC0xJyxcbiAgICAgICAgICBjaG9pY2VJbmRleDogMCxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgZXhwZWN0KHByb3ZpZGVyLmNhdGVnb3JpemVSZWYuZHJvcENob2ljZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW1vdmVzIGNob2ljZSBmcm9tIHNvdXJjZSB3aGVuIGRyb3BwZWQgb24gY2hvaWNlcy1ib2FyZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gY3JlYXRlUHJvdmlkZXIoKTtcbiAgICAgIGNvbnN0IGV2ZW50ID0gZG5kRXZlbnQoe1xuICAgICAgICBvdmVySWQ6ICdjaG9pY2VzLWJvYXJkJyxcbiAgICAgICAgb3ZlckRhdGE6IHsgaXRlbVR5cGU6ICdjYXRlZ29yaXplJyB9LFxuICAgICAgICBhY3RpdmVEYXRhOiB7XG4gICAgICAgICAgaWQ6ICdjMicsXG4gICAgICAgICAgdHlwZTogJ2Nob2ljZScsXG4gICAgICAgICAgY2F0ZWdvcnlJZDogJ2NhdC0yJyxcbiAgICAgICAgICBjaG9pY2VJbmRleDogMSxcbiAgICAgICAgICB2YWx1ZTogJ3YyJyxcbiAgICAgICAgICBpdGVtVHlwZTogJ2NhdGVnb3JpemUnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHByb3ZpZGVyLm9uRHJhZ0VuZChldmVudCk7XG5cbiAgICAgIGV4cGVjdChwcm92aWRlci5jYXRlZ29yaXplUmVmLnJlbW92ZUNob2ljZSkudG9IYXZlQmVlbkNhbGxlZCgpO1xuICAgICAgZXhwZWN0KHByb3ZpZGVyLmNhdGVnb3JpemVSZWYuZHJvcENob2ljZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkcm9wcyBjaG9pY2UgaW50byBjYXRlZ29yeSB3aGVuIHZhbGlkIGNhdGVnb3J5IHRhcmdldCBleGlzdHMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm92aWRlciA9IGNyZWF0ZVByb3ZpZGVyKCk7XG4gICAgICBjb25zdCBldmVudCA9IGRuZEV2ZW50KHtcbiAgICAgICAgb3ZlcklkOiAnY2F0LXRhcmdldCcsXG4gICAgICAgIG92ZXJEYXRhOiB7IGl0ZW1UeXBlOiAnY2F0ZWdvcml6ZScgfSxcbiAgICAgICAgYWN0aXZlRGF0YToge1xuICAgICAgICAgIGlkOiAnYzMnLFxuICAgICAgICAgIHR5cGU6ICdjaG9pY2UnLFxuICAgICAgICAgIGNhdGVnb3J5SWQ6ICdjYXQtc291cmNlJyxcbiAgICAgICAgICBjaG9pY2VJbmRleDogMixcbiAgICAgICAgICB2YWx1ZTogJ3YzJyxcbiAgICAgICAgICBpdGVtVHlwZTogJ2NhdGVnb3JpemUnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHByb3ZpZGVyLm9uRHJhZ0VuZChldmVudCk7XG5cbiAgICAgIGV4cGVjdChwcm92aWRlci5jYXRlZ29yaXplUmVmLmRyb3BDaG9pY2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFxuICAgICAgICAnY2F0LXRhcmdldCcsXG4gICAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBpZDogJ2MzJyxcbiAgICAgICAgICBjYXRlZ29yeUlkOiAnY2F0LXNvdXJjZScsXG4gICAgICAgICAgY2hvaWNlSW5kZXg6IDIsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7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