Skip to main content

clipmem/
lib.rs

1pub(crate) mod app;
2pub mod archive;
3pub mod capture;
4pub(crate) mod cli;
5pub(crate) mod db;
6pub(crate) mod model;
7pub(crate) mod ocr;
8pub(crate) mod platform;
9pub(crate) mod sensitive;
10
11pub use crate::cli::{run, run_cli, run_from, CliError, CliExitCode};
12
13#[cfg(test)]
14mod tests {
15    use super::{archive, capture, run_from};
16
17    #[test]
18    fn run_from_returns_parse_errors_without_exiting_process() {
19        let error = run_from(["clipmem", "recent", "--limit", "0"])
20            .expect_err("invalid arguments should return an error");
21
22        assert!(error.to_string().contains("between 1 and 250"));
23    }
24
25    #[test]
26    fn public_facades_expose_archive_and_capture_boundaries() {
27        let snapshot = capture::build_snapshot(
28            capture::CaptureContext::new(1).with_frontmost_app_name("Terminal"),
29            vec![capture::build_item(
30                0,
31                vec![capture::build_representation(
32                    "public.utf8-plain-text".to_string(),
33                    None,
34                    b"git status".to_vec(),
35                )],
36            )],
37        );
38
39        assert_eq!(archive::SearchMode::Literal.as_str(), "literal");
40        assert_eq!(snapshot.preview_text(), "git status");
41    }
42}