@coorpacademy/components 10.19.1 → 10.19.4

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 (110) hide show
  1. package/es/atom/button-link-icon-only/test/button-link-icon-only.js +18 -23
  2. package/es/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -1
  3. package/es/atom/checkbox/index.js +25 -41
  4. package/es/atom/checkbox/index.js.map +1 -1
  5. package/es/atom/checkbox/test/fixtures/default.js +2 -1
  6. package/es/atom/checkbox/test/fixtures/default.js.map +1 -1
  7. package/es/atom/checkbox/test/on-change.js +25 -22
  8. package/es/atom/checkbox/test/on-change.js.map +1 -1
  9. package/es/atom/clue/index.js +2 -1
  10. package/es/atom/clue/index.js.map +1 -1
  11. package/es/atom/clue/test/see-clue.js +83 -58
  12. package/es/atom/clue/test/see-clue.js.map +1 -1
  13. package/es/atom/lottie-wrapper/index.js +1 -1
  14. package/es/atom/lottie-wrapper/index.js.map +1 -1
  15. package/es/atom/review-background/style.css +1 -1
  16. package/es/atom/review-header-step-item/index.js +7 -3
  17. package/es/atom/review-header-step-item/index.js.map +1 -1
  18. package/es/atom/review-header-step-item/style.css +7 -10
  19. package/es/atom/review-presentation/index.js +10 -2
  20. package/es/atom/review-presentation/index.js.map +1 -1
  21. package/es/molecule/dashboard/cards-list/index.js +3 -7
  22. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  23. package/es/molecule/review-correction-popin/index.js +5 -2
  24. package/es/molecule/review-correction-popin/index.js.map +1 -1
  25. package/es/molecule/review-correction-popin/test/fixtures/wrong.js +1 -0
  26. package/es/molecule/review-correction-popin/test/fixtures/wrong.js.map +1 -1
  27. package/es/molecule/review-header-steps/index.js +3 -3
  28. package/es/molecule/review-header-steps/index.js.map +1 -1
  29. package/es/organism/review-congrats/index.js +1 -1
  30. package/es/organism/review-congrats/index.js.map +1 -1
  31. package/es/organism/review-congrats/style.css +0 -1
  32. package/es/organism/review-header/index.js +3 -3
  33. package/es/organism/review-header/index.js.map +1 -1
  34. package/es/organism/review-header/style.css +1 -1
  35. package/es/organism/review-header/test/fixtures/all-questions-ok.js +3 -1
  36. package/es/organism/review-header/test/fixtures/all-questions-ok.js.map +1 -1
  37. package/es/template/slides-review/index.js +421 -0
  38. package/es/template/slides-review/index.js.map +1 -0
  39. package/es/template/slides-review/style.css +373 -0
  40. package/es/template/slides-review/test/fixtures/failure.js +37 -0
  41. package/es/template/slides-review/test/fixtures/failure.js.map +1 -0
  42. package/es/template/slides-review/test/fixtures/only-once-on-last-slide.js +29 -0
  43. package/es/template/slides-review/test/fixtures/only-once-on-last-slide.js.map +1 -0
  44. package/es/template/slides-review/test/fixtures/random-responses.js +34 -0
  45. package/es/template/slides-review/test/fixtures/random-responses.js.map +1 -0
  46. package/es/template/slides-review/test/fixtures/success.js +54 -0
  47. package/es/template/slides-review/test/fixtures/success.js.map +1 -0
  48. package/es/template/slides-review/test/fixtures.js +19 -0
  49. package/es/template/slides-review/test/fixtures.js.map +1 -0
  50. package/es/template/slides-review/test/slides-review.js +147 -0
  51. package/es/template/slides-review/test/slides-review.js.map +1 -0
  52. package/es/util/render-with-context.js +35 -0
  53. package/es/util/render-with-context.js.map +1 -0
  54. package/es/util/test/render-with-context.js +91 -0
  55. package/es/util/test/render-with-context.js.map +1 -0
  56. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js +20 -24
  57. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -1
  58. package/lib/atom/checkbox/index.js +29 -41
  59. package/lib/atom/checkbox/index.js.map +1 -1
  60. package/lib/atom/checkbox/test/fixtures/default.js +2 -1
  61. package/lib/atom/checkbox/test/fixtures/default.js.map +1 -1
  62. package/lib/atom/checkbox/test/on-change.js +29 -23
  63. package/lib/atom/checkbox/test/on-change.js.map +1 -1
  64. package/lib/atom/clue/index.js +2 -1
  65. package/lib/atom/clue/index.js.map +1 -1
  66. package/lib/atom/clue/test/see-clue.js +88 -59
  67. package/lib/atom/clue/test/see-clue.js.map +1 -1
  68. package/lib/atom/lottie-wrapper/index.js +1 -1
  69. package/lib/atom/lottie-wrapper/index.js.map +1 -1
  70. package/lib/atom/review-background/style.css +1 -1
  71. package/lib/atom/review-header-step-item/index.js +10 -4
  72. package/lib/atom/review-header-step-item/index.js.map +1 -1
  73. package/lib/atom/review-header-step-item/style.css +7 -10
  74. package/lib/atom/review-presentation/index.js +10 -2
  75. package/lib/atom/review-presentation/index.js.map +1 -1
  76. package/lib/molecule/dashboard/cards-list/index.js +3 -7
  77. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  78. package/lib/molecule/review-correction-popin/index.js +5 -2
  79. package/lib/molecule/review-correction-popin/index.js.map +1 -1
  80. package/lib/molecule/review-correction-popin/test/fixtures/wrong.js +1 -0
  81. package/lib/molecule/review-correction-popin/test/fixtures/wrong.js.map +1 -1
  82. package/lib/molecule/review-header-steps/index.js +3 -3
  83. package/lib/molecule/review-header-steps/index.js.map +1 -1
  84. package/lib/organism/review-congrats/index.js +1 -1
  85. package/lib/organism/review-congrats/index.js.map +1 -1
  86. package/lib/organism/review-congrats/style.css +0 -1
  87. package/lib/organism/review-header/index.js.map +1 -1
  88. package/lib/organism/review-header/style.css +1 -1
  89. package/lib/organism/review-header/test/fixtures/all-questions-ok.js +3 -1
  90. package/lib/organism/review-header/test/fixtures/all-questions-ok.js.map +1 -1
  91. package/lib/template/slides-review/index.js +447 -0
  92. package/lib/template/slides-review/index.js.map +1 -0
  93. package/lib/template/slides-review/style.css +373 -0
  94. package/lib/template/slides-review/test/fixtures/failure.js +50 -0
  95. package/lib/template/slides-review/test/fixtures/failure.js.map +1 -0
  96. package/lib/template/slides-review/test/fixtures/only-once-on-last-slide.js +39 -0
  97. package/lib/template/slides-review/test/fixtures/only-once-on-last-slide.js.map +1 -0
  98. package/lib/template/slides-review/test/fixtures/random-responses.js +45 -0
  99. package/lib/template/slides-review/test/fixtures/random-responses.js.map +1 -0
  100. package/lib/template/slides-review/test/fixtures/success.js +67 -0
  101. package/lib/template/slides-review/test/fixtures/success.js.map +1 -0
  102. package/lib/template/slides-review/test/fixtures.js +31 -0
  103. package/lib/template/slides-review/test/fixtures.js.map +1 -0
  104. package/lib/template/slides-review/test/slides-review.js +163 -0
  105. package/lib/template/slides-review/test/slides-review.js.map +1 -0
  106. package/lib/util/render-with-context.js +49 -0
  107. package/lib/util/render-with-context.js.map +1 -0
  108. package/lib/util/test/render-with-context.js +103 -0
  109. package/lib/util/test/render-with-context.js.map +1 -0
  110. package/package.json +2 -2
