Skip to content

Commit fb1a12f

Browse files
authored
Merge pull request #96 from dev-five-git/fix-js-script-issue
Fix js script issue
2 parents 022f3ad + bdf72be commit fb1a12f

3 files changed

Lines changed: 37 additions & 5 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"changes":{"Cargo.toml":"Patch"},"note":"Fix js script path","date":"2026-03-11T06:01:44.334450200Z"}

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/vespera_macro/src/router_codegen.rs

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,10 +429,10 @@ impl Parse for ExportAppInput {
429429
}
430430

431431
/// Swagger UI HTML template. Contains `{}` format placeholder for the OpenAPI spec JSON.
432-
const SWAGGER_UI_HTML: &str = r#"<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>Swagger UI</title><link rel=\"stylesheet\" href=\"https://unpkg.com/swagger-ui-dist/swagger-ui.css\" /></head><body style=\"margin: 0; padding: 0;\"><div id=\"swagger-ui\"></div><script src=\"https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js\"></script><script src=\"https://unpkg.com/swagger-ui-dist/swagger-ui-standalone-preset.js\"></script><script>const openapiSpec = {};window.onload = () => {{ SwaggerUIBundle({{ spec: openapiSpec, dom_id: \"\#swagger-ui\", presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset], layout: \"StandaloneLayout\" }}); }};</script></body></html>"#;
432+
const SWAGGER_UI_HTML: &str = r##"<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Swagger UI</title><link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist/swagger-ui.css" /></head><body style="margin: 0; padding: 0;"><div id="swagger-ui"></div><script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script><script src="https://unpkg.com/swagger-ui-dist/swagger-ui-standalone-preset.js"></script><script>const openapiSpec = {};window.onload = () => {{ SwaggerUIBundle({{ spec: openapiSpec, dom_id: "#swagger-ui", presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset], layout: "StandaloneLayout" }}); }};</script></body></html>"##;
433433

434434
/// ReDoc HTML template. Contains `{}` format placeholder for the OpenAPI spec JSON.
435-
const REDOC_HTML: &str = r#"<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><title>ReDoc</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><style>body {{ margin: 0; padding: 0; }}</style><link rel=\"stylesheet\" href=\"https://unpkg.com/redoc/bundles/redoc.standalone.css\" /></head><body><div id=\"redoc-container\"></div><script src=\"https://unpkg.com/redoc/bundles/redoc.standalone.js\"></script><script>const openapiSpec = {};Redoc.init(openapiSpec, {{}}, document.getElementById(\"redoc-container\"));</script></body></html>"#;
435+
const REDOC_HTML: &str = r#"<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>ReDoc</title><meta name="viewport" content="width=device-width, initial-scale=1"><style>body {{ margin: 0; padding: 0; }}</style><link rel="stylesheet" href="https://unpkg.com/redoc/bundles/redoc.standalone.css" /></head><body><div id="redoc-container"></div><script src="https://unpkg.com/redoc/bundles/redoc.standalone.js"></script><script>const openapiSpec = {};Redoc.init(openapiSpec, {{}}, document.getElementById("redoc-container"));</script></body></html>"#;
436436

437437
/// Generate a documentation route handler (Swagger UI or ReDoc).
438438
///
@@ -1266,6 +1266,37 @@ pub fn get_users() -> String {
12661266
assert!(code.contains("__VESPERA_SPEC"));
12671267
}
12681268

1269+
#[test]
1270+
fn test_swagger_html_template_renders_valid_quotes() {
1271+
assert!(
1272+
!SWAGGER_UI_HTML.contains(r#"\""#),
1273+
"Swagger template should not contain literal backslash-quotes: {SWAGGER_UI_HTML}"
1274+
);
1275+
assert!(
1276+
SWAGGER_UI_HTML.contains(r#"href="https://unpkg.com/swagger-ui-dist/swagger-ui.css""#)
1277+
);
1278+
assert!(
1279+
SWAGGER_UI_HTML
1280+
.contains(r#"src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js""#)
1281+
);
1282+
assert!(SWAGGER_UI_HTML.contains(r##"dom_id: "#swagger-ui""##));
1283+
}
1284+
1285+
#[test]
1286+
fn test_redoc_html_template_renders_valid_quotes() {
1287+
assert!(
1288+
!REDOC_HTML.contains(r#"\""#),
1289+
"ReDoc template should not contain literal backslash-quotes: {REDOC_HTML}"
1290+
);
1291+
assert!(
1292+
REDOC_HTML.contains(r#"href="https://unpkg.com/redoc/bundles/redoc.standalone.css""#)
1293+
);
1294+
assert!(
1295+
REDOC_HTML.contains(r#"src="https://unpkg.com/redoc/bundles/redoc.standalone.js""#)
1296+
);
1297+
assert!(REDOC_HTML.contains(r#"document.getElementById("redoc-container")"#));
1298+
}
1299+
12691300
#[test]
12701301
fn test_parse_server_struct_url_only() {
12711302
// Test server struct parsing via AutoRouterInput

0 commit comments

Comments
 (0)