#![allow(clippy::unwrap_used)] #![allow(missing_docs)] #![allow(clippy::missing_panics_doc)]
use fraiseql_server::routes::studio::studio_shell_html;
#[test]
fn test_studio_shell_contains_l_tabs() {
let html = studio_shell_html();
assert!(
html.contains("<l-tabs"),
"Studio shell must contain <l-tabs> for section navigation"
);
}
#[test]
fn test_studio_shell_contains_all_sections() {
let html = studio_shell_html();
for section in [
"Data",
"Auth",
"Storage",
"Functions",
"Realtime",
"Metrics",
] {
assert!(html.contains(section), "Studio shell must contain section '{section}'");
}
}
#[test]
fn test_studio_shell_references_app_js() {
let html = studio_shell_html();
assert!(
html.contains("app.js"),
"Studio shell must reference the bundled JavaScript asset"
);
}
#[test]
fn test_studio_assets_contain_app_js() {
use fraiseql_server::routes::studio::StudioAssets;
let asset = StudioAssets::get("app.js");
assert!(asset.is_some(), "StudioAssets must contain app.js");
}
#[test]
fn test_studio_app_js_is_non_empty() {
use fraiseql_server::routes::studio::StudioAssets;
let asset = StudioAssets::get("app.js").expect("app.js must exist in StudioAssets");
assert!(!asset.data.is_empty(), "app.js must have non-empty content");
}