@@ -14,6 +14,7 @@ import { act } from 'react-dom/test-utils';
14
14
const headerTitleIdentifier = '[data-test-subj="editDataSourceTitle"]' ;
15
15
const deleteIconIdentifier = '[data-test-subj="editDatasourceDeleteIcon"]' ;
16
16
const confirmModalIdentifier = '[data-test-subj="editDatasourceDeleteConfirmModal"]' ;
17
+ const setDefaultButtonIdentifier = '[data-test-subj="editSetDefaultDataSource"]' ;
17
18
18
19
describe ( 'Datasource Management: Edit Datasource Header' , ( ) => {
19
20
const mockedContext = mockManagementPlugin . createDataSourceManagementContext ( ) ;
@@ -31,6 +32,8 @@ describe('Datasource Management: Edit Datasource Header', () => {
31
32
onClickDeleteIcon = { mockFn }
32
33
onClickTestConnection = { mockFn }
33
34
dataSourceName = { dataSourceName }
35
+ onClickSetDefault = { mockFn }
36
+ isDefault = { false }
34
37
/>
35
38
) ,
36
39
{
@@ -82,6 +85,8 @@ describe('Datasource Management: Edit Datasource Header', () => {
82
85
onClickDeleteIcon = { mockFn }
83
86
onClickTestConnection = { mockFn }
84
87
dataSourceName = { dataSourceName }
88
+ onClickSetDefault = { mockFn }
89
+ isDefault = { false }
85
90
/>
86
91
) ,
87
92
{
@@ -97,4 +102,76 @@ describe('Datasource Management: Edit Datasource Header', () => {
97
102
expect ( component . find ( deleteIconIdentifier ) . exists ( ) ) . toBe ( false ) ;
98
103
} ) ;
99
104
} ) ;
105
+ describe ( 'should render default icon as "Set as default" when isDefaultDataSourceState is false' , ( ) => {
106
+ const onClickSetDefault = jest . fn ( ) ;
107
+ const isDefaultDataSourceState = false ;
108
+ beforeEach ( ( ) => {
109
+ component = mount (
110
+ wrapWithIntl (
111
+ < Header
112
+ isFormValid = { true }
113
+ showDeleteIcon = { true }
114
+ onClickDeleteIcon = { mockFn }
115
+ onClickTestConnection = { mockFn }
116
+ dataSourceName = { dataSourceName }
117
+ onClickSetDefault = { onClickSetDefault }
118
+ isDefault = { isDefaultDataSourceState }
119
+ />
120
+ ) ,
121
+ {
122
+ wrappingComponent : OpenSearchDashboardsContextProvider ,
123
+ wrappingComponentProps : {
124
+ services : mockedContext ,
125
+ } ,
126
+ }
127
+ ) ;
128
+ } ) ;
129
+
130
+ test ( 'should render normally' , ( ) => {
131
+ expect ( component . find ( setDefaultButtonIdentifier ) . exists ( ) ) . toBe ( true ) ;
132
+ } ) ;
133
+ test ( 'default button should show as "Set as default" and should be clickable' , ( ) => {
134
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . text ( ) ) . toBe ( 'Set as default' ) ;
135
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . prop ( 'disabled' ) ) . toBe ( false ) ;
136
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . prop ( 'iconType' ) ) . toBe ( 'starEmpty' ) ;
137
+ component . find ( setDefaultButtonIdentifier ) . first ( ) . simulate ( 'click' ) ;
138
+ expect ( onClickSetDefault ) . toHaveBeenCalled ( ) ;
139
+ } ) ;
140
+ } ) ;
141
+ describe ( 'should render default icon as "Default" when isDefaultDataSourceState is true' , ( ) => {
142
+ const onClickSetDefault = jest . fn ( ) ;
143
+ const isDefaultDataSourceState = true ;
144
+ beforeEach ( ( ) => {
145
+ component = mount (
146
+ wrapWithIntl (
147
+ < Header
148
+ isFormValid = { true }
149
+ showDeleteIcon = { true }
150
+ onClickDeleteIcon = { mockFn }
151
+ onClickTestConnection = { mockFn }
152
+ dataSourceName = { dataSourceName }
153
+ onClickSetDefault = { onClickSetDefault }
154
+ isDefault = { isDefaultDataSourceState }
155
+ />
156
+ ) ,
157
+ {
158
+ wrappingComponent : OpenSearchDashboardsContextProvider ,
159
+ wrappingComponentProps : {
160
+ services : mockedContext ,
161
+ } ,
162
+ }
163
+ ) ;
164
+ } ) ;
165
+
166
+ test ( 'should render normally' , ( ) => {
167
+ expect ( component . find ( setDefaultButtonIdentifier ) . exists ( ) ) . toBe ( true ) ;
168
+ } ) ;
169
+ test ( 'default button should show as "Default" and should be disabled.' , ( ) => {
170
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . text ( ) ) . toBe ( 'Default' ) ;
171
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . prop ( 'disabled' ) ) . toBe ( true ) ;
172
+ expect ( component . find ( setDefaultButtonIdentifier ) . first ( ) . prop ( 'iconType' ) ) . toBe (
173
+ 'starFilled'
174
+ ) ;
175
+ } ) ;
176
+ } ) ;
100
177
} ) ;
0 commit comments