UNPKG

2.29 kBJavaScriptView Raw
1"use strict";
2
3var _react = _interopRequireDefault(require("react"));
4
5var _react2 = require("@testing-library/react");
6
7var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
8
9var _theming = require("@storybook/theming");
10
11var _Array = _interopRequireDefault(require("./Array"));
12
13function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
15describe('Array', function () {
16 it('should subscribe to setKnobs event of channel', function () {
17 var onChange = jest.fn();
18 (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_theming.ThemeProvider, {
19 theme: (0, _theming.convert)(_theming.themes.light)
20 }, /*#__PURE__*/_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)( /*#__PURE__*/_react["default"].createElement(_theming.ThemeProvider, {
58 theme: (0, _theming.convert)(_theming.themes.light)
59 }, /*#__PURE__*/_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