From 7df6fe5821fc79ecf9fe94c6d1779bbf929f4360 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Thu, 12 Jun 2025 21:26:22 +0000 Subject: [PATCH] Added test (#10) Reviewed-on: https://git.kundeng.us/phoenix/icarus_envy/pulls/10 Co-authored-by: kdeng00 Co-committed-by: kdeng00 --- .env | 1 + .gitea/workflows/workflow.yaml | 65 ++++++++++++++++++++++++++++++++++ Cargo.toml | 2 +- src/environment.rs | 1 - src/keys.rs | 2 +- src/lib.rs | 15 -------- tests/test.rs | 35 +++++++++++++++--- 7 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 .gitea/workflows/workflow.yaml diff --git a/.env b/.env index b9f4ef5..bbbe3a5 100644 --- a/.env +++ b/.env @@ -6,3 +6,4 @@ POSTGRES_MAIN_PASSWORD=password POSTGRES_MAIN_DB=my_db POSTGRES_MAIN_HOST=localhost DATABASE_URL=postgres://${POSTGRES_MAIN_USER}:${POSTGRES_MAIN_PASSWORD}@${POSTGRES_MAIN_HOST}:5432/${POSTGRES_MAIN_DB} +ICARUS_BASE_API_URL=https://icarus.com diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml new file mode 100644 index 0000000..3454d82 --- /dev/null +++ b/.gitea/workflows/workflow.yaml @@ -0,0 +1,65 @@ +name: Rust Build + +on: + push: + branches: + - main + - devel + pull_request: + branches: + - main + - devel + +jobs: + check: + name: Check + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo check + + test: + name: Test Suite + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo test + + fmt: + name: Rustfmt + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: rustup component add rustfmt + - run: cargo fmt --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: rustup component add clippy + - run: cargo clippy -- -D warnings + + build: + name: build + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.86.0 + - run: cargo build + diff --git a/Cargo.toml b/Cargo.toml index ca6936c..d9dfe0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_envy" -version = "0.2.0" +version = "0.2.1" edition = "2024" rust-version = "1.86" diff --git a/src/environment.rs b/src/environment.rs index e43eca0..672c297 100644 --- a/src/environment.rs +++ b/src/environment.rs @@ -1,4 +1,3 @@ - pub async fn get_db_url() -> String { dotenvy::dotenv().ok(); std::env::var(crate::keys::DB_URL).expect(crate::keys::error::DB_URL) diff --git a/src/keys.rs b/src/keys.rs index b883de4..5f77cab 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -3,7 +3,7 @@ pub const DB_URL: &str = "DATABASE_URL"; // Environment key for secret main key // Used for the icarus app -pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY"; +pub const SECRET_MAIN_KEY: &str = "SECRET_MAIN_KEY"; // Environment key for secret key // Generic use of secret key that could be found in various apps diff --git a/src/lib.rs b/src/lib.rs index 467b8af..5019657 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,17 +1,2 @@ pub mod environment; pub mod keys; - -pub fn add(left: u64, right: u64) -> u64 { - left + right -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } -} diff --git a/tests/test.rs b/tests/test.rs index 3e31a84..b5d39bb 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -1,27 +1,52 @@ - #[cfg(test)] mod tests { #[test] fn test_dburl() { let result = async_std::task::block_on(icarus_envy::environment::get_db_url()); - assert_eq!(result, "postgres://myuser:password@localhost:5432/my_db", "DATABASE_URL does not match {:?}", result); + assert_eq!( + result, "postgres://myuser:password@localhost:5432/my_db", + "DATABASE_URL does not match {:?}", + result + ); } #[test] fn test_get_secret_main_key() { let result = async_std::task::block_on(icarus_envy::environment::get_secret_main_key()); - assert_eq!(result, "Somesupersecretpassword!!!45345435", "SECRET_MAIN_KEY does not match {:?}", result) + assert_eq!( + result, "Somesupersecretpassword!!!45345435", + "SECRET_MAIN_KEY does not match {:?}", + result + ) } #[test] fn test_get_secret_key() { let result = async_std::task::block_on(icarus_envy::environment::get_secret_key()); - assert_eq!(result, "AmIGoodEnoughForYou?", "SECRET_KEY does not match {:?}", result) + assert_eq!( + result, "AmIGoodEnoughForYou?", + "SECRET_KEY does not match {:?}", + result + ) } #[test] fn test_get_root_directory() { let result = async_std::task::block_on(icarus_envy::environment::get_root_directory()); - assert_eq!(result, "/path/to/root", "ROOT_DIRECTORY does not match {:?}", result) + assert_eq!( + result, "/path/to/root", + "ROOT_DIRECTORY does not match {:?}", + result + ) + } + + #[test] + fn test_get_icarus_base_api_url() { + let result = async_std::task::block_on(icarus_envy::environment::get_icarus_base_api_url()); + assert_eq!( + result, "https://icarus.com", + "ICARUS_BASE_API_URL does not match {:?}", + result + ) } }