@@ -3,12 +3,32 @@ set -euo pipefail
33
44BASE_URL=" ${BASE_URL:- ${1:- http:// 127.0.0.1: 3002} } "
55LOCALE=" ${LOCALE:- zh} "
6+ SESSION_NAME=" ${SESSION_NAME:- learn-claude-code-flows-${LOCALE} } "
67
78ROOT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) /.." && pwd) "
89source " $ROOT_DIR /scripts/browser-test-lib.sh"
910
11+ agent-browser () {
12+ command agent-browser --session-name " $SESSION_NAME " " $@ "
13+ }
14+
1015trap ' stop_static_server_if_started; agent-browser close >/dev/null 2>&1 || true' EXIT
1116
17+ locale_text () {
18+ local key=" $1 "
19+ case " $LOCALE :$key " in
20+ zh:deep_dive) echo ' 深入探索' ;;
21+ en:deep_dive) echo ' Deep Dive' ;;
22+ ja:deep_dive) echo ' 深掘り' ;;
23+
24+ zh:bridge_control_plane) echo ' 工具控制平面' ;;
25+ en:bridge_control_plane) echo ' Tool Control Plane' ;;
26+ ja:bridge_control_plane) echo ' ツール制御プレーン' ;;
27+
28+ * ) echo " Unknown locale text key: ${LOCALE} :${key} " >&2 ; return 1 ;;
29+ esac
30+ }
31+
1232wait_page () {
1333 agent-browser wait --load networkidle > /dev/null 2>&1 || agent-browser wait 600 > /dev/null 2>&1 || true
1434 agent-browser wait 1200 > /dev/null 2>&1 || true
@@ -171,84 +191,86 @@ flow_home_to_s01() {
171191 click_link_by_href " /${LOCALE} /s01/"
172192 wait_page
173193 assert_url_contains " /${LOCALE} /s01/"
174- assert_body_contains ' Agent 循环 '
194+ assert_body_contains ' s01 '
175195 assert_no_overflow
176196 assert_no_page_errors
177197}
178198
179199flow_home_to_timeline () {
180200 open_page " /${LOCALE} /timeline/"
181201 assert_url_contains " /${LOCALE} /timeline/"
182- assert_body_contains ' 按 4 个阶段渐进搭建'
202+ assert_body_contains ' s01'
203+ assert_body_contains ' s19'
183204 assert_no_overflow
184205 assert_no_page_errors
185206}
186207
187208flow_home_to_layers () {
188209 open_page " /${LOCALE} /layers/"
189210 assert_url_contains " /${LOCALE} /layers/"
190- assert_body_contains ' 阶段入口'
211+ assert_body_contains ' P1'
212+ assert_body_contains ' s19'
191213 assert_no_overflow
192214 assert_no_page_errors
193215}
194216
195217flow_home_to_compare () {
196218 open_page " /${LOCALE} /"
197- click_link_by_href " /${LOCALE} /compare/" ' 版本对比 '
219+ click_link_by_href " /${LOCALE} /compare/"
198220 wait_page
199221 assert_url_contains " /${LOCALE} /compare/"
200- assert_body_contains ' 学习路径对比 '
222+ assert_body_contains ' s14 -> s15 '
201223 assert_no_overflow
202224 assert_no_page_errors
203225}
204226
205227flow_compare_default_state () {
206228 open_page " /${LOCALE} /compare"
207- assert_body_contains ' 跃迁诊断 '
208- assert_body_contains ' Agent 循环 '
209- assert_body_contains ' 工具使用 '
229+ assert_body_contains ' s01 '
230+ assert_body_contains ' s02 '
231+ assert_body_contains ' s14 -> s15 '
210232 assert_no_overflow
211233 assert_no_page_errors
212234}
213235
214236flow_timeline_to_stage_exit () {
215237 open_page " /${LOCALE} /timeline"
216- click_link_exact ' 打开阶段收口: s06'
238+ click_link_by_href " / ${LOCALE} / s06/ "
217239 wait_page
218240 assert_url_contains " /${LOCALE} /s06/"
219- assert_body_contains ' 上下文压缩 '
241+ assert_body_contains ' s06 '
220242 assert_no_overflow
221243 assert_no_page_errors
222244}
223245
224246flow_layers_to_stage_entry () {
225247 open_page " /${LOCALE} /layers"
226- click_link_by_href " /${LOCALE} /s15/" ' 阶段入口 '
248+ click_link_by_href " /${LOCALE} /s15/"
227249 wait_page
228250 assert_url_contains " /${LOCALE} /s15/"
229- assert_body_contains ' Agent 团队 '
251+ assert_body_contains ' s15 '
230252 assert_no_overflow
231253 assert_no_page_errors
232254}
233255
234256flow_chapter_to_bridge_doc () {
235257 open_page " /${LOCALE} /s02"
236- agent-browser --json find text ' 深入探索 ' click > /dev/null
258+ agent-browser --json find text " $( locale_text deep_dive ) " click > /dev/null
237259 wait_page
238- click_link_by_href " /${LOCALE} /docs/s02a-tool-control-plane/" ' 工具控制平面 '
260+ click_link_by_href " /${LOCALE} /docs/s02a-tool-control-plane/" " $( locale_text bridge_control_plane ) "
239261 wait_page
240262 assert_url_contains " /${LOCALE} /docs/s02a-tool-control-plane/"
241- assert_body_contains ' 工具控制平面 '
263+ assert_body_contains " $( locale_text bridge_control_plane ) "
242264 assert_no_overflow
243265 assert_no_page_errors
244266}
245267
246268flow_bridge_doc_home_return () {
247269 open_page " /${LOCALE} /docs/s00f-code-reading-order"
248- click_link_by_href " /${LOCALE} /" ' 回到学习主线 '
270+ click_link_by_href " /${LOCALE} /"
249271 wait_page
250272 assert_url_contains " /${LOCALE} /"
251- assert_body_contains ' 开始学习 '
273+ assert_body_contains ' s01 '
252274 assert_no_overflow
253275 assert_no_page_errors
254276}
@@ -258,7 +280,7 @@ flow_bridge_doc_back_to_chapter() {
258280 click_link_by_href " /${LOCALE} /s02/" ' s02'
259281 wait_page
260282 assert_url_contains " /${LOCALE} /s02/"
261- assert_body_contains ' 工具使用 '
283+ assert_body_contains ' s02 '
262284 assert_no_overflow
263285 assert_no_page_errors
264286}
@@ -281,19 +303,18 @@ flow_compare_preset() {
281303 open_page " /${LOCALE} /compare"
282304 agent-browser --json find text ' s14 -> s15' click > /dev/null
283305 agent-browser wait 800 > /dev/null 2>&1 || true
284- assert_body_contains ' 跃迁诊断'
285- assert_body_contains ' Agent 团队'
286- assert_body_contains ' 更稳的读法'
306+ assert_body_contains ' s14'
307+ assert_body_contains ' s15'
287308 assert_no_overflow
288309 assert_no_page_errors
289310}
290311
291312flow_chapter_next_navigation () {
292313 open_page " /${LOCALE} /s15"
293- click_link_by_href " /${LOCALE} /s16/" ' 下一章 '
314+ click_link_by_href " /${LOCALE} /s16/"
294315 wait_page
295316 assert_url_contains " /${LOCALE} /s16/"
296- assert_body_contains ' 团队协议 '
317+ assert_body_contains ' s16 '
297318 assert_no_overflow
298319 assert_no_page_errors
299320}
0 commit comments