@@ -209,4 +209,163 @@ string hiddenPanelSelector
209209 await Expect ( selectedPanel ) . ToBeVisibleAsync ( ) ;
210210 await Expect ( hiddenPanel ) . ToBeHiddenAsync ( ) ;
211211 }
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+ }
212371}
0 commit comments