@@ -0,0 +1,147 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import browserEnv from 'browser-env';
4
+ import test from 'ava';
5
+ import React from 'react';
6
+ import { render, fireEvent, act } from '@testing-library/react';
7
+ import SlidesReview from '..';
8
+ import AnswerQCMDrag from '../../../molecule/answer/test/fixtures/qcm-drag';
9
+ import successFixture from './fixtures/success';
10
+ import failureFixture from './fixtures/failure';
11
+ import failOnceOnLastSlideFixture from './fixtures/only-once-on-last-slide';
12
+ browserEnv({
13
+ pretendToBeVisual: true
14
+ });
15
+
16
+ const elementExists = foundElements => foundElements && foundElements[0];
17
+
18
+ const sleep = msToSleep => new Promise(resolve => setTimeout(resolve, msToSleep));
19
+
20
+ const waitForRevisionEndChanges = async () => {
21
+ await act(async () => {
22
+ await sleep(2500); // wait *just* a little longer than the timeout in the component
23
+ });
24
+ };
25
+
26
+ const qcmDrag = AnswerQCMDrag.props;
27
+ const LIMIT = 5;
28
+
29
+ const clickAllSlides = async (t, container, accumulator = 0) => {
30
+ if (accumulator === LIMIT) return; // last one needs to wait for more calculations && components updates
31
+
32
+ if (accumulator === 4) await act(async () => {
33
+ await sleep(2000);
34
+ });
35
+ const validateButton = container.querySelectorAll(`[data-name="slide-validate-button-${accumulator}"]`);
36
+ t.truthy(elementExists(validateButton));
37
+ await act(async () => {
38
+ await fireEvent.click(validateButton[0]);
39
+ });
40
+ const nextButton = container.querySelectorAll(`[data-name="next-question-button-${accumulator}"]`);
41
+ t.truthy(elementExists(nextButton));
42
+ await act(async () => {
43
+ await fireEvent.click(nextButton[0]);
44
+ });
45
+ await clickAllSlides(t, container, accumulator + 1);
46
+ };
47
+
48
+ test.serial('should validate all the slides && unmount the stacked slides after', async t => {
49
+ const {
50
+ container
51
+ } = render( /*#__PURE__*/React.createElement(SlidesReview, _extends({}, successFixture.props, {
52
+ key: 0
53
+ })));
54
+ const wrapper = container.querySelectorAll('[data-name="slides-revision-container"]');
55
+ t.truthy(wrapper);
56
+ let stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
57
+ t.truthy(elementExists(stackedSlidesContainer));
58
+ await clickAllSlides(t, container);
59
+ await waitForRevisionEndChanges();
60
+ stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
61
+ t.falsy(elementExists(stackedSlidesContainer));
62
+ t.pass();
63
+ });
64
+ test.serial('should validate all the slides except the last one, retry and pass', async t => {
65
+ const {
66
+ container
67
+ } = render( /*#__PURE__*/React.createElement(SlidesReview, _extends({}, failOnceOnLastSlideFixture.props, {
68
+ key: 1
69
+ })));
70
+ const wrapper = container.querySelectorAll('[data-name="slides-revision-container"]');
71
+ t.truthy(wrapper);
72
+ const stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
73
+ t.truthy(elementExists(stackedSlidesContainer)); // loop once
74
+
75
+ await clickAllSlides(t, container); // fail the first slide again (the other slides are passed)
76
+
77
+ const validateButton = container.querySelectorAll('[data-name="slide-validate-button-0"]');
78
+ t.truthy(elementExists(validateButton));
79
+ await act(async () => {
80
+ await fireEvent.click(validateButton[0]);
81
+ });
82
+ t.pass();
83
+ });
84
+ test.serial('should fail all the slides && still find the stacked slides after', async t => {
85
+ const {
86
+ container
87
+ } = render( /*#__PURE__*/React.createElement(SlidesReview, _extends({}, failureFixture.props, {
88
+ key: 2
89
+ })));
90
+ const wrapper = container.querySelectorAll('[data-name="slides-revision-container"]');
91
+ t.truthy(wrapper);
92
+ let stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
93
+ t.truthy(elementExists(stackedSlidesContainer)); // loop once
94
+
95
+ await clickAllSlides(t, container); // fail the first slide again (all the other slides are also on fail state)
96
+
97
+ const validateButton = container.querySelectorAll('[data-name="slide-validate-button-0"]');
98
+ t.truthy(elementExists(validateButton));
99
+ await act(async () => {
100
+ await fireEvent.click(validateButton[0]);
101
+ });
102
+ stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
103
+ t.truthy(elementExists(stackedSlidesContainer));
104
+ t.pass();
105
+ });
106
+ test.serial('should end Revision on signal && unmount the stacked slides after', async t => {
107
+ t.plan(6);
108
+
109
+ const onValidateClick = () => {
110
+ t.pass();
111
+ return Promise.resolve({
112
+ validationResult: 'failure',
113
+ nextSlide: {
114
+ question: 'Other question?',
115
+ answer: qcmDrag
116
+ },
117
+ endReview: true
118
+ });
119
+ };
120
+
121
+ const props = _extends(_extends({}, failureFixture.props), {}, {
122
+ validate: {
123
+ label: failureFixture.props.validate.label,
124
+ onClick: onValidateClick
125
+ }
126
+ });
127
+
128
+ const {
129
+ container
130
+ } = render( /*#__PURE__*/React.createElement(SlidesReview, _extends({}, props, {
131
+ key: 3
132
+ })));
133
+ const wrapper = container.querySelectorAll('[data-name="slides-revision-container"]');
134
+ t.truthy(wrapper);
135
+ let stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
136
+ t.truthy(elementExists(stackedSlidesContainer));
137
+ const validateButton = container.querySelectorAll('[data-name="slide-validate-button-0"]');
138
+ t.truthy(elementExists(validateButton));
139
+ await act(async () => {
140
+ await fireEvent.click(validateButton[0]);
141
+ });
142
+ await waitForRevisionEndChanges();
143
+ stackedSlidesContainer = container.querySelectorAll('[data-name="stacked-slides-container"]');
144
+ t.falsy(elementExists(stackedSlidesContainer));
145
+ t.pass();
146
+ });
147
+ //# sourceMappingURL=slides-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/template/slides-review/test/slides-review.js"],"names":["browserEnv","test","React","render","fireEvent","act","SlidesReview","AnswerQCMDrag","successFixture","failureFixture","failOnceOnLastSlideFixture","pretendToBeVisual","elementExists","foundElements","sleep","msToSleep","Promise","resolve","setTimeout","waitForRevisionEndChanges","qcmDrag","props","LIMIT","clickAllSlides","t","container","accumulator","validateButton","querySelectorAll","truthy","click","nextButton","serial","wrapper","stackedSlidesContainer","falsy","pass","plan","onValidateClick","validationResult","nextSlide","question","answer","endReview","validate","label","onClick"],"mappings":"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","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {render, fireEvent, act} from '@testing-library/react';\nimport SlidesReview from '..';\nimport AnswerQCMDrag from '../../../molecule/answer/test/fixtures/qcm-drag';\nimport successFixture from './fixtures/success';\nimport failureFixture from './fixtures/failure';\nimport failOnceOnLastSlideFixture from './fixtures/only-once-on-last-slide';\n\nbrowserEnv({pretendToBeVisual: true});\n\nconst elementExists = foundElements => foundElements && foundElements[0];\n\nconst sleep = msToSleep => new Promise(resolve => setTimeout(resolve, msToSleep));\n\nconst waitForRevisionEndChanges = async () => {\n await act(async () => {\n await sleep(2500); // wait *just* a little longer than the timeout in the component\n });\n};\n\nconst qcmDrag = AnswerQCMDrag.props;\n\nconst LIMIT = 5;\n\nconst clickAllSlides = async (t, container, accumulator = 0) => {\n if (accumulator === LIMIT) return;\n\n // last one needs to wait for more calculations && components updates\n if (accumulator === 4)\n await act(async () => {\n await sleep(2000);\n });\n\n const validateButton = container.querySelectorAll(\n `[data-name=\"slide-validate-button-${accumulator}\"]`\n );\n t.truthy(elementExists(validateButton));\n\n await act(async () => {\n await fireEvent.click(validateButton[0]);\n });\n\n const nextButton = container.querySelectorAll(\n `[data-name=\"next-question-button-${accumulator}\"]`\n );\n t.truthy(elementExists(nextButton));\n\n await act(async () => {\n await fireEvent.click(nextButton[0]);\n });\n\n await clickAllSlides(t, container, accumulator + 1);\n};\n\ntest.serial('should validate all the slides && unmount the stacked slides after', async t => {\n const {container} = render(<SlidesReview {...successFixture.props} key={0} />);\n\n const wrapper = container.querySelectorAll('[data-name=\"slides-revision-container\"]');\n t.truthy(wrapper);\n\n let stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.truthy(elementExists(stackedSlidesContainer));\n\n await clickAllSlides(t, container);\n\n await waitForRevisionEndChanges();\n\n stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.falsy(elementExists(stackedSlidesContainer));\n\n t.pass();\n});\n\ntest.serial('should validate all the slides except the last one, retry and pass', async t => {\n const {container} = render(<SlidesReview {...failOnceOnLastSlideFixture.props} key={1} />);\n\n const wrapper = container.querySelectorAll('[data-name=\"slides-revision-container\"]');\n t.truthy(wrapper);\n\n const stackedSlidesContainer = container.querySelectorAll(\n '[data-name=\"stacked-slides-container\"]'\n );\n t.truthy(elementExists(stackedSlidesContainer));\n\n // loop once\n await clickAllSlides(t, container);\n\n // fail the first slide again (the other slides are passed)\n const validateButton = container.querySelectorAll('[data-name=\"slide-validate-button-0\"]');\n t.truthy(elementExists(validateButton));\n\n await act(async () => {\n await fireEvent.click(validateButton[0]);\n });\n\n t.pass();\n});\n\ntest.serial('should fail all the slides && still find the stacked slides after', async t => {\n const {container} = render(<SlidesReview {...failureFixture.props} key={2} />);\n\n const wrapper = container.querySelectorAll('[data-name=\"slides-revision-container\"]');\n t.truthy(wrapper);\n\n let stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.truthy(elementExists(stackedSlidesContainer));\n\n // loop once\n await clickAllSlides(t, container);\n\n // fail the first slide again (all the other slides are also on fail state)\n const validateButton = container.querySelectorAll('[data-name=\"slide-validate-button-0\"]');\n t.truthy(elementExists(validateButton));\n\n await act(async () => {\n await fireEvent.click(validateButton[0]);\n });\n\n stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.truthy(elementExists(stackedSlidesContainer));\n\n t.pass();\n});\n\ntest.serial('should end Revision on signal && unmount the stacked slides after', async t => {\n t.plan(6);\n const onValidateClick = () => {\n t.pass();\n return Promise.resolve({\n validationResult: 'failure',\n nextSlide: {question: 'Other question?', answer: qcmDrag},\n endReview: true\n });\n };\n\n const props = {\n ...failureFixture.props,\n validate: {\n label: failureFixture.props.validate.label,\n onClick: onValidateClick\n }\n };\n\n const {container} = render(<SlidesReview {...props} key={3} />);\n\n const wrapper = container.querySelectorAll('[data-name=\"slides-revision-container\"]');\n t.truthy(wrapper);\n\n let stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.truthy(elementExists(stackedSlidesContainer));\n\n const validateButton = container.querySelectorAll('[data-name=\"slide-validate-button-0\"]');\n t.truthy(elementExists(validateButton));\n\n await act(async () => {\n await fireEvent.click(validateButton[0]);\n });\n\n await waitForRevisionEndChanges();\n\n stackedSlidesContainer = container.querySelectorAll('[data-name=\"stacked-slides-container\"]');\n t.falsy(elementExists(stackedSlidesContainer));\n\n t.pass();\n});\n"],"file":"slides-review.js"}
@@ -0,0 +1,35 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
4
+
5
+ import React from 'react';
6
+ import PropTypes from 'prop-types';
7
+ import { render } from '@testing-library/react';
8
+ import { mockTranslate } from '@coorpacademy/translate';
9
+ import Provider from '../atom/provider';
10
+ export const renderWithContext = (component, _ref) => {
11
+ let {
12
+ context
13
+ } = _ref,
14
+ renderOptions = _objectWithoutPropertiesLoose(_ref, ["context"]);
15
+
16
+ // uses mockTranslate as a default translate function
17
+ const {
18
+ translate = mockTranslate
19
+ } = context,
20
+ rest = _objectWithoutPropertiesLoose(context, ["translate"]);
21
+
22
+ const wrapper = ({
23
+ children
24
+ }) => /*#__PURE__*/React.createElement(Provider, _extends({}, rest, {
25
+ translate: translate
26
+ }), children);
27
+
28
+ wrapper.propTypes = process.env.NODE_ENV !== "production" ? {
29
+ children: PropTypes.node
30
+ } : {};
31
+ return render(component, _extends(_extends({}, renderOptions), {}, {
32
+ wrapper
33
+ }));
34
+ };
35
+ //# sourceMappingURL=render-with-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/render-with-context.js"],"names":["React","PropTypes","render","mockTranslate","Provider","renderWithContext","component","context","renderOptions","translate","rest","wrapper","children","propTypes","node"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAAQC,MAAR,QAAqB,wBAArB;AACA,SAAQC,aAAR,QAA4B,yBAA5B;AACA,OAAOC,QAAP,MAAqB,kBAArB;AAEA,OAAO,MAAMC,iBAAiB,GAAG,CAACC,SAAD,WAA4C;AAAA,MAAhC;AAACC,IAAAA;AAAD,GAAgC;AAAA,MAAnBC,aAAmB;;AAC3E;AACA,QAAM;AAACC,IAAAA,SAAS,GAAGN;AAAb,MAAuCI,OAA7C;AAAA,QAAqCG,IAArC,iCAA6CH,OAA7C;;AAEA,QAAMI,OAAO,GAAG,CAAC;AAACC,IAAAA;AAAD,GAAD,kBACd,oBAAC,QAAD,eAAcF,IAAd;AAAoB,IAAA,SAAS,EAAED;AAA/B,MACGG,QADH,CADF;;AAMAD,EAAAA,OAAO,CAACE,SAAR,2CAAoB;AAClBD,IAAAA,QAAQ,EAAEX,SAAS,CAACa;AADF,GAApB;AAIA,SAAOZ,MAAM,CAACI,SAAD,wBACRE,aADQ;AAEXG,IAAAA;AAFW,KAAb;AAID,CAlBM","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {render} from '@testing-library/react';\nimport {mockTranslate} from '@coorpacademy/translate';\nimport Provider from '../atom/provider';\n\nexport const renderWithContext = (component, {context, ...renderOptions}) => {\n // uses mockTranslate as a default translate function\n const {translate = mockTranslate, ...rest} = context;\n\n const wrapper = ({children}) => (\n <Provider {...rest} translate={translate}>\n {children}\n </Provider>\n );\n\n wrapper.propTypes = {\n children: PropTypes.node\n };\n\n return render(component, {\n ...renderOptions,\n wrapper\n });\n};\n"],"file":"render-with-context.js"}
@@ -0,0 +1,91 @@
1
+ import browserEnv from 'browser-env';
2
+ import React from 'react';
3
+ import test from 'ava';
4
+ import { mockTranslate } from '@coorpacademy/translate';
5
+ import PropTypes from 'prop-types';
6
+ import getOr from 'lodash/fp/getOr';
7
+ import { renderWithContext } from '../render-with-context';
8
+ import Provider from '../../atom/provider';
9
+ browserEnv();
10
+
11
+ const TestComponent = (props, context) => {
12
+ const {
13
+ skin,
14
+ translate
15
+ } = context;
16
+ const {
17
+ label,
18
+ expectedPrimaryColor,
19
+ _test
20
+ } = props;
21
+ const primary = getOr(null, 'common.primary', skin);
22
+
23
+ _test.is(primary, expectedPrimaryColor);
24
+
25
+ return /*#__PURE__*/React.createElement("div", {
26
+ "data-name": "test-component"
27
+ }, translate(label));
28
+ };
29
+
30
+ TestComponent.propTypes = process.env.NODE_ENV !== "production" ? {
31
+ label: PropTypes.string,
32
+ expectedPrimaryColor: PropTypes.string,
33
+ // eslint-disable-next-line react/forbid-prop-types
34
+ _test: PropTypes.object
35
+ } : {};
36
+ TestComponent.contextTypes = {
37
+ translate: Provider.childContextTypes.translate,
38
+ skin: Provider.childContextTypes.skin
39
+ };
40
+ test('should use default context if the context is empty', t => {
41
+ t.plan(4);
42
+ const expectedPrimaryColor = '#00B0FF';
43
+ const props = {
44
+ label: 'test-label',
45
+ expectedPrimaryColor,
46
+ _test: t
47
+ };
48
+ const {
49
+ container
50
+ } = renderWithContext( /*#__PURE__*/React.createElement(TestComponent, props), {
51
+ context: {}
52
+ });
53
+ const element = container.querySelector('[data-name="test-component"]');
54
+ t.truthy(element);
55
+ t.is(element.textContent, mockTranslate(props.label));
56
+ t.pass();
57
+ });
58
+ test('should use given context', t => {
59
+ t.plan(6);
60
+ const skin = {
61
+ common: {
62
+ primary: '#0091EA'
63
+ }
64
+ };
65
+
66
+ const translate = key => {
67
+ t.pass();
68
+ return key;
69
+ };
70
+
71
+ const expectedPrimaryColor = '#0091EA';
72
+ const props = {
73
+ label: 'test-label',
74
+ expectedPrimaryColor,
75
+ _test: t
76
+ };
77
+ const {
78
+ container
79
+ } = renderWithContext( /*#__PURE__*/React.createElement(TestComponent, props), {
80
+ context: {
81
+ skin,
82
+ translate
83
+ }
84
+ });
85
+ const element = container.querySelector('[data-name="test-component"]');
86
+ t.truthy(element);
87
+ t.not(element.textContent, mockTranslate(props.label));
88
+ t.is(element.textContent, props.label);
89
+ t.pass();
90
+ });
91
+ //# sourceMappingURL=render-with-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/util/test/render-with-context.js"],"names":["browserEnv","React","test","mockTranslate","PropTypes","getOr","renderWithContext","Provider","TestComponent","props","context","skin","translate","label","expectedPrimaryColor","_test","primary","is","propTypes","string","object","contextTypes","childContextTypes","t","plan","container","element","querySelector","truthy","textContent","pass","common","key","not"],"mappings":"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","sourcesContent":["import browserEnv from 'browser-env';\nimport React from 'react';\nimport test from 'ava';\nimport {mockTranslate} from '@coorpacademy/translate';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport {renderWithContext} from '../render-with-context';\nimport Provider from '../../atom/provider';\n\nbrowserEnv();\n\nconst TestComponent = (props, context) => {\n const {skin, translate} = context;\n const {label, expectedPrimaryColor, _test} = props;\n\n const primary = getOr(null, 'common.primary', skin);\n _test.is(primary, expectedPrimaryColor);\n return <div data-name=\"test-component\">{translate(label)}</div>;\n};\n\nTestComponent.propTypes = {\n label: PropTypes.string,\n expectedPrimaryColor: PropTypes.string,\n // eslint-disable-next-line react/forbid-prop-types\n _test: PropTypes.object\n};\n\nTestComponent.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\ntest('should use default context if the context is empty', t => {\n t.plan(4);\n const expectedPrimaryColor = '#00B0FF';\n\n const props = {\n label: 'test-label',\n expectedPrimaryColor,\n _test: t\n };\n\n const {container} = renderWithContext(<TestComponent {...props} />, {\n context: {}\n });\n\n const element = container.querySelector('[data-name=\"test-component\"]');\n\n t.truthy(element);\n\n t.is(element.textContent, mockTranslate(props.label));\n\n t.pass();\n});\n\ntest('should use given context', t => {\n t.plan(6);\n const skin = {\n common: {\n primary: '#0091EA'\n }\n };\n\n const translate = key => {\n t.pass();\n return key;\n };\n\n const expectedPrimaryColor = '#0091EA';\n\n const props = {\n label: 'test-label',\n expectedPrimaryColor,\n _test: t\n };\n\n const {container} = renderWithContext(<TestComponent {...props} />, {\n context: {\n skin,\n translate\n }\n });\n\n const element = container.querySelector('[data-name=\"test-component\"]');\n\n t.truthy(element);\n\n t.not(element.textContent, mockTranslate(props.label));\n\n t.is(element.textContent, props.label);\n\n t.pass();\n});\n"],"file":"render-with-context.js"}
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _identity2 = _interopRequireDefault(require("lodash/fp/identity"));
4
-
5
3
  var _browserEnv = _interopRequireDefault(require("browser-env"));
