- Sustituye `service::test::*` por `web::test::*` (migración de actix-web a
axum).
- Extrae `setup()` en los módulos que sólo renderizan componentes,
evitando levantar un router completo en cada test.
- Elimina los `env::set_var("PAGETOP_RUN_MODE", "test")` manuales, ya
cubiertos por la *feature* `testing`.
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use pagetop::prelude::*;
|
|
|
|
use serde::Deserialize;
|
|
|
|
include_config!(SETTINGS: Settings => [
|
|
"test.string_value" => "Test String",
|
|
"test.int_value" => -321,
|
|
"test.float_value" => 2.3456,
|
|
]);
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct Settings {
|
|
pub test: Test,
|
|
}
|
|
|
|
#[derive(Debug, Deserialize)]
|
|
pub struct Test {
|
|
pub string_value: String,
|
|
pub int_value: i32,
|
|
pub float_value: f32,
|
|
}
|
|
|
|
// La *feature* `testing` (activo con `cargo ts` / `cargo tw`) fija el modo "test" en tiempo de
|
|
// compilación dentro de `config::CONFIG_VALUES`, de forma que `global::SETTINGS` y cualquier
|
|
// `include_config!` local cargan automáticamente la configuración del modo "test".
|
|
|
|
#[pagetop::test]
|
|
async fn check_global_config() {
|
|
assert_eq!(global::SETTINGS.app.run_mode, "test");
|
|
assert_eq!(global::SETTINGS.app.name, "Testing");
|
|
assert_eq!(global::SETTINGS.server.bind_port, 9000);
|
|
}
|
|
|
|
#[pagetop::test]
|
|
async fn check_local_config() {
|
|
assert_eq!(SETTINGS.test.string_value, "Modified value");
|
|
assert_eq!(SETTINGS.test.int_value, -321);
|
|
assert_eq!(SETTINGS.test.float_value, 8.7654);
|
|
}
|