domain: add Sharing entities and ports (ShareScope, ShareTarget, ShareLink, InviteCode, VisibilityFilter)

This commit is contained in:
2026-05-31 03:33:00 +02:00
parent 1d3060fa12
commit ba53e0fa70
12 changed files with 302 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
use domain::entities::{LinkAccessLevel, ShareLink};
use domain::value_objects::SystemId;
#[test]
fn new_link_is_valid() {
let link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
assert!(link.is_valid());
assert_eq!(link.use_count, 0);
}
#[test]
fn deactivated_invalid() {
let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
link.deactivate();
assert!(!link.is_valid());
}
#[test]
fn max_uses_exhausted() {
let mut link = ShareLink::new(SystemId::new(), "tok123", LinkAccessLevel::ViewOnly);
link.max_uses = Some(2);
link.record_use();
link.record_use();
assert!(!link.is_valid());
}