6
4
 
7
5
  var _ava = _interopRequireDefault(require("ava"));
8
6
 
9
7
  var _react = _interopRequireDefault(require("react"));
10
8
 
11
- var _enzyme = require("enzyme");
12
-
13
- var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
9
+ var _react2 = require("@testing-library/react");
14
10
 
15
11
  var _ = _interopRequireDefault(require(".."));
16
12
 
@@ -21,31 +17,31 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
21
17
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
18
 
23
19
  (0, _browserEnv.default)();
24
- (0, _enzyme.configure)({
25
- adapter: new _enzymeAdapterReact.default()
26
- });
27
- const translate = _identity2.default;
28
20
  (0, _ava.default)('should launch onClick on click event for ButtonLinkIconOnly', t => {
29
- const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_.default, _buttonIconBullet.default.props), {
30
- context: {
31
- translate
32
- }
21
+ t.plan(3);
22
+
23
+ const props = _extends(_extends({}, _buttonIconBullet.default.props), {}, {
24
+ onClick: () => t.pass()
33
25
  });
34
- const button = wrapper.find('[data-name="bullet-button"]');
35
- t.true(button.exists());
36
- button.first().simulate('click', {});
26
+
27
+ const {
28
+ container
29
+ } = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, props));
30
+ const bulletButton = container.querySelector('[data-name="bullet-button"]');
31
+ t.truthy(bulletButton);
32
+
33
+ _react2.fireEvent.click(bulletButton);
34
+
37
35
  t.pass();
