@@ -209,4 +209,163 @@ string hiddenPanelSelector
209
209
await Expect ( selectedPanel ) . ToBeVisibleAsync ( ) ;
210
210
await Expect ( hiddenPanel ) . ToBeHiddenAsync ( ) ;
211
211
}
212
+
213
+ [ Test ]
214
+ [ TestCase (
215
+ "fluent-tab#system-message-tab" ,
216
+ "fluent-tab-panel#system-message-tab-panel" ,
217
+ "div#system-message-tab-component"
218
+ ) ]
219
+ public async Task Given_ConfigTab_When_Selected_Then_Tab_Component_Should_Be_Displayed (
220
+ string selectedTabSelector ,
221
+ string selectedPanelSelector ,
222
+ string componenetSelector
223
+ )
224
+ {
225
+ // Arrange
226
+ var selectedTab = Page . Locator ( selectedTabSelector ) ;
227
+ var selectedPanel = Page . Locator ( selectedPanelSelector ) ;
228
+ var component = Page . Locator ( componenetSelector ) ;
229
+
230
+ // Act
231
+ await selectedTab . ClickAsync ( ) ;
232
+
233
+ // Assert
234
+ await Expect ( selectedPanel ) . ToBeVisibleAsync ( ) ;
235
+ await Expect ( component ) . ToBeVisibleAsync ( ) ;
236
+ }
237
+
238
+ [ Test ]
239
+ [ TestCase (
240
+ "fluent-tab#system-message-tab" ,
241
+ "fluent-text-area#system-message-tab-textarea" ,
242
+ "You are an AI assistant that helps people find information."
243
+ ) ]
244
+ public async Task Given_ConfigTab_When_Selected_Then_Tab_Component_Should_Have_Default_Value (
245
+ string selectedTabSelector ,
246
+ string componentSelector ,
247
+ string expectedValue
248
+ )
249
+ {
250
+ // Arrange
251
+ var selectedTab = Page . Locator ( selectedTabSelector ) ;
252
+
253
+ // Act
254
+ await selectedTab . ClickAsync ( ) ;
255
+ var actualValue = await Page . Locator ( componentSelector ) . GetAttributeAsync ( "value" ) ;
256
+
257
+ // Assert
258
+ actualValue . Should ( ) . Be ( expectedValue ) ;
259
+ }
260
+
261
+ [ Test ]
262
+ public async Task Given_SystemMessageTab_Buttons_When_TextArea_Value_Changed_Then_All_Buttons_Should_Be_Enabled ( )
263
+ {
264
+ // Arrange
265
+ var systemMessageTab = Page . Locator ( "fluent-tab#system-message-tab" ) ;
266
+ var systemMessageTextAreaControl = Page . Locator ( "fluent-text-area#system-message-tab-textarea textarea" ) ;
267
+ var applyButton = Page . Locator ( "fluent-button#system-message-tab-apply-button" ) ;
268
+ var resetButton = Page . Locator ( "fluent-button#system-message-tab-reset-button" ) ;
269
+
270
+ // Act
271
+ await systemMessageTab . ClickAsync ( ) ;
272
+ await systemMessageTextAreaControl . FillAsync ( "New system message" ) ;
273
+ await Task . Delay ( 1000 ) ;
274
+
275
+ var isApplyButtonEnabled = await applyButton . GetAttributeAsync ( "disabled" ) ;
276
+ var isResetButtonEnabled = await resetButton . GetAttributeAsync ( "disabled" ) ;
277
+
278
+ // Assert
279
+ isApplyButtonEnabled . Should ( ) . BeNull ( ) ;
280
+ isResetButtonEnabled . Should ( ) . BeNull ( ) ;
281
+ }
282
+
283
+ [ Test ]
284
+ [ TestCase ( "1 New system message 1" ) ]
285
+ [ TestCase ( "2 New system message 2" ) ]
286
+ public async Task Given_SystemMessageTab_ApplyButton_When_Clicked_Then_Changed_TextArea_Value_Should_Be_Applied_As_SystemMessage_And_ApplyButton_Should_Be_Disabled_And_ResetButton_Should_Be_Enabled (
287
+ string expectedValue
288
+ )
289
+ {
290
+ // Arrange
291
+ var systemMessageTab = Page . Locator ( "fluent-tab#system-message-tab" ) ;
292
+ var systemMessageTextArea = Page . Locator ( "fluent-text-area#system-message-tab-textarea" ) ;
293
+ var systemMessageTextAreaControl = Page . Locator ( "fluent-text-area#system-message-tab-textarea textarea" ) ;
294
+ var applyButton = Page . Locator ( "fluent-button#system-message-tab-apply-button" ) ;
295
+ var resetButton = Page . Locator ( "fluent-button#system-message-tab-reset-button" ) ;
296
+
297
+ // Act
298
+ await systemMessageTab . ClickAsync ( ) ;
299
+ await systemMessageTextAreaControl . FillAsync ( expectedValue ) ;
300
+ await applyButton . ClickAsync ( new ( ) { Delay = 500 } ) ;
301
+ await Task . Delay ( 1000 ) ;
302
+
303
+ var actualValue = await systemMessageTextArea . GetAttributeAsync ( "value" ) ;
304
+ var isApplyButtonEnabled = await applyButton . GetAttributeAsync ( "disabled" ) ;
305
+ var isResetButtonEnabled = await resetButton . GetAttributeAsync ( "disabled" ) ;
306
+
307
+ // Assert
308
+ actualValue . Should ( ) . Be ( expectedValue ) ;
309
+ isApplyButtonEnabled . Should ( ) . NotBeNull ( ) ;
310
+ isResetButtonEnabled . Should ( ) . BeNull ( ) ;
311
+ }
312
+
313
+ [ Test ]
314
+ [ TestCase ( "You are an AI assistant that helps people find information." ) ]
315
+ public async Task Given_SystemMessageTab_ApplyButton_When_Clicked_Then_Default_TextArea_Value_Should_Be_Applied_As_SystemMessage_And_All_Buttons_Should_Be_Disabled (
316
+ string expectedValue
317
+ )
318
+ {
319
+ // Arrange
320
+ var systemMessageTab = Page . Locator ( "fluent-tab#system-message-tab" ) ;
321
+ var systemMessageTextArea = Page . Locator ( "fluent-text-area#system-message-tab-textarea" ) ;
322
+ var systemMessageTextAreaControl = Page . Locator ( "fluent-text-area#system-message-tab-textarea textarea" ) ;
323
+ var applyButton = Page . Locator ( "fluent-button#system-message-tab-apply-button" ) ;
324
+ var resetButton = Page . Locator ( "fluent-button#system-message-tab-reset-button" ) ;
325
+
326
+ // Act
327
+ await systemMessageTab . ClickAsync ( ) ;
328
+ await systemMessageTextAreaControl . FillAsync ( expectedValue ) ;
329
+ await applyButton . ClickAsync ( new ( ) { Delay = 500 } ) ;
330
+ await Task . Delay ( 1000 ) ;
331
+
332
+ var actualValue = await systemMessageTextArea . GetAttributeAsync ( "value" ) ;
333
+ var isApplyButtonEnabled = await applyButton . GetAttributeAsync ( "disabled" ) ;
334
+ var isResetButtonEnabled = await resetButton . GetAttributeAsync ( "disabled" ) ;
335
+
336
+ // Assert
337
+ actualValue . Should ( ) . Be ( expectedValue ) ;
338
+ isApplyButtonEnabled . Should ( ) . NotBeNull ( ) ;
339
+ isResetButtonEnabled . Should ( ) . NotBeNull ( ) ;
340
+ }
341
+
342
+ [ Test ]
343
+ [ TestCase ( "You are an AI assistant that helps people find information." ) ]
344
+ public async Task Given_SystemMessageTab_ResetButton_When_Clicked_Then_SystemMessage_And_TextArea_Should_Have_Default_Value_And_All_Buttons_Should_Be_Disabled (
345
+ string expectedValue
346
+ )
347
+ {
348
+ // Arrange
349
+ var systemMessageTab = Page . Locator ( "fluent-tab#system-message-tab" ) ;
350
+ var systemMessageTextArea = Page . Locator ( "fluent-text-area#system-message-tab-textarea" ) ;
351
+ var systemMessageTextAreaControl = Page . Locator ( "fluent-text-area#system-message-tab-textarea textarea" ) ;
352
+ var applyButton = Page . Locator ( "fluent-button#system-message-tab-apply-button" ) ;
353
+ var resetButton = Page . Locator ( "fluent-button#system-message-tab-reset-button" ) ;
354
+
355
+ // Act
356
+ await systemMessageTab . ClickAsync ( ) ;
357
+ await systemMessageTextAreaControl . FillAsync ( "New system message" ) ;
358
+ await applyButton . ClickAsync ( new ( ) { Delay = 500 } ) ;
359
+ await resetButton . ClickAsync ( new ( ) { Delay = 500 } ) ;
360
+ await Task . Delay ( 1000 ) ;
361
+
362
+ var actualValue = await systemMessageTextArea . GetAttributeAsync ( "value" ) ;
363
+ var isApplyButtonEnabled = await applyButton . GetAttributeAsync ( "disabled" ) ;
364
+ var isResetButtonEnabled = await resetButton . GetAttributeAsync ( "disabled" ) ;
365
+
366
+ // Assert
367
+ actualValue . Should ( ) . Be ( expectedValue ) ;
368
+ isApplyButtonEnabled . Should ( ) . NotBeNull ( ) ;
369
+ isResetButtonEnabled . Should ( ) . NotBeNull ( ) ;
370
+ }
212
371
}
0 commit comments