Skip to content

Commit 317fab0

Browse files
committed
test(e2e): migrate to cypress 10.x
1 parent cae5baa commit 317fab0

File tree

6 files changed

+97
-49
lines changed

6 files changed

+97
-49
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"private": true,
33
"prettier": "ory-prettier-styles",
44
"config": {
5-
"prettierTarget": "test/e2e/cypress/**/*{.ts,.js}"
5+
"prettierTarget": "test/e2e/**/*{.ts,.js}"
66
},
77
"scripts": {
88
"format": "prettier --write ${npm_package_config_prettierTarget}",

test/e2e/cypress.config.ts

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import { defineConfig } from 'cypress'
2+
import got from 'got'
3+
import CRI from 'chrome-remote-interface'
4+
let criPort = 0,
5+
criClient = null
6+
7+
export default defineConfig({
8+
chromeWebSecurity: false,
9+
retries: {
10+
runMode: 6,
11+
openMode: 1
12+
},
13+
defaultCommandTimeout: 10000,
14+
requestTimeout: 10000,
15+
projectId: 'bc48bg',
16+
video: true,
17+
videoCompression: false,
18+
screenshotOnRunFailure: true,
19+
e2e: {
20+
videosFolder: 'cypress/videos',
21+
screenshotsFolder: 'cypress/screenshots',
22+
excludeSpecPattern: '**/*snapshots.js',
23+
supportFile: 'cypress/support/index.js',
24+
specPattern: '**/*.spec.{js,ts}',
25+
baseUrl: 'http://localhost:4455/',
26+
setupNodeEvents(on, config) {
27+
on('before:browser:launch', (browser, args) => {
28+
criPort = ensureRdpPort(args.args)
29+
console.log('criPort is', criPort)
30+
})
31+
32+
on('task', {
33+
httpRequest(params) {
34+
return got(params).then(({ body }) => body)
35+
},
36+
// Reset chrome remote interface for clean state
37+
async resetCRI() {
38+
if (criClient) {
39+
const c = criClient
40+
criClient = null
41+
await c.close()
42+
}
43+
44+
return Promise.resolve(true)
45+
},
46+
// Execute CRI command
47+
async sendCRI(args) {
48+
if (!criClient) {
49+
criClient = await CRI({ port: criPort })
50+
}
51+
52+
return criClient.send(args.query, args.opts)
53+
}
54+
})
55+
}
56+
}
57+
})
58+
59+
function ensureRdpPort(args) {
60+
const existing = args.find(
61+
(arg) => arg.slice(0, 23) === '--remote-debugging-port'
62+
)
63+
64+
if (existing) {
65+
return Number(existing.split('=')[1])
66+
}
67+
68+
const port = 40000 + Math.round(Math.random() * 25000)
69+
args.push(`--remote-debugging-port=${port}`)
70+
return port
71+
}

test/e2e/cypress.json

-23
This file was deleted.

test/e2e/modd.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
**/*.go !**/*_test.go {
2-
prep: go build -tags sqlite -o test/e2e/.bin/kratos .
2+
prep: go build -tags sqlite,json1 -o test/e2e/.bin/kratos .
33
prep: test/e2e/.bin/kratos migrate sql -e --yes
44
daemon +sigterm: test/e2e/.bin/kratos serve --watch-courier --dev -c test/e2e/kratos.generated.yml
55
}

test/e2e/package-lock.json

+22-22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/e2e/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
"@types/node": "^16.9.6",
1414
"@types/yamljs": "^0.2.31",
1515
"chrome-remote-interface": "0.31.2",
16-
"cypress": "^9.5.1",
16+
"cypress": "^10.3.1",
1717
"dayjs": "^1.10.4",
1818
"got": "^11.8.2",
1919
"otplib": "^12.0.1",
20-
"typescript": "^4.4.3",
20+
"typescript": "^4.7.4",
2121
"wait-on": "5.3.0",
2222
"yamljs": "^0.3.0"
2323
}

0 commit comments

Comments
 (0)