import { expect, test } from '../fixtures'; import { ChatPage } from '../pages/chat'; import { ArtifactPage } from '../pages/artifact'; test.describe('Artifacts activity', () => { let chatPage: ChatPage; let artifactPage: ArtifactPage; test.beforeEach(async ({ page }) => { chatPage = new ChatPage(page); artifactPage = new ArtifactPage(page); await chatPage.createNewChat(); }); test('Create a text artifact', async () => { test.fixme(); await chatPage.createNewChat(); await chatPage.sendUserMessage( 'Help me write an essay about Silicon Valley', ); await artifactPage.isGenerationComplete(); expect(artifactPage.artifact).toBeVisible(); const assistantMessage = await chatPage.getRecentAssistantMessage(); expect(assistantMessage.content).toBe( 'A document was created and is now visible to the user.', ); await chatPage.hasChatIdInUrl(); }); test('Toggle artifact visibility', async () => { test.fixme(); await chatPage.createNewChat(); await chatPage.sendUserMessage( 'Help me write an essay about Silicon Valley', ); await artifactPage.isGenerationComplete(); expect(artifactPage.artifact).toBeVisible(); const assistantMessage = await chatPage.getRecentAssistantMessage(); expect(assistantMessage.content).toBe( 'A document was created and is now visible to the user.', ); await artifactPage.closeArtifact(); await chatPage.isElementNotVisible('artifact'); }); test('Send follow up message after generation', async () => { test.fixme(); await chatPage.createNewChat(); await chatPage.sendUserMessage( 'Help me write an essay about Silicon Valley', ); await artifactPage.isGenerationComplete(); expect(artifactPage.artifact).toBeVisible(); const assistantMessage = await artifactPage.getRecentAssistantMessage(); expect(assistantMessage.content).toBe( 'A document was created and is now visible to the user.', ); await artifactPage.sendUserMessage('Thanks!'); await artifactPage.isGenerationComplete(); const secondAssistantMessage = await chatPage.getRecentAssistantMessage(); expect(secondAssistantMessage.content).toBe("You're welcome!"); }); });