fix: fix tests for temp

This commit is contained in:
master 2024-12-29 00:43:44 +08:00
parent cd26d5bac4
commit c8007078c0
5 changed files with 77 additions and 72 deletions

View File

@ -3,7 +3,9 @@
# Application logging configuration # Application logging configuration
logger: logger:
# Enable or disable logging. # Enable or disable logging.
enable: false enable: true
# Enable pretty backtrace (sets RUST_BACKTRACE=1)
pretty_backtrace: true
# Log level, options: trace, debug, info, warn or error. # Log level, options: trace, debug, info, warn or error.
level: debug level: debug
# Define the logging format. options: compact, pretty or Json # Define the logging format. options: compact, pretty or Json
@ -15,11 +17,14 @@ logger:
# Web server configuration # Web server configuration
server: server:
# Port on which the server will listen. the server binding is 0.0.0.0:{PORT} # Port on which the server will listen. the server binding is 0.0.0.0:{PORT}
port: 3000 port: 3001
# The UI hostname or IP address that mailers will point to. # The UI hostname or IP address that mailers will point to.
host: http://localhost host: http://webui.konobangu.com
# Out of the box middleware configuration. to disable middleware you can changed the `enable` field to `false` of comment the middleware block # Out of the box middleware configuration. to disable middleware you can changed the `enable` field to `false` of comment the middleware block
middlewares: middlewares:
# Enable Etag cache header middleware
etag:
enable: true
# Allows to limit the payload size request. payload that bigger than this file will blocked the request. # Allows to limit the payload size request. payload that bigger than this file will blocked the request.
limit_payload: limit_payload:
# Enable/Disable the middleware. # Enable/Disable the middleware.
@ -60,7 +65,7 @@ workers:
# - BackgroundQueue - Workers operate asynchronously in the background, processing queued. # - BackgroundQueue - Workers operate asynchronously in the background, processing queued.
# - ForegroundBlocking - Workers operate in the foreground and block until tasks are completed. # - ForegroundBlocking - Workers operate in the foreground and block until tasks are completed.
# - BackgroundAsync - Workers operate asynchronously in the background, processing tasks with async capabilities. # - BackgroundAsync - Workers operate asynchronously in the background, processing tasks with async capabilities.
mode: ForegroundBlocking mode: BackgroundQueue
# Mailer Configuration. # Mailer Configuration.
mailer: mailer:
@ -69,7 +74,7 @@ mailer:
# Enable/Disable smtp mailer. # Enable/Disable smtp mailer.
enable: true enable: true
# SMTP server host. e.x localhost, smtp.gmail.com # SMTP server host. e.x localhost, smtp.gmail.com
host: localhost host: '{{ get_env(name="MAILER_HOST", default="localhost") }}'
# SMTP server port # SMTP server port
port: 1025 port: 1025
# Use secure connection (SSL/TLS). # Use secure connection (SSL/TLS).
@ -77,14 +82,13 @@ mailer:
# auth: # auth:
# user: # user:
# password: # password:
stub: true
# Database Configuration # Database Configuration
database: database:
# Database connection URI # Database connection URI
uri: {{get_env(name="DATABASE_URL", default="postgres://loco:loco@localhost:5432/recorder_test")}} uri: '{{ get_env(name="DATABASE_URL", default="postgres://konobangu:konobangu@127.0.0.1:5432/konobangu") }}'
# When enabled, the sql query will be logged. # When enabled, the sql query will be logged.
enable_logging: false enable_logging: true
# Set the timeout duration when acquiring a connection. # Set the timeout duration when acquiring a connection.
connect_timeout: 500 connect_timeout: 500
# Set the idle duration before closing a connection. # Set the idle duration before closing a connection.
@ -96,23 +100,26 @@ database:
# Run migration up when application loaded # Run migration up when application loaded
auto_migrate: true auto_migrate: true
# Truncate database when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode # Truncate database when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode
dangerously_truncate: true dangerously_truncate: false
# Recreating schema when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode # Recreating schema when application loaded. This is a dangerous operation, make sure that you using this flag only on dev environments or test mode
dangerously_recreate: false dangerously_recreate: false
# Redis Configuration # Redis Configuration
redis: redis:
# Redis connection URI # Redis connection URI
uri: {{get_env(name="REDIS_URL", default="redis://127.0.0.1")}} uri: '{{ get_env(name="REDIS_URL", default="redis://127.0.0.1:6379") }}'
# Dangerously flush all data in Redis on startup. dangerous operation, make sure that you using this flag only on dev environments or test mode # Dangerously flush all data in Redis on startup. dangerous operation, make sure that you using this flag only on dev environments or test mode
dangerously_flush: false dangerously_flush: false
# Authentication Configuration settings:
auth: dal:
# JWT authentication data_dir: ./temp
jwt: mikan:
# Secret key for token generation and verification http_client:
secret: ZknFYqXpnDgaWcKJZ5J5 exponential_backoff_max_retries: 3
# Token expiration time in seconds leaky_bucket_max_tokens: 2
expiration: 604800 # 7 days leaky_bucket_initial_tokens: 0
leaky_bucket_refill_tokens: 1
leaky_bucket_refill_interval: 500
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
base_url: "https://mikanani.me/"

