Skip to content

Commit 17fbf32

Browse files
committed
Add UI tests
1 parent cde289a commit 17fbf32

File tree

1 file changed

+192
-6
lines changed

1 file changed

+192
-6
lines changed

test/AzureOpenAIProxy.PlaygroundApp.Tests/Pages/PlaygroundPageTests.cs

Lines changed: 192 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)