1- import { createPassThroughPropsTest } from '@shared/tests/utils' ;
21import { fireEvent , render , screen } from '@shared/tests' ;
2+ import { createPassThroughPropsTest } from '@shared/tests/utils' ;
3+ import '@ui5/webcomponents-icons/dist/icons/add' ;
4+ import { Icon } from '@ui5/webcomponents-react/lib/Icon' ;
35import { MessageBox } from '@ui5/webcomponents-react/lib/MessageBox' ;
46import { MessageBoxActions } from '@ui5/webcomponents-react/lib/MessageBoxActions' ;
57import { MessageBoxTypes } from '@ui5/webcomponents-react/lib/MessageBoxTypes' ;
68import React from 'react' ;
79
810describe ( 'MessageBox' , ( ) => {
9- test ( 'Confirm - OK' , ( ) => {
11+ test . each ( [
12+ [ MessageBoxTypes . CONFIRM , MessageBoxActions . OK ] ,
13+ [ MessageBoxTypes . SUCCESS , MessageBoxActions . OK ] ,
14+ [ MessageBoxTypes . WARNING , MessageBoxActions . OK ] ,
15+ [ MessageBoxTypes . ERROR , MessageBoxActions . CLOSE ] ,
16+ [ MessageBoxTypes . INFORMATION , MessageBoxActions . OK ] ,
17+ [ MessageBoxTypes . HIGHLIGHT , MessageBoxActions . OK ]
18+ ] ) ( '%s' , ( type , buttonText ) => {
1019 const callback = jest . fn ( ) ;
11- const { asFragment } = render (
12- < MessageBox type = { MessageBoxTypes . CONFIRM } open onClose = { callback } >
13- Confirm
20+ const { asFragment, unmount } = render (
21+ < MessageBox type = { type } open onClose = { callback } >
22+ My Message Box Content
1423 </ MessageBox >
1524 ) ;
1625
1726 expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
1827
19- fireEvent . click ( screen . getByText ( 'OK' ) ) ;
28+ fireEvent . click ( screen . getByText ( buttonText ) ) ;
2029
21- expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . OK ) ;
30+ expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( buttonText ) ;
31+ unmount ( ) ;
2232 } ) ;
2333
2434 test ( 'Confirm - Cancel' , ( ) => {
@@ -35,58 +45,6 @@ describe('MessageBox', () => {
3545 expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . CANCEL ) ;
3646 } ) ;
3747
38- test ( 'Success' , ( ) => {
39- const callback = jest . fn ( ) ;
40- const { asFragment } = render (
41- < MessageBox type = { MessageBoxTypes . SUCCESS } open onClose = { callback } >
42- Success
43- </ MessageBox >
44- ) ;
45- expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
46-
47- fireEvent . click ( screen . getByText ( 'OK' ) ) ;
48- expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . OK ) ;
49- } ) ;
50-
51- test ( 'Warning' , ( ) => {
52- const callback = jest . fn ( ) ;
53- const { asFragment } = render (
54- < MessageBox type = { MessageBoxTypes . WARNING } open onClose = { callback } >
55- Warning
56- </ MessageBox >
57- ) ;
58- expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
59-
60- fireEvent . click ( screen . getByText ( 'OK' ) ) ;
61- expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . OK ) ;
62- } ) ;
63-
64- test ( 'Error' , ( ) => {
65- const callback = jest . fn ( ) ;
66- const { asFragment } = render (
67- < MessageBox type = { MessageBoxTypes . ERROR } open onClose = { callback } >
68- Error
69- </ MessageBox >
70- ) ;
71- expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
72-
73- fireEvent . click ( screen . getByText ( 'Close' ) ) ;
74- expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . CLOSE ) ;
75- } ) ;
76-
77- test ( 'Information' , ( ) => {
78- const callback = jest . fn ( ) ;
79- const { asFragment } = render (
80- < MessageBox type = { MessageBoxTypes . INFORMATION } open onClose = { callback } >
81- Information
82- </ MessageBox >
83- ) ;
84- expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
85-
86- fireEvent . click ( screen . getByText ( 'OK' ) ) ;
87- expect ( callback . mock . calls [ 0 ] [ 0 ] . detail . action ) . toEqual ( MessageBoxActions . OK ) ;
88- } ) ;
89-
9048 test ( 'Show' , ( ) => {
9149 const callback = jest . fn ( ) ;
9250 const { asFragment } = render (
@@ -107,7 +65,13 @@ describe('MessageBox', () => {
10765 test ( 'Success w/ custom title' , ( ) => {
10866 const callback = jest . fn ( ) ;
10967 const { asFragment } = render (
110- < MessageBox type = { MessageBoxTypes . SUCCESS } open onClose = { callback } title = "Custom Success" >
68+ < MessageBox
69+ type = { MessageBoxTypes . SUCCESS }
70+ open
71+ onClose = { callback }
72+ title = "Custom Success"
73+ icon = { < Icon name = "add" /> }
74+ >
11175 Custom Success
11276 </ MessageBox >
11377 ) ;
@@ -162,5 +126,16 @@ describe('MessageBox', () => {
162126 expect ( onClose . mock . calls [ 1 ] [ 0 ] . detail . action ) . toEqual ( 'My Custom Action' ) ;
163127 } ) ;
164128
129+ test ( "Don't crash on unknown type" , ( ) => {
130+ const callback = jest . fn ( ) ;
131+ const { asFragment } = render (
132+ < MessageBox open onClose = { callback } type = "FOO_BAR" >
133+ Unknown Type!
134+ </ MessageBox >
135+ ) ;
136+
137+ expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
138+ } ) ;
139+
165140 createPassThroughPropsTest ( MessageBox ) ;
166141} ) ;
0 commit comments