38
36
  });
39
37
  (0, _ava.default)('should mount ButtonLinkIconOnly even if the className does not exist', t => {
40
- const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _buttonIconBullet.default.props, {
38
+ const {
39
+ container
40
+ } = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, _extends({}, _buttonIconBullet.default.props, {
41
41
  className: 'noClass'
42
- })), {
43
- context: {
44
- translate
45
- }
46
- });
47
- const button = wrapper.find('[data-name="bullet-button"]');
48
- t.true(button.exists());
42
+ })));
43
+ const bulletButton = container.querySelector('[data-name="bullet-button"]');
44
+ t.truthy(bulletButton);
49
45
  t.pass();
50
46
  });
51
47
  //# sourceMappingURL=button-link-icon-only.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/atom/button-link-icon-only/test/button-link-icon-only.js"],"names":["adapter","Adapter","translate","t","wrapper","defaultFixture","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;AAEA;AACA,uBAAU;AAACA,EAAAA,OAAO,EAAE,IAAIC,2BAAJ;AAAV,CAAV;AACA,MAAMC,SAAS,qBAAf;AAEA,kBAAK,6DAAL,EAAoEC,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD,EAAwBC,0BAAeC,KAAvC,CAAR,EAA0D;AACxEC,IAAAA,OAAO,EAAE;AAACL,MAAAA;AAAD;AAD+D,GAA1D,CAAhB;AAGA,QAAMM,MAAM,GAAGJ,OAAO,CAACK,IAAR,CAAa,6BAAb,CAAf;AACAN,EAAAA,CAAC,CAACO,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAV,EAAAA,CAAC,CAACW,IAAF;AACD,CARD;AAUA,kBAAK,sEAAL,EAA6EX,CAAC,IAAI;AAChF,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD,eAAwBC,0BAAeC,KAAvC;AAA8C,IAAA,SAAS,EAAE;AAAzD,KAAR,EAAgF;AAC9FC,IAAAA,OAAO,EAAE;AAACL,MAAAA;AAAD;AADqF,GAAhF,CAAhB;AAGA,QAAMM,MAAM,GAAGJ,OAAO,CAACK,IAAR,CAAa,6BAAb,CAAf;AACAN,EAAAA,CAAC,CAACO,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAR,EAAAA,CAAC,CAACW,IAAF;AACD,CAPD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ButtonLinkIconOnly from '..';\nimport defaultFixture from './fixtures/button-icon-bullet';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick on click event for ButtonLinkIconOnly', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n t.pass();\n});\n\ntest('should mount ButtonLinkIconOnly even if the className does not exist', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} className={'noClass'} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n t.pass();\n});\n"],"file":"button-link-icon-only.js"}
