@@ -51,7 +51,8 @@ public async Task Given_Page_When_Endpoint_Invoked_Then_It_Should_Show_Panels(st
5151 public async Task Given_ConfigTab_When_Endpoint_Invoked_Then_ConfigTab_Should_Be_Displayed ( )
5252 {
5353 // Act
54- var configTab = Page . Locator ( "fluent-tabs#config-tab" ) ;
54+ var configTab = Page . Locator ( "div.config-grid" )
55+ . Locator ( "fluent-tabs#config-tab" ) ;
5556
5657 // Assert
5758 await Expect ( configTab ) . ToBeVisibleAsync ( ) ;
@@ -61,8 +62,12 @@ public async Task Given_ConfigTab_When_Endpoint_Invoked_Then_ConfigTab_Should_Be
6162 public async Task Given_ConfigTab_When_Endpoint_Invoked_Then_Id_Should_Be_System_Message_Tab ( )
6263 {
6364 // Act
64- var systemMessagePanel = Page . Locator ( "fluent-tab-panel#system-message-tab-panel" ) ;
65- var parameterPanel = Page . Locator ( "fluent-tab-panel#parameters-tab-panel" ) ;
65+ var systemMessagePanel = Page . Locator ( "div.config-grid" )
66+ . Locator ( "fluent-tabs#config-tab" )
67+ . Locator ( "fluent-tab-panel#system-message-tab-panel" ) ;
68+ var parameterPanel = Page . Locator ( "div.config-grid" )
69+ . Locator ( "fluent-tabs#config-tab" )
70+ . Locator ( "fluent-tab-panel#parameters-tab-panel" ) ;
6671
6772 // Assert
6873 await Expect ( systemMessagePanel ) . ToBeVisibleAsync ( ) ;
@@ -87,9 +92,15 @@ string hiddenPanelSelector
8792 )
8893 {
8994 // Arrange
90- var selectedTab = Page . Locator ( selectedTabSelector ) ;
91- var selectedPanel = Page . Locator ( selectedPanelSelector ) ;
92- var hiddenPanel = Page . Locator ( hiddenPanelSelector ) ;
95+ var selectedTab = Page . Locator ( "div.config-grid" )
96+ . Locator ( "fluent-tabs#config-tab" )
97+ . Locator ( selectedTabSelector ) ;
98+ var selectedPanel = Page . Locator ( "div.config-grid" )
99+ . Locator ( "fluent-tabs#config-tab" )
100+ . Locator ( selectedPanelSelector ) ;
101+ var hiddenPanel = Page . Locator ( "div.config-grid" )
102+ . Locator ( "fluent-tabs#config-tab" )
103+ . Locator ( hiddenPanelSelector ) ;
93104
94105 // Act
95106 await selectedTab . ClickAsync ( ) ;
@@ -99,6 +110,181 @@ string hiddenPanelSelector
99110 await Expect ( hiddenPanel ) . ToBeHiddenAsync ( ) ;
100111 }
101112
113+ [ Test ]
114+ public async Task Given_ChatGrid_When_Endpoint_Invoked_Then_ChatWindow_Should_Be_Displayed ( )
115+ {
116+ // Act
117+ var element = Page . Locator ( "div.chat-grid" )
118+ . Locator ( "div#chat-window" ) ;
119+
120+ // Assert
121+ await Expect ( element ) . ToBeVisibleAsync ( ) ;
122+ }
123+
124+ [ Test ]
125+ public async Task Given_ChatGrid_When_Endpoint_Invoked_Then_ChatHistory_Should_Be_Empty ( )
126+ {
127+ // Act
128+ var element = Page . Locator ( "div.chat-grid" )
129+ . Locator ( "div#chat-window" )
130+ . Locator ( "div#chat-history" ) ;
131+
132+ var text = await element . TextContentAsync ( ) ;
133+
134+ // Assert
135+ text . Should ( ) . BeNullOrEmpty ( ) ;
136+ }
137+
138+ [ Test ]
139+ public async Task Given_ChatGrid_When_Endpoint_Invoked_Then_ChatPrompt_Should_Be_Displayed ( )
140+ {
141+ // Act
142+ var element = Page . Locator ( "div.chat-grid" )
143+ . Locator ( "div#chat-window" )
144+ . Locator ( "div#chat-prompt" ) ;
145+
146+ // Assert
147+ await Expect ( element ) . ToBeVisibleAsync ( ) ;
148+ }
149+
150+ [ Test ]
151+ public async Task Given_ChatGrid_When_Endpoint_Invoked_Then_ChatPromptArea_Should_Be_Displayed ( )
152+ {
153+ // Act
154+ var element = Page . Locator ( "div.chat-grid" )
155+ . Locator ( "div#chat-window" )
156+ . Locator ( "div#chat-prompt" )
157+ . Locator ( "fluent-text-area#prompt" ) ;
158+
159+ // Assert
160+ await Expect ( element ) . ToBeVisibleAsync ( ) ;
161+ }
162+
163+ [ Test ]
164+ [ TestCase ( "button-clear" ) ]
165+ [ TestCase ( "button-send" ) ]
166+ public async Task Given_ChatGrid_When_Endpoint_Invoked_Then_ChatPromptButton_Should_Be_Displayed ( string id )
167+ {
168+ // Act
169+ var element = Page . Locator ( "div.chat-grid" )
170+ . Locator ( "div#chat-window" )
171+ . Locator ( "div#chat-prompt" )
172+ . Locator ( $ "div > fluent-button#{ id } ") ;
173+
174+ // Assert
175+ await Expect ( element ) . ToBeVisibleAsync ( ) ;
176+ }
177+
178+ [ Test ]
179+ [ TestCase ( "abcde" ) ]
180+ public async Task Given_ChatPrompt_When_Send_Clicked_Then_ChatHistoryMessage_Should_Be_Displayed_OnTheRight ( string text )
181+ {
182+ // Arrange
183+ var history = Page . Locator ( "div.chat-grid" )
184+ . Locator ( "div#chat-window" )
185+ . Locator ( "div#chat-history" ) ;
186+ var prompt = Page . Locator ( "div.chat-grid" )
187+ . Locator ( "div#chat-window" )
188+ . Locator ( "div#chat-prompt" )
189+ . Locator ( "fluent-text-area#prompt" ) ;
190+ var send = Page . Locator ( "div.chat-grid" )
191+ . Locator ( "div#chat-window" )
192+ . Locator ( "div#chat-prompt" )
193+ . Locator ( "div > fluent-button#button-send" ) ;
194+
195+ // Act
196+ await prompt . Locator ( "textarea" ) . FillAsync ( text ) ;
197+ await send . ClickAsync ( ) ;
198+
199+ var style = await history . Locator ( "div#message-00" ) . GetAttributeAsync ( "style" ) ;
200+
201+ // Assert
202+ style . Should ( ) . ContainAll ( "justify-content:" , "end" ) ;
203+ }
204+
205+ [ Test ]
206+ [ TestCase ( "abcde" ) ]
207+ public async Task Given_ChatPrompt_When_Send_Clicked_Then_ChatHistoryMessage_Should_Be_Displayed ( string text )
208+ {
209+ // Arrange
210+ var history = Page . Locator ( "div.chat-grid" )
211+ . Locator ( "div#chat-window" )
212+ . Locator ( "div#chat-history" ) ;
213+ var prompt = Page . Locator ( "div.chat-grid" )
214+ . Locator ( "div#chat-window" )
215+ . Locator ( "div#chat-prompt" )
216+ . Locator ( "fluent-text-area#prompt" ) ;
217+ var send = Page . Locator ( "div.chat-grid" )
218+ . Locator ( "div#chat-window" )
219+ . Locator ( "div#chat-prompt" )
220+ . Locator ( "div > fluent-button#button-send" ) ;
221+
222+ // Act
223+ await prompt . Locator ( "textarea" ) . FillAsync ( text ) ;
224+ await send . ClickAsync ( ) ;
225+
226+ var item = await history . Locator ( "div#message-00 p" ) . TextContentAsync ( ) ;
227+
228+ // Assert
229+ item . Should ( ) . Be ( text ) ;
230+ }
231+
232+ [ Test ]
233+ [ TestCase ( "abcde" ) ]
234+ public async Task Given_ChatPrompt_When_Send_Clicked_Then_ChatPromptArea_Should_Be_Empty ( string text )
235+ {
236+ // Arrange
237+ var prompt = Page . Locator ( "div.chat-grid" )
238+ . Locator ( "div#chat-window" )
239+ . Locator ( "div#chat-prompt" )
240+ . Locator ( "fluent-text-area#prompt" ) ;
241+ var send = Page . Locator ( "div.chat-grid" )
242+ . Locator ( "div#chat-window" )
243+ . Locator ( "div#chat-prompt" )
244+ . Locator ( "div > fluent-button#button-send" ) ;
245+
246+ // Act
247+ await prompt . Locator ( "textarea" ) . FillAsync ( text ) ;
248+ await send . ClickAsync ( ) ;
249+
250+ var item = await prompt . Locator ( "textarea" ) . TextContentAsync ( ) ;
251+
252+ // Assert
253+ item . Should ( ) . BeNullOrEmpty ( ) ;
254+ }
255+
256+ [ Test ]
257+ [ TestCase ( "abcde" ) ]
258+ public async Task Given_ChatPrompt_When_Clear_Clicked_Then_ChatHistoryMessage_Should_Be_Cleared ( string text )
259+ {
260+ // Arrange
261+ var history = Page . Locator ( "div.chat-grid" )
262+ . Locator ( "div#chat-window" )
263+ . Locator ( "div#chat-history" ) ;
264+ var prompt = Page . Locator ( "div.chat-grid" )
265+ . Locator ( "div#chat-window" )
266+ . Locator ( "div#chat-prompt" )
267+ . Locator ( "fluent-text-area#prompt" ) ;
268+ var send = Page . Locator ( "div.chat-grid" )
269+ . Locator ( "div#chat-window" )
270+ . Locator ( "div#chat-prompt" )
271+ . Locator ( "div > fluent-button#button-send" ) ;
272+ var clear = Page . Locator ( "div.chat-grid" )
273+ . Locator ( "div#chat-window" )
274+ . Locator ( "div#chat-prompt" )
275+ . Locator ( "div > fluent-button#button-clear" ) ;
276+
277+ // Act
278+ await prompt . Locator ( "textarea" ) . FillAsync ( text ) ;
279+ await send . ClickAsync ( ) ;
280+ await clear . ClickAsync ( ) ;
281+
282+ var result = await history . TextContentAsync ( ) ;
283+
284+ // Assert
285+ result . Should ( ) . BeNullOrEmpty ( ) ;
286+ }
287+
102288 [ TearDown ]
103289 public async Task CleanUp ( )
104290 {
0 commit comments