mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-14 12:10:45 +03:00
chore: bench with strobe 0.17.0; site bench scrolls and taps on the phone (#62596)
This commit is contained in:
committed by
GitHub
Unverified
parent
6a89e9f287
commit
fdce6365bc
@@ -1034,7 +1034,7 @@
|
||||
"@effect/platform-node-shared": "4.1.0",
|
||||
"@effect/sql-sqlite-bun": "4.1.0",
|
||||
"@effect/sql-sqlite-node": "4.1.0",
|
||||
"@hona/strobe": "0.16.0",
|
||||
"@hona/strobe": "0.17.0",
|
||||
"@kobalte/core": "0.13.13",
|
||||
"@lydell/node-pty": "1.2.0-beta.12",
|
||||
"@npmcli/arborist": "9.4.0",
|
||||
@@ -1684,17 +1684,17 @@
|
||||
|
||||
"@happy-dom/global-registrator": ["@happy-dom/global-registrator@20.0.11", "", { "dependencies": { "@types/node": "^20.0.0", "happy-dom": "^20.0.11" } }, "sha512-GqNqiShBT/lzkHTMC/slKBrvN0DsD4Di8ssBk4aDaVgEn+2WMzE6DXxq701ndSXj7/0cJ8mNT71pM7Bnrr6JRw=="],
|
||||
|
||||
"@hona/strobe": ["@hona/strobe@0.16.0", "", { "optionalDependencies": { "@hona/strobe-darwin-arm64": "0.16.0", "@hona/strobe-darwin-x64": "0.16.0", "@hona/strobe-linux-arm64": "0.16.0", "@hona/strobe-linux-x64": "0.16.0", "@hona/strobe-win32-x64": "0.16.0" }, "bin": { "strobe": "bin/strobe.js" } }, "sha512-G2EoecbtwiWPzGiPs+kj2r0FAfnOl7YIUhL3e3Cmn9cKQ4MFJ9oziMV3WL9MdB9xbSQDvBsxM2phRORQ8GzkGg=="],
|
||||
"@hona/strobe": ["@hona/strobe@0.17.0", "", { "optionalDependencies": { "@hona/strobe-darwin-arm64": "0.17.0", "@hona/strobe-darwin-x64": "0.17.0", "@hona/strobe-linux-arm64": "0.17.0", "@hona/strobe-linux-x64": "0.17.0", "@hona/strobe-win32-x64": "0.17.0" }, "bin": { "strobe": "bin/strobe.js" } }, "sha512-mjS68cU0ytsFFfDEROwM3xXC8tLOqVL0FQcevBCsWYmq2m042GG9OkeLEDRO5CC6JE9q2Gfkpif1n//ezip+Zw=="],
|
||||
|
||||
"@hona/strobe-darwin-arm64": ["@hona/strobe-darwin-arm64@0.16.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-yYG5YFuBmiIhbGAgInNZ9Z7DwDjhBtLcpWItSHk28fpRe1QcBZHdyHtgMCSYiuXUadOAWCOzD9e3MFUjA81yPA=="],
|
||||
"@hona/strobe-darwin-arm64": ["@hona/strobe-darwin-arm64@0.17.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-g6x2PHEfRJ/NMLlF4yCnteJTSX7jY96NLwesIb+P+9vhvk1zDytrHK9QsxfSh7Qb8YxhxcXOzwVS2i64RdONtA=="],
|
||||
|
||||
"@hona/strobe-darwin-x64": ["@hona/strobe-darwin-x64@0.16.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-/idrUVcg2OnSrFWs9hQN5P3lZYhrlEKoea5d6evVKWSP0TQ7URdRoeQbF/A9xv8wbj0oAxx+FYao4lhi4ECrtQ=="],
|
||||
"@hona/strobe-darwin-x64": ["@hona/strobe-darwin-x64@0.17.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-31yzII2Ni56to27/KRHRgCgly2GO2jb5m7NGQN/7wunVB/aQwQOyfXWHJYetx9wlVYSGO9jsvsDljicBICe39g=="],
|
||||
|
||||
"@hona/strobe-linux-arm64": ["@hona/strobe-linux-arm64@0.16.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-XvgYQ+AKjTHrRG3vyxJQSznqVY/jtFL837EW+MkLGQFLDLpZgf80CTz9QfxnFFVFSWA8Ttqrvhu3fvrdZo8EEA=="],
|
||||
"@hona/strobe-linux-arm64": ["@hona/strobe-linux-arm64@0.17.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-66ivBq6eb5VPSX2W7wKeICRwctNn1tM5cbTBQ2JYAeOXyCniDB0DfKBQviaMItyPGjYIW2DfcZED9fuPq3lL5Q=="],
|
||||
|
||||
"@hona/strobe-linux-x64": ["@hona/strobe-linux-x64@0.16.0", "", { "os": "linux", "cpu": "x64" }, "sha512-d5SAEc1KT/s5UQT+xrR1IONGeVbaPza0NjvhEdCIurYri/gLYExWIAsJflUefcJh5z74MRKl5vBnn71JtNIAvg=="],
|
||||
"@hona/strobe-linux-x64": ["@hona/strobe-linux-x64@0.17.0", "", { "os": "linux", "cpu": "x64" }, "sha512-EYfjHW9WwriSXxAENPv6Ohy80l4nYYLmufn5hZQr7HpI2vpPh+cNuwK6CIbW4Q0w2CEv+Ty9U6VF6gDMOrDRjw=="],
|
||||
|
||||
"@hona/strobe-win32-x64": ["@hona/strobe-win32-x64@0.16.0", "", { "os": "win32", "cpu": "x64" }, "sha512-xXMFlWa4zUR/jsnlqc3ZW0P0mfXqjEp2+sqw7JyxLXtTJnjt+M+FvmlnjZUwKpnN4AZ1+e2CutNKNJg+QC+UgA=="],
|
||||
"@hona/strobe-win32-x64": ["@hona/strobe-win32-x64@0.17.0", "", { "os": "win32", "cpu": "x64" }, "sha512-O29IWcs6QqA5MA0CP+90Rt1BWXXKDCOh4OeeW9Fw4M9zWaxcY5CbEy/Tr2eGRKkK1VxrEvGcyMXCpuiWZGXUKQ=="],
|
||||
|
||||
"@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
|
||||
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@
|
||||
"@effect/sql-sqlite-node": "4.1.0",
|
||||
"@npmcli/arborist": "9.4.0",
|
||||
"@types/bun": "1.4.3",
|
||||
"@hona/strobe": "0.16.0",
|
||||
"@hona/strobe": "0.17.0",
|
||||
"@types/cross-spawn": "6.0.6",
|
||||
"@octokit/rest": "22.0.0",
|
||||
"@opentui/core": "0.8.1",
|
||||
|
||||
@@ -22,10 +22,9 @@ const load = (path: string): RunCase<unknown> => ({
|
||||
})
|
||||
|
||||
// Each target's input: a desktop has a mouse, a phone a touch screen, and the site takes different
|
||||
// paths for each (preloading links as they scroll into view, autoplaying card videos), so setup
|
||||
// refuses a page with the wrong input. strobe 0.16 refuses pointer input (scrolls, taps) on an
|
||||
// emulated phone until its touch input lands, and a mouse wheel or click on a touch page isn't what a
|
||||
// phone visitor does, so for now the phone times its load only and the pointer cases run on a desktop.
|
||||
// paths for each (preloading links as they scroll into view, autoplaying card videos). strobe refuses
|
||||
// a page that doesn't see its target's input (DeviceMismatch). On the phone a scroll is a finger's
|
||||
// swipes and a click a tap; a phone has no hover, so card-hover and search (⌘K) stay on the desktop.
|
||||
const reload = async (ctx: Context<unknown>) => {
|
||||
await ctx.page.goto(new URL("/", ctx.url).href)
|
||||
await ctx.page.idle()
|
||||
@@ -38,12 +37,7 @@ export default bench({
|
||||
// The live site, for reference only: `--target production --blocks 5 --head .` (nothing to build).
|
||||
production: url("https://opencode.ai/", { viewport: desktop }),
|
||||
},
|
||||
async setup({ page, target }) {
|
||||
const mouse = await page.eval(() => matchMedia("(hover: hover) and (pointer: fine)").matches)
|
||||
if (mouse !== (target !== "phone"))
|
||||
throw new Error(`the ${target} page ${mouse ? "has" : "lacks"} a mouse; see the input note in site.bench.ts`)
|
||||
await page.idle()
|
||||
},
|
||||
setup: ({ page }) => page.idle(),
|
||||
cases: {
|
||||
"load-home": load("/"),
|
||||
"load-product": { ...load("/product"), targets: ["desktop", "production"] },
|
||||
@@ -51,7 +45,7 @@ export default bench({
|
||||
"load-docs": { ...load("/docs/"), targets: ["desktop", "production"] },
|
||||
"scroll-home": {
|
||||
primary: "main.work",
|
||||
targets: ["desktop", "production"],
|
||||
targets: ["desktop", "phone", "production"],
|
||||
run: ({ page }) => page.scroll("main", { by: 12000, speed: 6000 }),
|
||||
reset: reload,
|
||||
},
|
||||
@@ -78,7 +72,7 @@ export default bench({
|
||||
},
|
||||
"card-open": {
|
||||
primary: "main.work",
|
||||
targets: ["desktop", "production"],
|
||||
targets: ["desktop", "phone", "production"],
|
||||
run: async ({ page }) => {
|
||||
await page.click(card, { until: '[data-component="product-hero"]' })
|
||||
await page.idle()
|
||||
|
||||
Reference in New Issue
Block a user