1
+ {"version":3,"sources":["../../../../src/atom/button-link-icon-only/test/button-link-icon-only.js"],"names":["t","plan","props","defaultFixture","onClick","pass","container","bulletButton","querySelector","truthy","fireEvent","click"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA;AAEA,kBAAK,6DAAL,EAAoEA,CAAC,IAAI;AACvEA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;;AAEA,QAAMC,KAAK,yBACNC,0BAAeD,KADT;AAETE,IAAAA,OAAO,EAAE,MAAMJ,CAAC,CAACK,IAAF;AAFN,IAAX;;AAKA,QAAM;AAACC,IAAAA;AAAD,MAAc,kCAAO,6BAAC,SAAD,EAAwBJ,KAAxB,CAAP,CAApB;AAEA,QAAMK,YAAY,GAAGD,SAAS,CAACE,aAAV,CAAwB,6BAAxB,CAArB;AACAR,EAAAA,CAAC,CAACS,MAAF,CAASF,YAAT;;AAEAG,oBAAUC,KAAV,CAAgBJ,YAAhB;;AAEAP,EAAAA,CAAC,CAACK,IAAF;AACD,CAhBD;AAkBA,kBAAK,sEAAL,EAA6EL,CAAC,IAAI;AAChF,QAAM;AAACM,IAAAA;AAAD,MAAc,kCAClB,6BAAC,SAAD,eAAwBH,0BAAeD,KAAvC;AAA8C,IAAA,SAAS,EAAE;AAAzD,KADkB,CAApB;AAIA,QAAMK,YAAY,GAAGD,SAAS,CAACE,aAAV,CAAwB,6BAAxB,CAArB;AACAR,EAAAA,CAAC,CAACS,MAAF,CAASF,YAAT;AAEAP,EAAAA,CAAC,CAACK,IAAF;AACD,CATD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {render, fireEvent} from '@testing-library/react';\nimport ButtonLinkIconOnly from '..';\nimport defaultFixture from './fixtures/button-icon-bullet';\n\nbrowserEnv();\n\ntest('should launch onClick on click event for ButtonLinkIconOnly', t => {\n t.plan(3);\n\n const props = {\n ...defaultFixture.props,\n onClick: () => t.pass()\n };\n\n const {container} = render(<ButtonLinkIconOnly {...props} />);\n\n const bulletButton = container.querySelector('[data-name=\"bullet-button\"]');\n t.truthy(bulletButton);\n\n fireEvent.click(bulletButton);\n\n t.pass();\n});\n\ntest('should mount ButtonLinkIconOnly even if the className does not exist', t => {\n const {container} = render(\n <ButtonLinkIconOnly {...defaultFixture.props} className={'noClass'} />\n );\n\n const bulletButton = container.querySelector('[data-name=\"bullet-button\"]');\n t.truthy(bulletButton);\n\n t.pass();\n});\n"],"file":"button-link-icon-only.js"}
@@ -5,61 +5,49 @@ exports.default = void 0;
5
5
 
6
6
  var _noop2 = _interopRequireDefault(require("lodash/fp/noop"));
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
13
+
14
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
12
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
17
 
14
18
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
19
 
16
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
21
 
18
- class Checkbox extends _react.default.Component {
19
- constructor(props) {
20
- super(props);
21
- const {
22
- checked
23
- } = props;
24
- this.state = {
25
- checked
26
- };
27
- this.handleChangeBound = this.handleChange.bind(this);
28
- }
22
+ const Checkbox = props => {
23
+ const {
24
+ checked,
25
+ onChange = _noop2.default,
26
+ type = 'checkbox'
27
+ } = props,
28
+ rest = _objectWithoutPropertiesLoose(props, ["checked", "onChange", "type"]);
29
29
 
30
- handleChange(e) {
31
- const {
32
- onChange = _noop2.default
33
- } = this.props;
30
+ const [_checked, setChecked] = (0, _react.useState)(checked);
31
+ const handleChange = (0, _react.useCallback)(e => {
34
32
  onChange(e.target.checked);
35
- this.setState({
36
- checked: e.target.checked
37
- });
38
- }
39
-
40
- render() {
41
- const {
42
- props,
43
- state,
44
- 'data-name': dataName
45
- } = this;
46
- return /*#__PURE__*/_react.default.createElement("input", _extends({}, props, state, {
47
- type: "checkbox",
48
- "data-name": dataName,
49
- onChange: this.handleChangeBound
50
- }));
51
- }
52
-
53
- }
54
-
55
- _defineProperty(Checkbox, "defaultProps", {
56
- onChange: _noop2.default
57
- });
33
+ setChecked(!_checked);
34
+ }, [_checked, onChange]);
35
+ return /*#__PURE__*/_react.default.createElement("input", _extends({}, rest, {
36
+ checked: _checked,
37
+ type: type,
38
+ onChange: handleChange
39
+ }));
40
+ };
58
41
 
59
42
  Checkbox.propTypes = process.env.NODE_ENV !== "production" ? {
60
43
  checked: _propTypes.default.bool,
61
44
  onChange: _propTypes.default.func,
62
- 'data-name': _propTypes.default.string
45
+ title: _propTypes.default.string,
46
+ type: _propTypes.default.string,
47
+ required: _propTypes.default.bool,
48
+ disabled: _propTypes.default.bool,
49
+ 'data-name': _propTypes.default.string,
50
+ 'aria-label': _propTypes.default.string
63
51
  } : {};
64
52
  var _default = Checkbox;
65
53
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/checkbox/index.js"],"names":["Checkbox","React","Component","constructor","props","checked","state","handleChangeBound","handleChange","bind","e","onChange","target","setState","render","dataName","propTypes","PropTypes","bool","func","string"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;AAGA,MAAMA,QAAN,SAAuBC,eAAMC,SAA7B,CAAuC;AAWrCC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AACA,UAAM;AAACC,MAAAA;AAAD,QAAYD,KAAlB;AACA,SAAKE,KAAL,GAAa;AAACD,MAAAA;AAAD,KAAb;AACA,SAAKE,iBAAL,GAAyB,KAAKC,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAAzB;AACD;;AAEDD,EAAAA,YAAY,CAACE,CAAD,EAAI;AACd,UAAM;AAACC,MAAAA,QAAQ;AAAT,QAAoB,KAAKP,KAA/B;AACAO,IAAAA,QAAQ,CAACD,CAAC,CAACE,MAAF,CAASP,OAAV,CAAR;AACA,SAAKQ,QAAL,CAAc;AACZR,MAAAA,OAAO,EAAEK,CAAC,CAACE,MAAF,CAASP;AADN,KAAd;AAGD;;AAEDS,EAAAA,MAAM,GAAG;AACP,UAAM;AAACV,MAAAA,KAAD;AAAQE,MAAAA,KAAR;AAAe,mBAAaS;AAA5B,QAAwC,IAA9C;AACA,wBACE,mDACMX,KADN,EAEME,KAFN;AAGE,MAAA,IAAI,EAAC,UAHP;AAIE,mBAAWS,QAJb;AAKE,MAAA,QAAQ,EAAE,KAAKR;AALjB,OADF;AASD;;AArCoC;;gBAAjCP,Q,kBAOkB;AACpBW,EAAAA,QAAQ;AADY,C;;AAPlBX,Q,CACGgB,S,2CAAY;AACjBX,EAAAA,OAAO,EAAEY,mBAAUC,IADF;AAEjBP,EAAAA,QAAQ,EAAEM,mBAAUE,IAFH;AAGjB,eAAaF,mBAAUG;AAHN,C;eAuCNpB,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop} from 'lodash/fp';\n\nclass Checkbox extends React.Component {\n static propTypes = {\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n 'data-name': PropTypes.string\n };\n\n static defaultProps = {\n onChange: noop\n };\n\n constructor(props) {\n super(props);\n const {checked} = props;\n this.state = {checked};\n this.handleChangeBound = this.handleChange.bind(this);\n }\n\n handleChange(e) {\n const {onChange = noop} = this.props;\n onChange(e.target.checked);\n this.setState({\n checked: e.target.checked\n });\n }\n\n render() {\n const {props, state, 'data-name': dataName} = this;\n return (\n <input\n {...props}\n {...state}\n type=\"checkbox\"\n data-name={dataName}\n onChange={this.handleChangeBound}\n />\n );\n }\n}\n\nexport default Checkbox;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/checkbox/index.js"],"names":["Checkbox","props","checked","onChange","type","rest","_checked","setChecked","handleChange","e","target","propTypes","PropTypes","bool","func","title","string","required","disabled"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;AAGA,MAAMA,QAAQ,GAAGC,KAAK,IAAI;AACxB,QAAM;AAACC,IAAAA,OAAD;AAAUC,IAAAA,QAAQ,iBAAlB;AAA2BC,IAAAA,IAAI,GAAG;AAAlC,MAAyDH,KAA/D;AAAA,QAAuDI,IAAvD,iCAA+DJ,KAA/D;;AACA,QAAM,CAACK,QAAD,EAAWC,UAAX,IAAyB,qBAASL,OAAT,CAA/B;AAEA,QAAMM,YAAY,GAAG,wBACnBC,CAAC,IAAI;AACHN,IAAAA,QAAQ,CAACM,CAAC,CAACC,MAAF,CAASR,OAAV,CAAR;AACAK,IAAAA,UAAU,CAAC,CAACD,QAAF,CAAV;AACD,GAJkB,EAKnB,CAACA,QAAD,EAAWH,QAAX,CALmB,CAArB;AAQA,sBAAO,mDAAWE,IAAX;AAAiB,IAAA,OAAO,EAAEC,QAA1B;AAAoC,IAAA,IAAI,EAAEF,IAA1C;AAAgD,IAAA,QAAQ,EAAEI;AAA1D,KAAP;AACD,CAbD;;AAeAR,QAAQ,CAACW,SAAT,2CAAqB;AACnBT,EAAAA,OAAO,EAAEU,mBAAUC,IADA;AAEnBV,EAAAA,QAAQ,EAAES,mBAAUE,IAFD;AAGnBC,EAAAA,KAAK,EAAEH,mBAAUI,MAHE;AAInBZ,EAAAA,IAAI,EAAEQ,mBAAUI,MAJG;AAKnBC,EAAAA,QAAQ,EAAEL,mBAAUC,IALD;AAMnBK,EAAAA,QAAQ,EAAEN,mBAAUC,IAND;AAOnB,eAAaD,mBAAUI,MAPJ;AAQnB,gBAAcJ,mBAAUI;AARL,CAArB;eAWehB,Q","sourcesContent":["import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {noop} from 'lodash/fp';\n\nconst Checkbox = props => {\n const {checked, onChange = noop, type = 'checkbox', ...rest} = props;\n const [_checked, setChecked] = useState(checked);\n\n const handleChange = useCallback(\n e => {\n onChange(e.target.checked);\n setChecked(!_checked);\n },\n [_checked, onChange]\n );\n\n return <input {...rest} checked={_checked} type={type} onChange={handleChange} />;\n};\n\nCheckbox.propTypes = {\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n title: PropTypes.string,\n type: PropTypes.string,\n required: PropTypes.bool,\n disabled: PropTypes.bool,\n 'data-name': PropTypes.string,\n 'aria-label': PropTypes.string\n};\n\nexport default Checkbox;\n"],"file":"index.js"}
@@ -7,7 +7,8 @@ var _default = {
7
7
  type: 'checkbox',
8
8
  title: 'OK',
9
9
  checked: false,
10
- onChange: value => console.log(value)
10
+ 'aria-label': 'checkbox-aria-label',
11
+ onChange: value => console.log('onChange', value)
11
12
  }
12
13
  };
13
14
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/atom/checkbox/test/fixtures/default.js"],"names":["props","type","title","checked","onChange","value","console","log"],"mappings":";;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,UADD;AAELC,IAAAA,KAAK,EAAE,IAFF;AAGLC,IAAAA,OAAO,EAAE,KAHJ;AAILC,IAAAA,QAAQ,EAAEC,KAAK,IAAIC,OAAO,CAACC,GAAR,CAAYF,KAAZ;AAJd;AADM,C","sourcesContent":["export default {\n props: {\n type: 'checkbox',\n title: 'OK',\n checked: false,\n onChange: value => console.log(value)\n }\n};\n"],"file":"default.js"}
1
+ {"version":3,"sources":["../../../../../src/atom/checkbox/test/fixtures/default.js"],"names":["props","type","title","checked","onChange","value","console","log"],"mappings":";;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,UADD;AAELC,IAAAA,KAAK,EAAE,IAFF;AAGLC,IAAAA,OAAO,EAAE,KAHJ;AAIL,kBAAc,qBAJT;AAKLC,IAAAA,QAAQ,EAAEC,KAAK,IAAIC,OAAO,CAACC,GAAR,CAAY,UAAZ,EAAwBF,KAAxB;AALd;AADM,C","sourcesContent":["export default {\n props: {\n type: 'checkbox',\n title: 'OK',\n checked: false,\n 'aria-label': 'checkbox-aria-label',\n onChange: value => console.log('onChange', value)\n }\n};\n"],"file":"default.js"}
@@ -6,43 +6,49 @@ var _ava = _interopRequireDefault(require("ava"));
6
6
 
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
 
9
- var _enzyme = require("enzyme");
10
-
11
- var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
9
+ var _react2 = require("@testing-library/react");
12
10
 
13
11
  var _ = _interopRequireDefault(require(".."));
14
12
 
15
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
14
 
17
15
  (0, _browserEnv.default)();
18
- (0, _enzyme.configure)({
19
- adapter: new _enzymeAdapterReact.default()
20
- });
21
16
  (0, _ava.default)('should call the onChange function and toggle the value on change', t => {
22
- t.plan(5);
17
+ t.plan(6);
23
18
  const expectedOnChangeValues = [false, true];
24
19
 
25
20
  const onChange = value => {
26
21
  t.is(value, expectedOnChangeValues.shift());
27
22
  };
28
23
 
29
- const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_.default, {
24
+ const dataName = 'check-box';
25
+ const {
26
+ container
27
+ } = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
30
28
  checked: true,
31
- onChange: onChange
29
+ onChange: onChange,
30
+ "data-name": dataName
31
+ }));
32
+ const checkBox = container.querySelector(`[data-name="${dataName}"]`);
33
+ t.truthy(checkBox);
34
+ t.true(checkBox.checked);
35
+
36
+ _react2.fireEvent.click(checkBox);
37
+
38
+ t.false(checkBox.checked);
39
+
40
+ _react2.fireEvent.click(checkBox);
41
+
42
+ t.true(checkBox.checked);
43
+ });
44
+ (0, _ava.default)('should mount the checkbox with default values', t => {
45
+ const dataName = 'check-box';
46
+ const {
47
+ container
48
+ } = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, {
49
+ "data-name": dataName
32
50
  }));
