feat: refresh creation config and visual assets
This commit is contained in:
@@ -383,6 +383,14 @@ impl AppState {
|
||||
self.cache_test_creation_entry_config(config.clone());
|
||||
Ok(config)
|
||||
}
|
||||
#[cfg(debug_assertions)]
|
||||
Err(error) if is_missing_creation_entry_config_procedure(&error) => {
|
||||
warn!(
|
||||
error = %error,
|
||||
"本地 SpacetimeDB 缺少创作入口配置 procedure,使用后端默认入口配置兜底"
|
||||
);
|
||||
Ok(crate::creation_entry_config::default_creation_entry_config_response())
|
||||
}
|
||||
#[cfg(test)]
|
||||
Err(_) => Ok(self.read_test_creation_entry_config()),
|
||||
#[cfg(not(test))]
|
||||
@@ -1247,12 +1255,37 @@ fn build_admin_runtime(
|
||||
}))
|
||||
}
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
fn is_missing_creation_entry_config_procedure(error: &SpacetimeClientError) -> bool {
|
||||
match error {
|
||||
SpacetimeClientError::Procedure(message) => {
|
||||
message.contains("No such procedure")
|
||||
}
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use module_ai::{AiTaskKind, generate_ai_task_id};
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn detects_missing_creation_entry_config_procedure_for_debug_fallback() {
|
||||
assert!(is_missing_creation_entry_config_procedure(
|
||||
&SpacetimeClientError::Procedure(
|
||||
"No such procedure: get_creation_entry_config".to_string(),
|
||||
),
|
||||
));
|
||||
assert!(is_missing_creation_entry_config_procedure(
|
||||
&SpacetimeClientError::Procedure("No such procedure".to_string()),
|
||||
));
|
||||
assert!(!is_missing_creation_entry_config_procedure(
|
||||
&SpacetimeClientError::Timeout,
|
||||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn app_state_exposes_usable_ai_task_service() {
|
||||
let state = AppState::new(AppConfig::default()).expect("state should build");
|
||||
|
||||
Reference in New Issue
Block a user