mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-12 14:40:22 +08:00
ee899a267b
#### PR Dependency Tree * **PR #15448** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added workspace artifact upload, browsing, removal, deduplication, and library ownership support. * Copilot now supports scoped document and artifact search, canvas reading, live editor context, and frontend tools. * Added scope and focus selectors with source-resolution receipts in chat. * Added embedding health, progress, synchronization, and retrieval capabilities. * Added BYOK policy visibility, provider restrictions, endpoint dialect selection, and validation. * Added delegated editor interactions and userdata document authorization. * **Bug Fixes** * Improved attachment handling, cancellation, access control, retrieval fallbacks, workspace synchronization, and configuration validation. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
90 lines
2.7 KiB
TypeScript
90 lines
2.7 KiB
TypeScript
import { focusDocTitle } from '@affine-test/kit/utils/editor';
|
|
import {
|
|
clickNewPageButton,
|
|
waitForEditorLoad,
|
|
} from '@affine-test/kit/utils/page-logic';
|
|
import { expect } from '@playwright/test';
|
|
|
|
import { test } from '../base/base-test';
|
|
|
|
test.describe('AIChatWith/Doc', () => {
|
|
test.beforeEach(async ({ loggedInPage: page, utils }) => {
|
|
await utils.testUtils.setupTestEnvironment(page);
|
|
await utils.chatPanel.openChatPanel(page);
|
|
});
|
|
|
|
test('support chat with specified doc', async ({
|
|
loggedInPage: page,
|
|
utils,
|
|
}) => {
|
|
// Initialize the doc
|
|
await focusDocTitle(page);
|
|
await page.keyboard.insertText('Test Doc');
|
|
await page.keyboard.press('Enter');
|
|
await page.keyboard.insertText('DocEEee is a cute cat');
|
|
await utils.editor.waitForCurrentDocSynced(page);
|
|
|
|
await utils.chatPanel.chatWithDoc(page, 'Test Doc');
|
|
|
|
await utils.chatPanel.makeChat(page, 'What is DocEEee?');
|
|
await utils.chatPanel.waitForHistory(page, [
|
|
{
|
|
role: 'user',
|
|
content: 'What is DocEEee?',
|
|
},
|
|
{
|
|
role: 'assistant',
|
|
status: 'success',
|
|
},
|
|
]);
|
|
|
|
await expect(async () => {
|
|
const { content } = await utils.chatPanel.getLatestAssistantMessage(page);
|
|
expect(content).toMatch(/DocEEee/);
|
|
}).toPass({ timeout: 10000 });
|
|
});
|
|
|
|
// FIXME: This test is flaky, need to fix it.
|
|
test.skip('support chat with specified docs', async ({
|
|
loggedInPage: page,
|
|
utils,
|
|
}) => {
|
|
// Initialize the doc 1
|
|
await focusDocTitle(page);
|
|
await page.keyboard.insertText('Test Doc1');
|
|
await page.keyboard.press('Enter');
|
|
await page.keyboard.insertText('DocEEee is a cute cat');
|
|
await utils.editor.waitForCurrentDocSynced(page);
|
|
|
|
// Initialize the doc 2
|
|
await clickNewPageButton(page);
|
|
await waitForEditorLoad(page);
|
|
await focusDocTitle(page);
|
|
await page.keyboard.insertText('Test Doc2');
|
|
await page.keyboard.press('Enter');
|
|
await page.keyboard.insertText('DocFFff is a cute dog');
|
|
await utils.editor.waitForCurrentDocSynced(page);
|
|
|
|
await utils.chatPanel.chatWithDoc(page, 'Test Doc1');
|
|
await utils.chatPanel.chatWithDoc(page, 'Test Doc2');
|
|
|
|
await utils.chatPanel.makeChat(page, 'What is DocEEee? What is DocFFff?');
|
|
await utils.chatPanel.waitForHistory(page, [
|
|
{
|
|
role: 'user',
|
|
content: 'What is DocEEee? What is DocFFff?',
|
|
},
|
|
{
|
|
role: 'assistant',
|
|
status: 'success',
|
|
},
|
|
]);
|
|
|
|
await expect(async () => {
|
|
const { content } = await utils.chatPanel.getLatestAssistantMessage(page);
|
|
expect(content).toMatch(/DocEEee/);
|
|
expect(content).toMatch(/DocFFff/);
|
|
}).toPass({ timeout: 10000 });
|
|
});
|
|
});
|