structural refactor and codebase improvements
This commit is contained in:
7
crates/application/src/search/deps.rs
Normal file
7
crates/application/src/search/deps.rs
Normal file
@@ -0,0 +1,7 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use domain::ports::SearchPort;
|
||||
|
||||
pub struct SearchDeps {
|
||||
pub search_port: Arc<dyn SearchPort>,
|
||||
}
|
||||
@@ -1,15 +1,12 @@
|
||||
use domain::{
|
||||
errors::DomainError,
|
||||
models::{SearchQuery, SearchResults},
|
||||
ports::SearchPort,
|
||||
};
|
||||
use std::sync::Arc;
|
||||
|
||||
pub async fn execute(
|
||||
search_port: Arc<dyn SearchPort>,
|
||||
query: SearchQuery,
|
||||
) -> Result<SearchResults, DomainError> {
|
||||
search_port.search(&query).await
|
||||
use crate::search::deps::SearchDeps;
|
||||
|
||||
pub async fn execute(deps: &SearchDeps, query: SearchQuery) -> Result<SearchResults, DomainError> {
|
||||
deps.search_port.search(&query).await
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
pub mod deps;
|
||||
pub mod execute;
|
||||
|
||||
@@ -1,13 +1,17 @@
|
||||
use domain::models::SearchQuery;
|
||||
|
||||
use crate::search::deps::SearchDeps;
|
||||
use crate::search::execute;
|
||||
use crate::test_helpers::TestContextBuilder;
|
||||
|
||||
#[tokio::test]
|
||||
async fn returns_empty_results() {
|
||||
let b = TestContextBuilder::new();
|
||||
let deps = SearchDeps {
|
||||
search_port: b.search_port.clone(),
|
||||
};
|
||||
|
||||
let result = execute::execute(b.search_port.clone(), SearchQuery::default())
|
||||
let result = execute::execute(&deps, SearchQuery::default())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user