Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gzupanda
code-server
提交
4b703cbd
C
code-server
项目概览
gzupanda
/
code-server
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
code-server
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
4b703cbd
编写于
4月 01, 2021
作者:
J
Joe Previte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: e2e tests based on jest-playwright
上级
1782f2a2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
66 deletion
+18
-66
test/e2e/login.test.ts
test/e2e/login.test.ts
+6
-22
test/e2e/logout.test.ts
test/e2e/logout.test.ts
+4
-21
test/e2e/openHelpAbout.test.ts
test/e2e/openHelpAbout.test.ts
+4
-23
test/utils/globalSetup.ts
test/utils/globalSetup.ts
+4
-0
未找到文件。
test/e2e/login.test.ts
浏览文件 @
4b703cbd
import
{
chromium
,
Page
,
Browser
,
BrowserContext
}
from
"
playwright
"
/// <reference types="jest-playwright-preset" />
import
{
CODE_SERVER_ADDRESS
,
PASSWORD
}
from
"
../utils/constants
"
describe
(
"
login
"
,
()
=>
{
let
browser
:
Browser
let
page
:
Page
let
context
:
BrowserContext
beforeAll
(
async
()
=>
{
browser
=
await
chromium
.
launch
()
context
=
await
browser
.
newContext
()
})
afterAll
(
async
()
=>
{
await
browser
.
close
()
})
beforeEach
(
async
()
=>
{
page
=
await
context
.
newPage
()
})
afterEach
(
async
()
=>
{
await
page
.
close
()
// Remove password from local storage
await
context
.
clearCookies
()
await
jestPlaywright
.
resetContext
()
await
page
.
goto
(
CODE_SERVER_ADDRESS
)
})
it
(
"
should be able to login
"
,
async
()
=>
{
await
page
.
goto
(
CODE_SERVER_ADDRESS
)
// Type in password
await
page
.
fill
(
"
.password
"
,
PASSWORD
)
// Click the submit button and login
await
page
.
click
(
"
.submit
"
)
// For some reason, it wasn't waiting for the click and navigation before checking
// so adding a timeout ensures that we allow the editor time to load
await
page
.
waitForTimeout
(
1000
)
// See the editor
const
codeServerEditor
=
await
page
.
isVisible
(
"
.monaco-workbench
"
)
expect
(
codeServerEditor
).
toBeTruthy
()
...
...
test/e2e/logout.test.ts
浏览文件 @
4b703cbd
import
{
chromium
,
Page
,
Browser
,
BrowserContext
}
from
"
playwright
"
/// <reference types="jest-playwright-preset" />
import
{
CODE_SERVER_ADDRESS
,
PASSWORD
}
from
"
../utils/constants
"
describe
(
"
logout
"
,
()
=>
{
let
browser
:
Browser
let
page
:
Page
let
context
:
BrowserContext
beforeAll
(
async
()
=>
{
browser
=
await
chromium
.
launch
()
context
=
await
browser
.
newContext
()
})
afterAll
(
async
()
=>
{
await
browser
.
close
()
})
beforeEach
(
async
()
=>
{
page
=
await
context
.
newPage
()
})
afterEach
(
async
()
=>
{
await
page
.
close
()
// Remove password from local storage
await
context
.
clearCookies
()
await
jestPlaywright
.
resetContext
()
})
it
(
"
should be able login and logout
"
,
async
()
=>
{
...
...
@@ -31,6 +12,8 @@ describe("logout", () => {
await
page
.
fill
(
"
.password
"
,
PASSWORD
)
// Click the submit button and login
await
page
.
click
(
"
.submit
"
)
// Allow time to navigate
await
page
.
waitForTimeout
(
1000
)
// See the editor
const
codeServerEditor
=
await
page
.
isVisible
(
"
.monaco-workbench
"
)
expect
(
codeServerEditor
).
toBeTruthy
()
...
...
test/e2e/openHelpAbout.test.ts
浏览文件 @
4b703cbd
import
{
chromium
,
Page
,
Browser
,
BrowserContext
,
Cookie
}
from
"
playwright
"
/// <reference types="jest-playwright-preset" />
import
{
Cookie
}
from
"
playwright
"
import
{
hash
}
from
"
../../src/node/util
"
import
{
CODE_SERVER_ADDRESS
,
PASSWORD
,
STORAGE
}
from
"
../utils/constants
"
import
{
createCookieIfDoesntExist
}
from
"
../utils/helpers
"
describe
(
"
Open Help > About
"
,
()
=>
{
let
browser
:
Browser
let
page
:
Page
let
context
:
BrowserContext
beforeAll
(
async
()
=>
{
browser
=
await
chromium
.
launch
()
beforeEach
(
async
()
=>
{
// Create a new context with the saved storage state
const
storageState
=
JSON
.
parse
(
STORAGE
)
||
{}
...
...
@@ -42,22 +38,7 @@ describe("Open Help > About", () => {
// See discussion: https://github.com/cdr/code-server/pull/2648#discussion_r575434946
const
maybeUpdatedCookies
=
createCookieIfDoesntExist
(
cookies
,
cookieToStore
)
context
=
await
browser
.
newContext
({
storageState
:
{
cookies
:
maybeUpdatedCookies
},
})
})
afterAll
(
async
()
=>
{
// Remove password from local storage
await
context
.
clearCookies
()
await
context
.
close
()
await
browser
.
close
()
})
beforeEach
(
async
()
=>
{
page
=
await
context
.
newPage
()
await
jestPlaywright
.
resetBrowser
({
storageState
:
{
cookies
:
maybeUpdatedCookies
}
})
})
it
(
"
should see a 'Help' then 'About' button in the Application Menu that opens a dialog
"
,
async
()
=>
{
...
...
test/utils/globalSetup.ts
浏览文件 @
4b703cbd
...
...
@@ -21,6 +21,10 @@ module.exports = async () => {
await
page
.
fill
(
"
.password
"
,
PASSWORD
)
// Click the submit button and login
await
page
.
click
(
"
.submit
"
)
// After logging in, we store a cookie in localStorage
// we need to wait a bit to make sure that happens
// before we grab the storage and save it
await
page
.
waitForTimeout
(
1000
)
// Save storage state and store as an env variable
// More info: https://playwright.dev/docs/auth?_highlight=authe#reuse-authentication-state
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录