33
- const instance = wrapper.instance();
34
- t.true(instance.state.checked);
35
- wrapper.find('input').simulate('change', {
36
- target: {
37
- checked: false
38
- }
39
- });
40
- t.false(instance.state.checked);
41
- wrapper.find('input').simulate('change', {
42
- target: {
43
- checked: true
44
- }
45
- });
46
- t.true(instance.state.checked);
51
+ const checkBox = container.querySelector(`[data-name="${dataName}"]`);
52
+ t.truthy(checkBox);
47
53
  });
48
54
  //# sourceMappingURL=on-change.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/atom/checkbox/test/on-change.js"],"names":["adapter","Adapter","t","plan","expectedOnChangeValues","onChange","value","is","shift","wrapper","instance","true","state","checked","find","simulate","target","false"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;AACA,uBAAU;AAACA,EAAAA,OAAO,EAAE,IAAIC,2BAAJ;AAAV,CAAV;AAEA,kBAAK,kEAAL,EAAyEC,CAAC,IAAI;AAC5EA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACA,QAAMC,sBAAsB,GAAG,CAAC,KAAD,EAAQ,IAAR,CAA/B;;AACA,QAAMC,QAAQ,GAAGC,KAAK,IAAI;AACxBJ,IAAAA,CAAC,CAACK,EAAF,CAAKD,KAAL,EAAYF,sBAAsB,CAACI,KAAvB,EAAZ;AACD,GAFD;;AAGA,QAAMC,OAAO,GAAG,mCAAQ,6BAAC,SAAD;AAAU,IAAA,OAAO,MAAjB;AAAkB,IAAA,QAAQ,EAAEJ;AAA5B,IAAR,CAAhB;AACA,QAAMK,QAAQ,GAAGD,OAAO,CAACC,QAAR,EAAjB;AAEAR,EAAAA,CAAC,CAACS,IAAF,CAAOD,QAAQ,CAACE,KAAT,CAAeC,OAAtB;AACAJ,EAAAA,OAAO,CAACK,IAAR,CAAa,OAAb,EAAsBC,QAAtB,CAA+B,QAA/B,EAAyC;AAACC,IAAAA,MAAM,EAAE;AAACH,MAAAA,OAAO,EAAE;AAAV;AAAT,GAAzC;AACAX,EAAAA,CAAC,CAACe,KAAF,CAAQP,QAAQ,CAACE,KAAT,CAAeC,OAAvB;AACAJ,EAAAA,OAAO,CAACK,IAAR,CAAa,OAAb,EAAsBC,QAAtB,CAA+B,QAA/B,EAAyC;AAACC,IAAAA,MAAM,EAAE;AAACH,MAAAA,OAAO,EAAE;AAAV;AAAT,GAAzC;AACAX,EAAAA,CAAC,CAACS,IAAF,CAAOD,QAAQ,CAACE,KAAT,CAAeC,OAAtB;AACD,CAdD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport Adapter from 'enzyme-adapter-react-16';\nimport Checkbox from '..';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\n\ntest('should call the onChange function and toggle the value on change', t => {\n t.plan(5);\n const expectedOnChangeValues = [false, true];\n const onChange = value => {\n t.is(value, expectedOnChangeValues.shift());\n };\n const wrapper = shallow(<Checkbox checked onChange={onChange} />);\n const instance = wrapper.instance();\n\n t.true(instance.state.checked);\n wrapper.find('input').simulate('change', {target: {checked: false}});\n t.false(instance.state.checked);\n wrapper.find('input').simulate('change', {target: {checked: true}});\n t.true(instance.state.checked);\n});\n"],"file":"on-change.js"}
