@pingux/astro 1.8.0-alpha.0 → 1.8.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,62 @@
1
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
2
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
3
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
4
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
6
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
15
+
1
16
  import React from 'react';
17
+ import { act } from '@testing-library/react';
2
18
  import axeTest from '../../utils/testUtils/testAxe';
3
19
  import { render, screen } from '../../utils/testUtils/testWrapper';
4
20
  import Image from '.';
5
21
  import { jsx as ___EmotionJSX } from "@emotion/react";
22
+ var testSrc = 'test-src';
23
+ var testFallbackSrc = 'test-fallback-src';
24
+ var skeletonImageId = 'skeleton-image';
25
+ var defaultProps = {
26
+ src: testSrc,
27
+ fallbackImage: testFallbackSrc
28
+ };
6
29
 
7
30
  var getComponent = function getComponent() {
8
31
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9
- return render(___EmotionJSX(Image, props));
32
+ return render(___EmotionJSX(Image, _extends({}, defaultProps, props)));
10
33
  }; // Need to be added to each test file to test accessibility using axe.
11
34
 
12
35
 
13
36
  axeTest(getComponent);
37
+ var fallbackImageObj = null;
38
+ jest.mock('../../hooks/useFallbackImage', function () {
39
+ return function (props) {
40
+ fallbackImageObj = _objectSpread({}, props);
41
+ return [];
42
+ };
43
+ });
14
44
  test('an image is rendered', function () {
15
45
  getComponent();
46
+ act(function () {
47
+ fallbackImageObj.onImageLoad();
48
+ });
49
+ var img = screen.getByRole('img');
50
+ expect(img).toBeInstanceOf(HTMLImageElement);
51
+ expect(img).toBeInTheDocument();
52
+ });
53
+ test('an image is rendered with no fallback', function () {
54
+ getComponent({
55
+ fallbackImage: null
56
+ });
57
+ act(function () {
58
+ fallbackImageObj.onImageLoad();
59
+ });
16
60
  var img = screen.getByRole('img');
17
61
  expect(img).toBeInstanceOf(HTMLImageElement);
18
62
  expect(img).toBeInTheDocument();
@@ -21,6 +65,79 @@ test('image shows disabled status', function () {
21
65
  getComponent({
22
66
  isDisabled: true
23
67
  });
68
+ act(function () {
69
+ fallbackImageObj.onImageLoad();
70
+ });
24
71
  var img = screen.getByRole('img');
25
72
  expect(img).toHaveClass('is-disabled');
73
+ });
74
+ describe('test Image component with useFallbackImage hook', function () {
75
+ test('image component will use src if loaded correctly', function () {
76
+ getComponent();
77
+ act(function () {
78
+ fallbackImageObj.onImageLoad();
79
+ });
80
+ expect(screen.getByRole('img')).toHaveAttribute('src', testSrc);
81
+ });
82
+ test('image component will use fallbackImg if src loaded with error', function () {
83
+ getComponent();
84
+ act(function () {
85
+ fallbackImageObj.onImageError();
86
+ });
87
+ var img = screen.getByRole('img');
88
+ expect(img).toHaveAttribute('src', testFallbackSrc);
89
+ });
90
+ test('image component will use fallbackImg if src timed out', function () {
91
+ getComponent();
92
+ act(function () {
93
+ fallbackImageObj.onFallbackTimeout();
94
+ });
95
+ var img = screen.getByRole('img');
96
+ expect(img).toHaveAttribute('src', testFallbackSrc);
97
+ });
98
+ test('if image loads after timeout src still be the fallback', function () {
99
+ getComponent();
100
+ act(function () {
101
+ fallbackImageObj.onFallbackTimeout();
102
+ fallbackImageObj.onImageLoad();
103
+ });
104
+ var img = screen.getByRole('img');
105
+ expect(img).toHaveAttribute('src', testFallbackSrc);
106
+ });
107
+ test('if image loads before timeout src still be the the origin one', function () {
108
+ getComponent();
109
+ act(function () {
110
+ fallbackImageObj.onImageLoad();
111
+ fallbackImageObj.onFallbackTimeout();
112
+ });
113
+ expect(screen.getByRole('img')).toHaveAttribute('src', testSrc);
114
+ });
115
+ test('the skeleton loading will appear if no fallback image is given', function () {
116
+ getComponent({
117
+ fallbackImage: null
118
+ });
119
+ expect(screen.getByTestId(skeletonImageId)).toBeInTheDocument();
120
+ act(function () {
121
+ fallbackImageObj.onImageLoad();
122
+ });
123
+ expect(screen.getByRole('img')).toHaveAttribute('src', testSrc);
124
+ });
125
+ test('the skeleton will be shown instead of img if no fallback image is given and image load failed', function () {
126
+ getComponent({
127
+ fallbackImage: null
128
+ });
129
+ act(function () {
130
+ fallbackImageObj.onImageError();
131
+ });
132
+ expect(screen.getByTestId(skeletonImageId)).toBeInTheDocument();
133
+ });
134
+ test('the skeleton will be shown instead of img if no fallback image is given and image load timed out', function () {
135
+ getComponent({
136
+ fallbackImage: null
137
+ });
138
+ act(function () {
139
+ fallbackImageObj.onFallbackTimeout();
140
+ });
141
+ expect(screen.getByTestId(skeletonImageId)).toBeInTheDocument();
142
+ });
26
143
  });
@@ -0,0 +1,2 @@
1
+ export var pingImg = 'data:image/png;base64,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';
2
+ export var chiefIdentityChampions = 'https://images.pingidentity.com/image/upload/f_auto,q_auto,w_auto,c_scale/ping_dam/content/dam/ping-6-2-assets/images/company/our-company/chief-identity-champions.png';
@@ -7,15 +7,21 @@ import userEvent from '@testing-library/user-event';
7
7
  import axeTest from '../../utils/testUtils/testAxe';
8
8
  import { render, screen } from '../../utils/testUtils/testWrapper';
9
9
  import ImageUploadField from './ImageUploadField';
10
- import { Image } from '../../index';
11
10
  import { jsx as ___EmotionJSX } from "@emotion/react";
11
+ var imageUploadNoImagePreview = 'image-upload-no-image-preview';
12
+ jest.mock('../Image', function () {
13
+ return function (props) {
14
+ return ___EmotionJSX("img", _extends({
15
+ alt: "mock"
16
+ }, props));
17
+ };
18
+ });
12
19
  var testLabel = 'test-label';
13
20
  var testButtonId = 'image-preview-button';
14
21
  var testHelperText = 'test-helper-text';
15
22
  var testImageURL = 'test-image-url';
16
23
  var testImageURL2 = 'test-image-url2';
17
24
  var imageUploadImagePreview = 'image-upload-image-preview';
18
- var imageUploadNoImagePreview = 'image-upload-no-image-preview';
19
25
  var file = new File(['(⌐□_□)'], 'chucknorris.png', {
20
26
  type: 'image/png'
21
27
  });
@@ -185,10 +191,16 @@ test('should change image if the corresponding menu option clicked', /*#__PURE__
185
191
  files: [file]
186
192
  }
187
193
  });
188
- expect(imagePreview).toBeInTheDocument();
194
+ _context4.t0 = expect;
195
+ _context4.next = 14;
196
+ return screen.findByTestId(imageUploadImagePreview);
197
+
198
+ case 14:
199
+ _context4.t1 = _context4.sent;
200
+ (0, _context4.t0)(_context4.t1).toBeInTheDocument();
189
201
  expect(imagePreview).toHaveAttribute('src');
190
202
 
191
- case 13:
203
+ case 17:
192
204
  case "end":
193
205
  return _context4.stop();
194
206
  }
@@ -228,12 +240,18 @@ test('should call onRemove cb (when provided) when a file is uploaded', /*#__PUR
228
240
  case 5:
229
241
  imagePreview = _context5.sent;
230
242
  userEvent.click(screen.getByTestId(testButtonId));
231
- expect(imagePreview).toBeInTheDocument();
243
+ _context5.t0 = expect;
244
+ _context5.next = 10;
245
+ return screen.findByTestId(imageUploadImagePreview);
246
+
247
+ case 10:
248
+ _context5.t1 = _context5.sent;
249
+ (0, _context5.t0)(_context5.t1).toBeInTheDocument();
232
250
  userEvent.click(screen.getByText('Remove Image'));
233
251
  expect(imagePreview).not.toBeInTheDocument();
234
252
  expect(testOnRemove).toHaveBeenCalledTimes(1);
235
253
 
236
- case 11:
254
+ case 15:
237
255
  case "end":
238
256
  return _context5.stop();
239
257
  }
@@ -372,7 +390,9 @@ test('should show the menu if label clicked when preview image exists', /*#__PUR
372
390
  })));
373
391
  test('should render node element if passed as default image', function () {
374
392
  getComponent({
375
- defaultPreviewImage: ___EmotionJSX(Image, null)
393
+ defaultPreviewImage: ___EmotionJSX("img", {
394
+ alt: "mock"
395
+ })
376
396
  });
377
397
  var img = screen.getByRole('img');
378
398
  expect(img).toBeInstanceOf(HTMLImageElement);
@@ -10,4 +10,5 @@ export { default as useNavBarPress } from './useNavBarPress';
10
10
  export { default as useRockerButton } from './useRockerButton';
11
11
  export { default as useSelectField } from './useSelectField';
12
12
  export { default as useStatusClasses } from './useStatusClasses';
13
- export { default as useDebounce } from './useDebounce';
13
+ export { default as useDebounce } from './useDebounce';
14
+ export { default as useFallbackImage } from './useFallbackImage';
@@ -0,0 +1 @@
1
+ export { default } from './useFallbackImage';
@@ -0,0 +1,32 @@
1
+ import _setTimeout from "@babel/runtime-corejs3/core-js-stable/set-timeout";
2
+ import { useEffect, useMemo } from 'react';
3
+
4
+ var useFallbackImage = function useFallbackImage(_ref) {
5
+ var imageSrc = _ref.src,
6
+ onImageLoad = _ref.onImageLoad,
7
+ onImageError = _ref.onImageError,
8
+ fallbackTimeout = _ref.fallbackTimeout,
9
+ onFallbackTimeout = _ref.onFallbackTimeout;
10
+ var displayImage = useMemo(function () {
11
+ return document.createElement('img');
12
+ }, []);
13
+ useEffect(function () {
14
+ displayImage.src = imageSrc;
15
+ displayImage.onload = onImageLoad;
16
+ displayImage.onerror = onImageError;
17
+ return function () {
18
+ displayImage.onload = null;
19
+ displayImage.onerror = null;
20
+ };
21
+ }, []);
22
+ useEffect(function () {
23
+ var timeoutId = 0;
24
+ timeoutId = _setTimeout(onFallbackTimeout, fallbackTimeout);
25
+ return function () {
26
+ return clearTimeout(timeoutId);
27
+ };
28
+ }, []);
29
+ return displayImage;
30
+ };
31
+
32
+ export default useFallbackImage;
@@ -0,0 +1,51 @@
1
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
2
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
3
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
4
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
6
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+
11
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+
15
+ import { renderHook } from '@testing-library/react-hooks';
16
+ import useFallbackImage from './useFallbackImage';
17
+ var defaultProps = {
18
+ src: 'test-src',
19
+ fallbackImage: 'test-fallback-src',
20
+ onImageLoad: jest.fn(),
21
+ onImageError: jest.fn(),
22
+ fallbackTimeout: 5,
23
+ onFallbackTimeout: jest.fn()
24
+ };
25
+ test('should return node if all props are correct ', function () {
26
+ var _renderHook = renderHook(function () {
27
+ return useFallbackImage(defaultProps);
28
+ }),
29
+ current = _renderHook.result.current;
30
+
31
+ expect(current).toBeInstanceOf(HTMLImageElement);
32
+ });
33
+ test('should not trigger onImageLoad if no fallback passed', function () {
34
+ renderHook(function () {
35
+ return useFallbackImage(_objectSpread(_objectSpread({}, defaultProps), {}, {
36
+ fallbackImage: null
37
+ }));
38
+ });
39
+ expect(defaultProps.onImageLoad).not.toHaveBeenCalled();
40
+ });
41
+ test('should not trigger onImageLoad if component unmounted', function () {
42
+ var _renderHook2 = renderHook(function () {
43
+ return useFallbackImage(_objectSpread(_objectSpread({}, defaultProps), {}, {
44
+ fallbackImage: null
45
+ }));
46
+ }),
47
+ unmount = _renderHook2.unmount;
48
+
49
+ unmount();
50
+ expect(defaultProps.onImageLoad).not.toHaveBeenCalled();
51
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "1.8.0-alpha.0",
3
+ "version": "1.8.0-alpha.1",
4
4
  "description": "PingUX themeable React component library",
5
5
  "author": "ux-development@pingidentity.com",
6
6
  "license": "Apache-2.0",
@@ -136,6 +136,7 @@
136
136
  "mdi-react": "^7.4.0",
137
137
  "moment": "^2.29.1",
138
138
  "prism-react-renderer": "1.2.1",
139
+ "prismjs": "^1.27.0",
139
140
  "prop-types": "^15.7.2",
140
141
  "react-calendar": "^3.4.0",
141
142
  "react-color": "^2.19.3",