Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
df74c52c
Unverified
提交
df74c52c
authored
7月 10, 2025
作者:
Will Chen
提交者:
GitHub
7月 10, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Split supbase migration into two test cases (#623)
上级
72fd504f
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
66 行增加
和
12 行删除
+66
-12
supabase_migrations.spec.ts
e2e-tests/supabase_migrations.spec.ts
+66
-12
没有找到文件。
e2e-tests/supabase_migrations.spec.ts
浏览文件 @
df74c52c
import
{
expect
}
from
"@playwright/test"
;
import
{
expect
}
from
"@playwright/test"
;
import
{
test
}
from
"./helpers/test_helper"
;
import
{
test
,
testSkipIfWindows
}
from
"./helpers/test_helper"
;
import
fs
from
"fs-extra"
;
import
fs
from
"fs-extra"
;
import
path
from
"path"
;
import
path
from
"path"
;
import
{
execSync
}
from
"child_process"
;
import
{
execSync
}
from
"child_process"
;
import
os
from
"node:os"
;
test
(
"supabase migrations"
,
async
({
po
})
=>
{
test
(
"supabase migrations"
,
async
({
po
})
=>
{
await
po
.
setUp
({
autoApprove
:
true
});
await
po
.
sendPrompt
(
"tc=add-supabase"
);
// Connect to Supabase
await
po
.
page
.
getByText
(
"Set up supabase"
).
click
();
await
po
.
clickConnectSupabaseButton
();
await
po
.
clickBackButton
();
const
appPath
=
await
po
.
getCurrentAppPath
();
const
migrationsDir
=
path
.
join
(
appPath
,
"supabase"
,
"migrations"
);
// --- SCENARIO 1: OFF BY DEFAULT ---
await
po
.
sendPrompt
(
"tc=execute-sql-1"
);
await
po
.
waitForChatCompletion
();
expect
(
fs
.
existsSync
(
migrationsDir
)).
toBe
(
false
);
// --- SCENARIO 2: TOGGLE ON ---
// Go to settings to find the Supabase integration
await
po
.
goToSettingsTab
();
const
migrationsSwitch
=
po
.
page
.
locator
(
"#supabase-migrations"
);
await
migrationsSwitch
.
click
();
await
po
.
goToChatTab
();
// Send a prompt that triggers a migration
await
po
.
sendPrompt
(
"tc=execute-sql-1"
);
await
po
.
waitForChatCompletion
();
let
files
:
string
[]
=
[];
await
expect
(
async
()
=>
{
// Check that one migration file was created
files
=
await
fs
.
readdir
(
migrationsDir
);
expect
(
files
).
toHaveLength
(
1
);
}).
toPass
();
expect
(
files
[
0
]).
toMatch
(
/0000_create_users_table
\.
sql/
);
expect
(
await
fs
.
readFile
(
path
.
join
(
migrationsDir
,
files
[
0
]),
"utf8"
)).
toEqual
(
"CREATE TABLE users (id serial primary key);"
,
);
// Send a prompt that triggers a migration
await
po
.
sendPrompt
(
"tc=execute-sql-no-description"
);
await
po
.
waitForChatCompletion
();
await
expect
(
async
()
=>
{
// Check that one migration file was created
files
=
await
fs
.
readdir
(
migrationsDir
);
expect
(
files
).
toHaveLength
(
2
);
}).
toPass
();
expect
(
files
[
1
]).
toMatch
(
/0001_
\w
+_
\w
+_
\w
+
\.
sql/
);
expect
(
await
fs
.
readFile
(
path
.
join
(
migrationsDir
,
files
[
1
]),
"utf8"
)).
toEqual
(
"DROP TABLE users;"
,
);
});
// Skip this test on Windows because git isn't configured and
// the mac test will catch this regression.
testSkipIfWindows
(
"supabase migrations with native git"
,
async
({
po
})
=>
{
// Turning on native Git to catch this edge case:
// Turning on native Git to catch this edge case:
// https://github.com/dyad-sh/dyad/issues/608
// https://github.com/dyad-sh/dyad/issues/608
await
po
.
setUp
({
autoApprove
:
true
,
nativeGit
:
true
});
await
po
.
setUp
({
autoApprove
:
true
,
nativeGit
:
true
});
...
@@ -48,16 +106,12 @@ test("supabase migrations", async ({ po }) => {
...
@@ -48,16 +106,12 @@ test("supabase migrations", async ({ po }) => {
"CREATE TABLE users (id serial primary key);"
,
"CREATE TABLE users (id serial primary key);"
,
);
);
// Skip this check on Windows because git isn't configured and
// Make sure git is clean.
// the mac test will catch this regression.
const
gitStatus
=
execSync
(
"git status --porcelain"
,
{
if
(
os
.
platform
()
!==
"win32"
)
{
cwd
:
appPath
,
// Make sure git is clean.
encoding
:
"utf8"
,
const
gitStatus
=
execSync
(
"git status --porcelain"
,
{
}).
trim
();
cwd
:
appPath
,
expect
(
gitStatus
).
toBe
(
""
);
encoding
:
"utf8"
,
}).
trim
();
expect
(
gitStatus
).
toBe
(
""
);
}
// Send a prompt that triggers a migration
// Send a prompt that triggers a migration
await
po
.
sendPrompt
(
"tc=execute-sql-no-description"
);
await
po
.
sendPrompt
(
"tc=execute-sql-no-description"
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论