Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
54af09a0
Unverified
提交
54af09a0
authored
6月 01, 2025
作者:
Will Chen
提交者:
GitHub
6月 01, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Approve & reject proposal e2e (#298)
上级
8a743ca4
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
118 行增加
和
1 行删除
+118
-1
approve.spec.ts
e2e-tests/approve.spec.ts
+16
-0
write-index.md
e2e-tests/fixtures/write-index.md
+15
-0
test_helper.ts
e2e-tests/helpers/test_helper.ts
+19
-1
reject.spec.ts
e2e-tests/reject.spec.ts
+14
-0
approve.spec.ts_write-to-index-approve-check-preview-1.aria.yml
...e.spec.ts_write-to-index-approve-check-preview-1.aria.yml
+10
-0
approve.spec.ts_write-to-index-approve-check-preview-2.aria.yml
...e.spec.ts_write-to-index-approve-check-preview-2.aria.yml
+14
-0
approve.spec.ts_write-to-index-approve-check-preview-3.aria.yml
...e.spec.ts_write-to-index-approve-check-preview-3.aria.yml
+5
-0
reject.spec.ts_reject-1.aria.yml
e2e-tests/snapshots/reject.spec.ts_reject-1.aria.yml
+10
-0
reject.spec.ts_reject-2.aria.yml
e2e-tests/snapshots/reject.spec.ts_reject-2.aria.yml
+12
-0
ChatInput.tsx
src/components/chat/ChatInput.tsx
+2
-0
PreviewIframe.tsx
src/components/preview_panel/PreviewIframe.tsx
+1
-0
没有找到文件。
e2e-tests/approve.spec.ts
0 → 100644
浏览文件 @
54af09a0
import
{
test
}
from
"./helpers/test_helper"
;
import
{
expect
}
from
"@playwright/test"
;
test
(
"write to index, approve, check preview"
,
async
({
po
})
=>
{
await
po
.
setUp
();
await
po
.
sendPrompt
(
"tc=write-index"
);
await
po
.
snapshotMessages
();
await
po
.
approveProposal
();
// Should be slightly different from above, because it will say "approved"
await
po
.
snapshotMessages
();
// This can be pretty slow because it's waiting for the app to build.
await
expect
(
po
.
getPreviewIframeElement
()).
toBeVisible
({
timeout
:
15
_000
});
await
po
.
snapshotPreview
();
});
e2e-tests/fixtures/write-index.md
0 → 100644
浏览文件 @
54af09a0
OK, I'm going to do some writing now...
<dyad-write
path=
"src/pages/Index.tsx"
description=
"write-description"
>
const Index = () => {
return (
<div>
Testing:write-index!
</div>
);
};
export default Index;
</dyad-write>
And it's done!
e2e-tests/helpers/test_helper.ts
浏览文件 @
54af09a0
...
...
@@ -20,6 +20,23 @@ class PageObject {
await
expect
(
this
.
page
.
getByTestId
(
"messages-list"
)).
toMatchAriaSnapshot
();
}
async
approveProposal
()
{
await
this
.
page
.
getByTestId
(
"approve-proposal-button"
).
click
();
}
async
rejectProposal
()
{
await
this
.
page
.
getByTestId
(
"reject-proposal-button"
).
click
();
}
getPreviewIframeElement
()
{
return
this
.
page
.
getByTestId
(
"preview-iframe-element"
);
}
async
snapshotPreview
()
{
const
iframe
=
this
.
getPreviewIframeElement
();
await
expect
(
iframe
.
contentFrame
().
locator
(
"body"
)).
toMatchAriaSnapshot
();
}
async
snapshotServerDump
()
{
// Get the text content of the messages list
const
messagesListText
=
await
this
.
page
...
...
@@ -199,11 +216,12 @@ export const test = base.extend<{
{
auto
:
true
},
],
attachScreenshotsToReport
:
[
async
({
page
},
use
,
testInfo
)
=>
{
async
({
electronApp
},
use
,
testInfo
)
=>
{
await
use
();
// After the test we can check whether the test passed or failed.
if
(
testInfo
.
status
!==
testInfo
.
expectedStatus
)
{
const
page
=
await
electronApp
.
firstWindow
();
const
screenshot
=
await
page
.
screenshot
();
await
testInfo
.
attach
(
"screenshot"
,
{
body
:
screenshot
,
...
...
e2e-tests/reject.spec.ts
0 → 100644
浏览文件 @
54af09a0
import
{
test
}
from
"./helpers/test_helper"
;
import
{
expect
}
from
"@playwright/test"
;
test
(
"reject"
,
async
({
po
})
=>
{
await
po
.
setUp
();
await
po
.
sendPrompt
(
"tc=write-index"
);
await
po
.
snapshotMessages
();
await
po
.
rejectProposal
();
// Should be slightly different from above, because it will say "rejected"
await
po
.
snapshotMessages
();
await
expect
(
po
.
getPreviewIframeElement
()).
not
.
toBeVisible
();
});
e2e-tests/snapshots/approve.spec.ts_write-to-index-approve-check-preview-1.aria.yml
0 → 100644
浏览文件 @
54af09a0
-
paragraph
:
tc=write-index
-
paragraph
:
OK, I'm going to do some writing now...
-
img
-
text
:
Index.tsx
-
img
-
text
:
"
src/pages/Index.tsx
Summary:
write-description"
-
paragraph
:
And it's done!
-
button "Retry"
:
-
img
\ No newline at end of file
e2e-tests/snapshots/approve.spec.ts_write-to-index-approve-check-preview-2.aria.yml
0 → 100644
浏览文件 @
54af09a0
-
paragraph
:
tc=write-index
-
paragraph
:
OK, I'm going to do some writing now...
-
img
-
text
:
Index.tsx
-
img
-
text
:
"
src/pages/Index.tsx
Summary:
write-description"
-
paragraph
:
And it's done!
-
img
-
text
:
Approved
-
button "Undo"
:
-
img
-
button "Retry"
:
-
img
\ No newline at end of file
e2e-tests/snapshots/approve.spec.ts_write-to-index-approve-check-preview-3.aria.yml
0 → 100644
浏览文件 @
54af09a0
-
region "Notifications (F8)"
:
-
list
-
region "Notifications alt+T"
-
text
:
Testing:write-index!
\ No newline at end of file
e2e-tests/snapshots/reject.spec.ts_reject-1.aria.yml
0 → 100644
浏览文件 @
54af09a0
-
paragraph
:
tc=write-index
-
paragraph
:
OK, I'm going to do some writing now...
-
img
-
text
:
Index.tsx
-
img
-
text
:
"
src/pages/Index.tsx
Summary:
write-description"
-
paragraph
:
And it's done!
-
button "Retry"
:
-
img
\ No newline at end of file
e2e-tests/snapshots/reject.spec.ts_reject-2.aria.yml
0 → 100644
浏览文件 @
54af09a0
-
paragraph
:
tc=write-index
-
paragraph
:
OK, I'm going to do some writing now...
-
img
-
text
:
Index.tsx
-
img
-
text
:
"
src/pages/Index.tsx
Summary:
write-description"
-
paragraph
:
And it's done!
-
img
-
text
:
Rejected
-
button "Retry"
:
-
img
\ No newline at end of file
src/components/chat/ChatInput.tsx
浏览文件 @
54af09a0
...
...
@@ -673,6 +673,7 @@ function ChatInputActions({
variant=
"outline"
onClick=
{
onApprove
}
disabled=
{
!
isApprovable
||
isApproving
||
isRejecting
}
data
-
testid=
"approve-proposal-button"
>
{
isApproving
?
(
<
Loader2
size=
{
16
}
className=
"mr-1 animate-spin"
/>
...
...
@@ -687,6 +688,7 @@ function ChatInputActions({
variant=
"outline"
onClick=
{
onReject
}
disabled=
{
!
isApprovable
||
isApproving
||
isRejecting
}
data
-
testid=
"reject-proposal-button"
>
{
isRejecting
?
(
<
Loader2
size=
{
16
}
className=
"mr-1 animate-spin"
/>
...
...
src/components/preview_panel/PreviewIframe.tsx
浏览文件 @
54af09a0
...
...
@@ -464,6 +464,7 @@ export const PreviewIframe = ({ loading }: { loading: boolean }) => {
</
div
>
)
:
(
<
iframe
data
-
testid=
"preview-iframe-element"
onLoad=
{
()
=>
{
setErrorMessage
(
undefined
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论