1
+ {"version":3,"sources":["../../../../src/atom/checkbox/test/on-change.js"],"names":["t","plan","expectedOnChangeValues","onChange","value","is","shift","dataName","container","checkBox","querySelector","truthy","true","checked","fireEvent","click","false"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;AAEA,kBAAK,kEAAL,EAAyEA,CAAC,IAAI;AAC5EA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACA,QAAMC,sBAAsB,GAAG,CAAC,KAAD,EAAQ,IAAR,CAA/B;;AACA,QAAMC,QAAQ,GAAGC,KAAK,IAAI;AACxBJ,IAAAA,CAAC,CAACK,EAAF,CAAKD,KAAL,EAAYF,sBAAsB,CAACI,KAAvB,EAAZ;AACD,GAFD;;AAGA,QAAMC,QAAQ,GAAG,WAAjB;AACA,QAAM;AAACC,IAAAA;AAAD,MAAc,kCAAO,6BAAC,SAAD;AAAU,IAAA,OAAO,MAAjB;AAAkB,IAAA,QAAQ,EAAEL,QAA5B;AAAsC,iBAAWI;AAAjD,IAAP,CAApB;AAEA,QAAME,QAAQ,GAAGD,SAAS,CAACE,aAAV,CAAyB,eAAcH,QAAS,IAAhD,CAAjB;AACAP,EAAAA,CAAC,CAACW,MAAF,CAASF,QAAT;AAEAT,EAAAA,CAAC,CAACY,IAAF,CAAOH,QAAQ,CAACI,OAAhB;;AAEAC,oBAAUC,KAAV,CAAgBN,QAAhB;;AACAT,EAAAA,CAAC,CAACgB,KAAF,CAAQP,QAAQ,CAACI,OAAjB;;AAEAC,oBAAUC,KAAV,CAAgBN,QAAhB;;AACAT,EAAAA,CAAC,CAACY,IAAF,CAAOH,QAAQ,CAACI,OAAhB;AACD,CAnBD;AAqBA,kBAAK,+CAAL,EAAsDb,CAAC,IAAI;AACzD,QAAMO,QAAQ,GAAG,WAAjB;AACA,QAAM;AAACC,IAAAA;AAAD,MAAc,kCAAO,6BAAC,SAAD;AAAU,iBAAWD;AAArB,IAAP,CAApB;AAEA,QAAME,QAAQ,GAAGD,SAAS,CAACE,aAAV,CAAyB,eAAcH,QAAS,IAAhD,CAAjB;AACAP,EAAAA,CAAC,CAACW,MAAF,CAASF,QAAT;AACD,CAND","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {render, fireEvent} from '@testing-library/react';\nimport Checkbox from '..';\n\nbrowserEnv();\n\ntest('should call the onChange function and toggle the value on change', t => {\n t.plan(6);\n const expectedOnChangeValues = [false, true];\n const onChange = value => {\n t.is(value, expectedOnChangeValues.shift());\n };\n const dataName = 'check-box';\n const {container} = render(<Checkbox checked onChange={onChange} data-name={dataName} />);\n\n const checkBox = container.querySelector(`[data-name=\"${dataName}\"]`);\n t.truthy(checkBox);\n\n t.true(checkBox.checked);\n\n fireEvent.click(checkBox);\n t.false(checkBox.checked);\n\n fireEvent.click(checkBox);\n t.true(checkBox.checked);\n});\n\ntest('should mount the checkbox with default values', t => {\n const dataName = 'check-box';\n const {container} = render(<Checkbox data-name={dataName} />);\n\n const checkBox = container.querySelector(`[data-name=\"${dataName}\"]`);\n t.truthy(checkBox);\n});\n"],"file":"on-change.js"}