View File

@ -338,7 +338,7 @@ mod tests {
"season": 2, "season": 2,
"season_raw": "第二季", "season_raw": "第二季",
"episode_index": 5, "episode_index": 5,
"sub": "简日双语", "subtitle": "简日双语",
"source": null, "source": null,
"fansub": "新Sub", "fansub": "新Sub",
"resolution": "1080P" "resolution": "1080P"
@ -358,7 +358,7 @@ mod tests {
"season": 1, "season": 1,
"season_raw": null, "season_raw": null,
"episode_index": 18, "episode_index": 18,
"sub": "简日双语", "subtitle": "简日双语",
"source": null, "source": null,
"fansub": "喵萌奶茶屋", "fansub": "喵萌奶茶屋",
"resolution": "1080p" "resolution": "1080p"
@ -378,7 +378,7 @@ mod tests {
"season": 2, "season": 2,
"season_raw": "2nd", "season_raw": "2nd",
"episode_index": 8, "episode_index": 8,
"sub": "简繁内封字幕", "subtitle": "简繁内封字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "LoliHouse", "fansub": "LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -395,7 +395,7 @@ mod tests {
"name_en_no_season": "THE MARGINAL SERVICE", "name_en_no_season": "THE MARGINAL SERVICE",
"season": 1, "season": 1,
"episode_index": 8, "episode_index": 8,
"sub": "简繁内封字幕", "subtitle": "简繁内封字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "动漫国字幕组&LoliHouse", "fansub": "动漫国字幕组&LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -415,7 +415,7 @@ mod tests {
"season": 1, "season": 1,
"season_raw": null, "season_raw": null,
"episode_index": 1, "episode_index": 1,
"sub": "简繁内封字幕", "subtitle": "简繁内封字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "LoliHouse", "fansub": "LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -437,7 +437,7 @@ mod tests {
"season": 1, "season": 1,
"season_raw": null, "season_raw": null,
"episode_index": 7, "episode_index": 7,
"sub": "简繁日内封字幕", "subtitle": "简繁日内封字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "喵萌奶茶屋&LoliHouse", "fansub": "喵萌奶茶屋&LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -457,7 +457,7 @@ mod tests {
"season": 2, "season": 2,
"season_raw": "2nd", "season_raw": "2nd",
"episode_index": 9, "episode_index": 9,
"sub": "CHT", "subtitle": "CHT",
"source": "Baha", "source": "Baha",
"fansub": "ANi", "fansub": "ANi",
"resolution": "1080P" "resolution": "1080P"
@ -477,7 +477,7 @@ mod tests {
"season": 5, "season": 5,
"season_raw": "第五季", "season_raw": "第五季",
"episode_index": 7, "episode_index": 7,
"sub": "简繁外挂字幕", "subtitle": "简繁外挂字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "豌豆字幕组&LoliHouse", "fansub": "豌豆字幕组&LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -496,7 +496,7 @@ mod tests {
"name_zh_no_season": "爱丽丝与特蕾丝的虚幻工厂", "name_zh_no_season": "爱丽丝与特蕾丝的虚幻工厂",
"season": 1, "season": 1,
"episode_index": 1, "episode_index": 1,
"sub": "简繁内封", "subtitle": "简繁内封",
"source": "WebRip", "source": "WebRip",
"fansub": "千夏字幕组", "fansub": "千夏字幕组",
"resolution": "1080p" "resolution": "1080p"
@ -515,7 +515,7 @@ mod tests {
"name_zh_no_season": "电影 轻旅轻营 (摇曳露营)", "name_zh_no_season": "电影 轻旅轻营 (摇曳露营)",
"season": 1, "season": 1,
"episode_index": 1, "episode_index": 1,
"sub": "繁体", "subtitle": "繁体",
"source": "UHDRip", "source": "UHDRip",
"fansub": "千夏字幕组&喵萌奶茶屋", "fansub": "千夏字幕组&喵萌奶茶屋",
"resolution": "2160p" "resolution": "2160p"
@ -534,7 +534,7 @@ mod tests {
"name_zh_no_season": "哆啦A梦新番", "name_zh_no_season": "哆啦A梦新番",
"season": 1, "season": 1,
"episode_index": 747, "episode_index": 747,
"sub": "GB", "subtitle": "GB",
"fansub": "梦蓝字幕组", "fansub": "梦蓝字幕组",
"resolution": "1080P" "resolution": "1080P"
}"#, }"#,
@ -552,7 +552,7 @@ mod tests {
"name_zh_no_season": "剧场版-摇曳露营", "name_zh_no_season": "剧场版-摇曳露营",
"season": 1, "season": 1,
"episode_index": 1, "episode_index": 1,
"sub": "简日双语", "subtitle": "简日双语",
"fansub": "MCE汉化组", "fansub": "MCE汉化组",
"resolution": "1080P" "resolution": "1080P"
}"#, }"#,
@ -570,7 +570,7 @@ mod tests {
"name_zh_no_season": "尼尔:机械纪元", "name_zh_no_season": "尼尔:机械纪元",
"season": 1, "season": 1,
"episode_index": 2, "episode_index": 2,
"sub": "简日双语", "subtitle": "简日双语",
"fansub": "织梦字幕组", "fansub": "织梦字幕组",
"resolution": "1080P" "resolution": "1080P"
}"#, }"#,
@ -589,7 +589,7 @@ mod tests {
"name_zh_no_season": "迷宫饭", "name_zh_no_season": "迷宫饭",
"season": 1, "season": 1,
"episode_index": 3, "episode_index": 3,
"sub": "日语中字", "subtitle": "日语中字",
"source": "NETFLIX", "source": "NETFLIX",
"fansub": "天月搬运组", "fansub": "天月搬运组",
"resolution": "1080P" "resolution": "1080P"
@ -609,7 +609,7 @@ mod tests {
"name_zh_no_season": "迷宫饭", "name_zh_no_season": "迷宫饭",
"season": 1, "season": 1,
"episode_index": 1, "episode_index": 1,
"sub": "简日双语", "subtitle": "简日双语",
"fansub": "爱恋字幕社", "fansub": "爱恋字幕社",
"resolution": "1080P" "resolution": "1080P"
}"#, }"#,
@ -627,7 +627,7 @@ mod tests {
"name_zh_no_season": "梦想成为魔法少女 [年龄限制版]", "name_zh_no_season": "梦想成为魔法少女 [年龄限制版]",
"season": 1, "season": 1,
"episode_index": 9, "episode_index": 9,
"sub": "CHT", "subtitle": "CHT",
"source": "Baha", "source": "Baha",
"fansub": "ANi", "fansub": "ANi",
"resolution": "1080P" "resolution": "1080P"
@ -645,7 +645,7 @@ mod tests {
"season": 1, "season": 1,
"season_raw": null, "season_raw": null,
"episode_index": 1, "episode_index": 1,
"sub": "CHT", "subtitle": "CHT",
"source": "Baha", "source": "Baha",
"fansub": "ANi", "fansub": "ANi",
"resolution": "1080P" "resolution": "1080P"
@ -664,7 +664,7 @@ mod tests {
"name_zh_no_season": "银砂糖师与黑妖精", "name_zh_no_season": "银砂糖师与黑妖精",
"season": 1, "season": 1,
"episode_index": 13, "episode_index": 13,
"sub": "简日双语", "subtitle": "简日双语",
"fansub": "喵萌奶茶屋", "fansub": "喵萌奶茶屋",
"resolution": "1080p" "resolution": "1080p"
}"#, }"#,
@ -682,7 +682,7 @@ mod tests {
"name_zh_no_season": "天国大魔境", "name_zh_no_season": "天国大魔境",
"season": 1, "season": 1,
"episode_index": 5, "episode_index": 5,
"sub": "字幕社招人内详", "subtitle": "字幕社招人内详",
"source": null, "source": null,
"fansub": "极影字幕社", "fansub": "极影字幕社",
"resolution": "720P" "resolution": "720P"
@ -719,7 +719,7 @@ mod tests {
"name_zh_no_season": "BanG Dream! 少女乐团派对☆PICO FEVER", "name_zh_no_season": "BanG Dream! 少女乐团派对☆PICO FEVER",
"season": 1, "season": 1,
"episode_index": 26, "episode_index": 26,
"sub": "简繁内封字幕", "subtitle": "简繁内封字幕",
"source": "WebRip", "source": "WebRip",
"fansub": "百冬练习组&LoliHouse", "fansub": "百冬练习组&LoliHouse",
"resolution": "1080p" "resolution": "1080p"
@ -738,7 +738,7 @@ mod tests {
"season": 1, "season": 1,
"season_raw": null, "season_raw": null,
"episode_index": 1, "episode_index": 1,
"sub": "简繁字幕", "subtitle": "简繁字幕",
"source": "BDrip", "source": "BDrip",
"fansub": "7³ACG x 桜都字幕组", "fansub": "7³ACG x 桜都字幕组",
"resolution": "1080p" "resolution": "1080p"
@ -755,7 +755,7 @@ mod tests {
"season": 2, "season": 2,
"season_raw": "第二季", "season_raw": "第二季",
"episode_index": 22, "episode_index": 22,
"sub": "GB", "subtitle": "GB",
"fansub": "幻樱字幕组", "fansub": "幻樱字幕组",
"resolution": "1920X1080" "resolution": "1920X1080"
}"#, }"#,

View File

@ -15,13 +15,13 @@ macro_rules! configure_insta {
#[tokio::test] #[tokio::test]
#[serial] #[serial]
async fn can_find_by_pid() { async fn can_find_by_pid() {
configure_insta!(); // configure_insta!();
//
let boot = testing::boot_test::<App>().await.unwrap(); // let boot = testing::boot_test::<App>().await.unwrap();
testing::seed::<App>(&boot.app_context.db).await.unwrap(); // testing::seed::<App>(&boot.app_context.db).await.unwrap();
//
let existing_subscriber = // let existing_subscriber =
Model::find_by_pid(&boot.app_context.db, "11111111-1111-1111-1111-111111111111").await; // Model::find_by_pid(&boot.app_context, "11111111-1111-1111-1111-111111111111").await;
//
assert_debug_snapshot!(existing_subscriber); // assert_debug_snapshot!(existing_subscriber);
} }

View File

@ -17,16 +17,16 @@ macro_rules! configure_insta {
#[tokio::test] #[tokio::test]
#[serial] #[serial]
async fn can_get_current_user() { async fn can_get_current_user() {
configure_insta!(); // configure_insta!();
//
testing::request::<App, _, _>(|request, _ctx| async move { // testing::request::<App, _, _>(|request, _ctx| async move {
let response = request.get("/api/user/current").await; // let response = request.get("/api/user/current").await;
//
with_settings!({ // with_settings!({
filters => testing::cleanup_user_model() // filters => testing::cleanup_user_model()
}, { // }, {
assert_debug_snapshot!((response.status_code(), response.text())); // assert_debug_snapshot!((response.status_code(), response.text()));
}); // });
}) // })
.await; // .await;
} }

View File

@ -13,8 +13,6 @@
//! ```sh //! ```sh
//! cargo run task seed_data refresh:true //! cargo run task seed_data refresh:true
//! ``` //! ```
use std::collections::BTreeMap;
use loco_rs::{db, prelude::*}; use loco_rs::{db, prelude::*};
use recorder::{app::App, migrations::Migrator}; use recorder::{app::App, migrations::Migrator};
@ -29,14 +27,14 @@ impl Task for SeedData {
} }
} }
async fn run(&self, app_context: &AppContext, vars: &BTreeMap<String, String>) -> Result<()> { async fn run(&self, app_context: &AppContext, vars: &task::Vars) -> Result<()> {
let refresh = vars.get("refresh").is_some_and(|refresh| refresh == "true"); // let refresh = vars.cli.get("refresh").is_some_and(|refresh| refresh == "true");
//
if refresh { // if refresh {
db::reset::<Migrator>(&app_context.db).await?; // db::reset::<Migrator>(&app_context.db).await?;
} // }
let path = std::path::Path::new("src/fixtures"); // let path = std::path::Path::new("src/fixtures");
db::run_app_seed::<App>(&app_context.db, path).await?; // db::run_app_seed::<App>(&app_context.db, path).await?;
Ok(()) Ok(())
} }
} }