Skip to content

Commit

Permalink
Merge branch 'main' of github.com:demeter-run/fabric
Browse files Browse the repository at this point in the history
  • Loading branch information
gonzalezzfelipe committed Sep 5, 2024
2 parents ad77217 + a5accbc commit d1e6d48
Show file tree
Hide file tree
Showing 17 changed files with 331 additions and 382 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/domain/auth/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use super::{error::Error, project::cache::ProjectDrivenCache};

use crate::domain::Result;

#[cfg_attr(test, mockall::automock)]
#[async_trait::async_trait]
pub trait Auth0Driven: Send + Sync {
fn verify(&self, token: &str) -> Result<String>;
Expand Down
1 change: 1 addition & 0 deletions src/domain/event/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ impl Event {
}
}

#[cfg_attr(test, mockall::automock)]
#[async_trait::async_trait]
pub trait EventDrivenBridge: Send + Sync {
async fn dispatch(&self, event: Event) -> Result<()>;
Expand Down
14 changes: 2 additions & 12 deletions src/domain/metadata/command.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,13 @@ pub async fn fetch(metadata: Arc<dyn MetadataDriven>) -> Result<Vec<CustomResour

#[cfg(test)]
mod tests {
use mockall::mock;
use crate::domain::metadata::MockMetadataDriven;

use super::*;

mock! {
pub FakeMetadataDrivenCrds { }

#[async_trait::async_trait]
impl MetadataDriven for FakeMetadataDrivenCrds {
async fn find(&self) -> Result<Vec<CustomResourceDefinition>>;
async fn find_by_kind(&self, kind: &str) -> Result<Option<CustomResourceDefinition>>;
}
}

#[tokio::test]
async fn it_should_fetch_metadata() {
let mut metadata = MockFakeMetadataDrivenCrds::new();
let mut metadata = MockMetadataDriven::new();
metadata
.expect_find()
.return_once(|| Ok(vec![CustomResourceDefinition::default()]));
Expand Down
1 change: 1 addition & 0 deletions src/domain/metadata/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use super::{error::Error, Result};

pub mod command;

#[cfg_attr(test, mockall::automock)]
#[async_trait::async_trait]
pub trait MetadataDriven: Send + Sync {
async fn find(&self) -> Result<Vec<CustomResourceDefinition>>;
Expand Down
37 changes: 11 additions & 26 deletions src/domain/project/cache.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use crate::domain::Result;

use super::{Project, ProjectSecret, ProjectUpdate, ProjectUser, ProjectUserInvite};

#[cfg_attr(test, mockall::automock)]
#[async_trait::async_trait]
pub trait ProjectDrivenCache: Send + Sync {
async fn find(&self, user_id: &str, page: &u32, page_size: &u32) -> Result<Vec<Project>>;
Expand All @@ -24,6 +25,12 @@ pub trait ProjectDrivenCache: Send + Sync {
user_id: &str,
project_id: &str,
) -> Result<Option<ProjectUser>>;
async fn find_user_invite(
&self,
project_id: &str,
page: &u32,
page_size: &u32,
) -> Result<Vec<ProjectUserInvite>>;
async fn find_user_invite_by_code(&self, code: &str) -> Result<Option<ProjectUserInvite>>;
async fn create_user_invite(&self, invite: &ProjectUserInvite) -> Result<()>;
async fn create_user_acceptance(&self, invite_id: &str, user: &ProjectUser) -> Result<()>;
Expand Down Expand Up @@ -66,33 +73,11 @@ pub async fn create_user_invite_acceptance(

#[cfg(test)]
mod tests {
use mockall::mock;

use super::*;

mock! {
pub FakeProjectDrivenCache { }

#[async_trait::async_trait]
impl ProjectDrivenCache for FakeProjectDrivenCache {
async fn find(&self, user_id: &str, page: &u32, page_size: &u32) -> Result<Vec<Project>>;
async fn find_by_namespace(&self, namespace: &str) -> Result<Option<Project>>;
async fn find_by_id(&self, id: &str) -> Result<Option<Project>>;
async fn create(&self, project: &Project) -> Result<()>;
async fn update(&self, project: &ProjectUpdate) -> Result<()>;
async fn delete(&self, id: &str, deleted_at: &DateTime<Utc>) -> Result<()>;
async fn create_secret(&self, secret: &ProjectSecret) -> Result<()>;
async fn find_secret_by_project_id(&self, project_id: &str) -> Result<Vec<ProjectSecret>>;
async fn find_user_permission(&self,user_id: &str, project_id: &str) -> Result<Option<ProjectUser>>;
async fn find_user_invite_by_code(&self, code: &str) -> Result<Option<ProjectUserInvite>>;
async fn create_user_invite(&self, invite: &ProjectUserInvite) -> Result<()>;
async fn create_user_acceptance(&self, invite_id: &str, user: &ProjectUser) -> Result<()>;
}
}

#[tokio::test]
async fn it_should_create_project_cache() {
let mut cache = MockFakeProjectDrivenCache::new();
let mut cache = MockProjectDrivenCache::new();
cache.expect_create().return_once(|_| Ok(()));

let evt = ProjectCreated::default();
Expand All @@ -103,7 +88,7 @@ mod tests {

#[tokio::test]
async fn it_should_create_project_secret_cache() {
let mut cache = MockFakeProjectDrivenCache::new();
let mut cache = MockProjectDrivenCache::new();
cache.expect_create_secret().return_once(|_| Ok(()));

let evt = ProjectSecretCreated::default();
Expand All @@ -114,7 +99,7 @@ mod tests {

#[tokio::test]
async fn it_should_create_user_invite_cache() {
let mut cache = MockFakeProjectDrivenCache::new();
let mut cache = MockProjectDrivenCache::new();
cache.expect_create_user_invite().return_once(|_| Ok(()));

let evt = ProjectUserInviteCreated::default();
Expand All @@ -125,7 +110,7 @@ mod tests {

#[tokio::test]
async fn it_should_create_user_invite_acceptance_cache() {
let mut cache = MockFakeProjectDrivenCache::new();
let mut cache = MockProjectDrivenCache::new();
cache
.expect_create_user_acceptance()
.return_once(|_, _| Ok(()));
Expand Down
16 changes: 2 additions & 14 deletions src/domain/project/cluster.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ use crate::domain::{
Result,
};

#[cfg_attr(test, mockall::automock)]
#[async_trait::async_trait]
pub trait ProjectDrivenCluster: Send + Sync {
async fn create(&self, namespace: &Namespace) -> Result<()>;
Expand Down Expand Up @@ -55,24 +56,11 @@ pub async fn delete_manifest(

#[cfg(test)]
mod tests {
use k8s_openapi::api::core::v1::Namespace;
use mockall::mock;

use super::*;

mock! {
pub FakeProjectDrivenCluster { }

#[async_trait::async_trait]
impl ProjectDrivenCluster for FakeProjectDrivenCluster {
async fn create(&self, namespace: &Namespace) -> Result<()>;
async fn delete(&self, namespace: &Namespace) -> Result<()>;
}
}

#[tokio::test]
async fn it_should_apply_manifest() {
let mut cluster = MockFakeProjectDrivenCluster::new();
let mut cluster = MockProjectDrivenCluster::new();
cluster.expect_create().return_once(|_| Ok(()));

let project = ProjectCreated::default();
Expand Down
Loading

0 comments on commit d1e6d48

Please sign in to comment.