Merge remote-tracking branch 'origin/master' into feat/game-works-management

This commit is contained in:
2026-10-03 15:43:20 +08:00
21 changed files with 852 additions and 189 deletions
@@ -3464,14 +3464,16 @@ mod tests {
"title": "工具链远端画布"
}]}}),
);
} else if route.starts_with("/api/editor/assets/library") {
} else if request_line.starts_with(&format!(
"GET /api/editor/assets/folders/{TOOL_CHAIN_ASSET_FOLDER_ID} "
)) {
tool_chain_write_json(
&mut stream,
"200 OK",
json!({"data": {"library": {"folders": [{
json!({"data": {"folder": {
"folderId": TOOL_CHAIN_ASSET_FOLDER_ID,
"label": "工具链远端目录"
}]}}}),
}}}),
);
} else if request_line.starts_with(expected_submission) {
tool_chain_write_json(
@@ -4017,6 +4019,9 @@ mod tests {
);
assert_eq!(requests.len(), 6, "{requests:?}");
assert!(requests.iter().any(|request| request.starts_with(&format!(
"GET /api/editor/assets/folders/{TOOL_CHAIN_ASSET_FOLDER_ID} "
))));
let submission = requests
.iter()
.find(|request| request.starts_with("POST /api/editor/images/edits "))
File diff suppressed because it is too large Load Diff
@@ -6350,15 +6350,17 @@ mod tests {
"projectId": "source-binding-project"
}]}}),
);
} else if request_line.starts_with("GET /api/external/v1/editor/assets/library ")
|| request_line.starts_with("GET /api/editor/assets/library ")
} else if request_line.starts_with(
"GET /api/external/v1/editor/assets/folders/source-binding-folder ",
) || request_line
.starts_with("GET /api/editor/assets/folders/source-binding-folder ")
{
write_json(
&mut stream,
"200 OK",
serde_json::json!({"data": {"library": {"folders": [{
serde_json::json!({"data": {"folder": {
"folderId": "source-binding-folder"
}]}}}),
}}}),
);
} else if request_line
.starts_with("POST /api/external/v1/assets/direct-upload-tickets ")
@@ -7047,7 +7049,7 @@ mod tests {
"generated/owner-b-source.{}",
if is_image { "png" } else { "mp4" }
);
let request_count = if is_image { 6 } else { 7 };
let request_count = 6;
let server_upload_url = upload_url.clone();
let server_object_key = owner_b_object_key.clone();
let (sender, receiver) = mpsc::channel();
@@ -7082,18 +7084,12 @@ mod tests {
serde_json::json!({"data": {"project": {"projectId": "owner-b-project"}}}),
);
} else if request_line
.starts_with("GET /api/external/v1/editor/assets/library ")
.starts_with("GET /api/external/v1/editor/assets/folders/owner-b-folder ")
{
write_json(
&mut stream,
"200 OK",
if is_image {
serde_json::json!({"data": {"library": {"folders": [{
"folderId": "owner-b-folder"
}]}}})
} else {
serde_json::json!({"data": {"library": {"folders": []}}})
},
serde_json::json!({"data": {"folder": {"folderId": "owner-b-folder"}}}),
);
} else if request_line
.starts_with("POST /api/external/v1/editor/assets/folders ")
@@ -7564,7 +7560,9 @@ mod tests {
assert!(requests.iter().all(|request| {
let line = request.lines().next().unwrap_or_default();
line.starts_with("GET /api/external/v1/editor/projects?view=summary ")
|| line.starts_with("GET /api/external/v1/editor/assets/library ")
|| line.starts_with(
"GET /api/external/v1/editor/assets/folders/source-binding-folder ",
)
}));
}
@@ -9743,7 +9741,7 @@ mod tests {
let server_generated_video = generated_video.clone();
let (sender, receiver) = mpsc::channel();
let server = std::thread::spawn(move || {
for request_index in 0..11 {
for request_index in 0..10 {
let mut stream = accept_resource_editor_fixture_connection(
&listener,
"External video fixture",
@@ -9769,12 +9767,6 @@ mod tests {
"projectId": "external-video-project"
}}}),
);
} else if request_line.starts_with("GET /api/external/v1/editor/assets/library ") {
write_json(
&mut stream,
"200 OK",
serde_json::json!({"data": {"library": {"folders": []}}}),
);
} else if request_line.starts_with("POST /api/external/v1/editor/assets/folders ") {
write_json(
&mut stream,
@@ -9892,7 +9884,7 @@ mod tests {
.expect("derive External video");
server.join().expect("join External video server");
let requests = std::iter::from_fn(|| receiver.try_recv().ok()).collect::<Vec<_>>();
assert_eq!(requests.len(), 11);
assert_eq!(requests.len(), 10);
assert!(requests.iter().all(|request| {
!request.starts_with("POST /api/assets/")
&& !request.starts_with("GET /api/runtime/external-generation/")
@@ -400,13 +400,15 @@ fn respond_canvas_context_request(stream: &mut TcpStream, request: &str) -> bool
serde_json::json!({"data": {"projects": [{"projectId": REMOTE_PROJECT_ID}]}}),
);
true
} else if line.starts_with("GET /api/external/v1/editor/assets/library ")
|| line.starts_with("GET /api/editor/assets/library ")
{
} else if line.starts_with(&format!(
"GET /api/external/v1/editor/assets/folders/{REMOTE_FOLDER_ID} "
)) || line.starts_with(&format!(
"GET /api/editor/assets/folders/{REMOTE_FOLDER_ID} "
)) {
write_json(
stream,
"200 OK",
serde_json::json!({"data": {"library": {"folders": [{"folderId": REMOTE_FOLDER_ID}]}}}),
serde_json::json!({"data": {"folder": {"folderId": REMOTE_FOLDER_ID}}}),
);
true
} else {