1 | "use strict";
|
2 |
|
3 | var _react = _interopRequireDefault(require("react"));
|
4 |
|
5 | var _react2 = require("@testing-library/react");
|
6 |
|
7 | var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
8 |
|
9 | var _theming = require("@storybook/theming");
|
10 |
|
11 | var _Array = _interopRequireDefault(require("./Array"));
|
12 |
|
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
14 |
|
15 | describe('Array', function () {
|
16 | it('should subscribe to setKnobs event of channel', function () {
|
17 | var onChange = jest.fn();
|
18 | (0, _react2.render)( _react["default"].createElement(_theming.ThemeProvider, {
|
19 | theme: (0, _theming.convert)(_theming.themes.light)
|
20 | }, _react["default"].createElement(_Array["default"], {
|
21 | onChange: onChange,
|
22 | knob: {
|
23 | name: 'passions',
|
24 | value: ['Fishing', 'Skiing'],
|
25 | separator: ','
|
26 | }
|
27 | }), ' '));
|
28 |
|
29 | var input = _react2.screen.getByRole('textbox');
|
30 |
|
31 | expect(input).toHaveValue('Fishing,Skiing');
|
32 |
|
33 | _userEvent["default"].type(input, ',');
|
34 |
|
35 | expect(onChange).toHaveBeenLastCalledWith(['Fishing', 'Skiing', '']);
|
36 | });
|
37 | it('deserializes an Array to an Array', function () {
|
38 | var array = ['a', 'b', 'c'];
|
39 |
|
40 | var deserialized = _Array["default"].deserialize(array);
|
41 |
|
42 | expect(deserialized).toEqual(['a', 'b', 'c']);
|
43 | });
|
44 | it('deserializes an Object to an Array', function () {
|
45 | var object = {
|
46 | 1: 'one',
|
47 | 0: 'zero',
|
48 | 2: 'two'
|
49 | };
|
50 |
|
51 | var deserialized = _Array["default"].deserialize(object);
|
52 |
|
53 | expect(deserialized).toEqual(['zero', 'one', 'two']);
|
54 | });
|
55 | it('should change to an empty array when emptied', function () {
|
56 | var onChange = jest.fn();
|
57 | (0, _react2.render)( _react["default"].createElement(_theming.ThemeProvider, {
|
58 | theme: (0, _theming.convert)(_theming.themes.light)
|
59 | }, _react["default"].createElement(_Array["default"], {
|
60 | onChange: onChange,
|
61 | knob: {
|
62 | name: 'passions',
|
63 | value: ['Fishing', 'Skiing'],
|
64 | separator: ','
|
65 | }
|
66 | }), ' '));
|
67 |
|
68 | var input = _react2.screen.getByRole('textbox');
|
69 |
|
70 | expect(input).toHaveValue('Fishing,Skiing');
|
71 |
|
72 | _userEvent["default"].clear(input);
|
73 |
|
74 | expect(onChange).toHaveBeenLastCalledWith([]);
|
75 | });
|
76 | }); |
\ | No newline at end of file |