import gleam/string import gleeunit import gtg/app/service import gtg/app/types import gtg/atproto/tid import gtg/gitutil pub fn main() -> Nil { gleeunit.main() } pub fn parse_target_test() { let assert Ok(types.Target(handle: "alice.bsky.social", repo: "cool")) = service.parse_target("alice.bsky.social/cool") let assert Error(_) = service.parse_target("nopath") let assert Error(_) = service.parse_target("a/b/c") } pub fn parse_tangled_url_test() { let assert Ok(gitutil.RepoContext(handle: "aly.codes", repo: "tg")) = gitutil.parse_tangled_url("git@tangled.org:aly.codes/tg") let assert Ok(gitutil.RepoContext(handle: "aly.codes", repo: "tg")) = gitutil.parse_tangled_url("ssh://git@tangled.org/aly.codes/tg.git") let assert Error(_) = gitutil.parse_tangled_url("git@github.com:foo/bar") } pub fn tid_length_test() { let t = tid.new_now() let assert True = string.length(t) == 13 } pub fn target_string_test() { let assert "a/b" = types.target_string(types.Target(handle: "a", repo: "b")) }