3 Commits

Author SHA1 Message Date
d84078d6c3 💚 Removed unused duplicated function
Some checks failed
Build & test / build (push) Failing after 10m43s
2025-03-08 19:18:16 +01:00
f14543af6b ♻️ Removed Makefile, refactored schema in tests
Some checks failed
Build & test / build (push) Has been cancelled
2025-03-08 19:09:43 +01:00
d260b2d676 💚 Added multi_thread flavor to tokio::test
Some checks failed
Build & test / build (push) Failing after 10m42s
2025-03-08 18:11:14 +01:00
8 changed files with 17 additions and 41 deletions

View File

@ -6,7 +6,7 @@ exclude = ["examples"]
edition = "2024" edition = "2024"
rust-version = "1.85" rust-version = "1.85"
authors = ["Martin Berg Alstad"] authors = ["Martin Berg Alstad"]
homepage = "emberal.github.io" homepage = "martials.no"
[package] [package]
name = "lib" name = "lib"

View File

@ -1,15 +0,0 @@
[tasks.clippy]
command = "cargo"
args = ["clippy", "--all-targets", "--all-features", "--", "-D", "warnings"]
[tasks.fmt]
command = "cargo"
args = ["fmt", "--all"]
[tasks.test]
command = "cargo"
args = ["test", "--all-features"]
[tasks.coverage]
command = "cargo"
args = ["llvm-cov", "--all-features"]

View File

@ -2,7 +2,7 @@
# see https://diesel.rs/guides/configuring-diesel-cli # see https://diesel.rs/guides/configuring-diesel-cli
[print_schema] [print_schema]
file = "src/schema.rs" file = "tests/schema.rs"
custom_type_derives = ["diesel::query_builder::QueryId", "Clone"] custom_type_derives = ["diesel::query_builder::QueryId", "Clone"]
[migrations_directory] [migrations_directory]

View File

@ -5,15 +5,9 @@ use lib::diesel_crud_derive::{
use lib::diesel_crud_trait::DieselCrudCreate; use lib::diesel_crud_trait::DieselCrudCreate;
use test_containers::create_test_containers_pool; use test_containers::create_test_containers_pool;
mod schema;
#[cfg(test)] #[cfg(test)]
pub mod test_containers; mod test_containers;
diesel::table! {
user (email) {
#[max_length = 255]
email -> Varchar,
}
}
#[derive( #[derive(
Debug, Debug,
@ -29,19 +23,19 @@ diesel::table! {
DieselCrudUpdate, DieselCrudUpdate,
)] )]
#[diesel_crud(insert = InsertUser)] #[diesel_crud(insert = InsertUser)]
#[diesel(table_name = user)] #[diesel(table_name = schema::user)]
struct User { struct User {
#[diesel_crud(pk)] #[diesel_crud(pk)]
email: String, email: String,
} }
#[derive(Clone, Insertable)] #[derive(Clone, Insertable)]
#[diesel(table_name = user)] #[diesel(table_name = schema::user)]
struct InsertUser { struct InsertUser {
email: String, email: String,
} }
#[tokio::test] #[tokio::test(flavor = "multi_thread")]
async fn test_insert_user() { async fn test_insert_user() {
let container = create_test_containers_pool().await.unwrap(); let container = create_test_containers_pool().await.unwrap();
let mut conn = container.pool.get().await.unwrap(); let mut conn = container.pool.get().await.unwrap();

View File

@ -0,0 +1,6 @@
diesel::table! {
user (email) {
#[max_length = 255]
email -> Varchar,
}
}

View File

@ -1,19 +1,11 @@
use diesel_migrations::EmbeddedMigrations; use diesel_migrations::EmbeddedMigrations;
use lib::diesel::migration::run_migrations; use lib::diesel::migration::run_migrations;
use lib::test::test_containers::{ContainerError, TestContainer}; use lib::test::test_containers::{ContainerError, TestContainer};
use testcontainers_modules::postgres::Postgres;
use testcontainers_modules::testcontainers::runners::AsyncRunner;
use testcontainers_modules::testcontainers::{ContainerAsync, TestcontainersError};
pub async fn create_test_containers_pool() -> Result<TestContainer, ContainerError> { pub async fn create_test_containers_pool() -> Result<TestContainer, ContainerError> {
let test_container = lib::test::test_containers::create_test_containers_pool().await?; let test_container = lib::test::test_containers::create_test_containers_pool().await?;
let pool = &test_container.pool; let connection = test_container.pool.get().await?;
let connection = pool.get().await?;
const MIGRATIONS: EmbeddedMigrations = diesel_migrations::embed_migrations!("./migrations"); const MIGRATIONS: EmbeddedMigrations = diesel_migrations::embed_migrations!("./migrations");
run_migrations(connection, MIGRATIONS).await?; run_migrations(connection, MIGRATIONS).await?;
Ok(test_container) Ok(test_container)
} }
pub async fn create_postgres_container() -> Result<ContainerAsync<Postgres>, TestcontainersError> {
Postgres::default().start().await
}

View File

@ -4,10 +4,10 @@ run:
cargo run cargo run
fmt: fmt:
cargo fmt cargo fmt --all
lint: lint:
cargo clippy cargo clippy --all-targets --all-features -- -D warnings
release: release:
cargo build --release cargo build --release

View File

@ -13,8 +13,7 @@ pub async fn run_migrations<A>(
where where
A: AsyncConnection<Backend = Pg> + 'static, A: AsyncConnection<Backend = Pg> + 'static,
{ {
let mut async_wrapper: AsyncConnectionWrapper<A> = let mut async_wrapper = AsyncConnectionWrapper::<A>::from(async_connection);
AsyncConnectionWrapper::from(async_connection);
tokio::task::spawn_blocking(move || { tokio::task::spawn_blocking(move || {
async_wrapper.run_pending_migrations(migrations).unwrap(); async_wrapper.run_pending_migrations(migrations).unwrap();