From 06e10acf616cd58a0b915761ddf98de2e6bf6685 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Sun, 28 Jun 2026 16:23:28 +0300 Subject: [PATCH] more tests --- git/clone_progress_test.v | 13 +++++++++++++ repo_routes_test.v | 34 ++++++++++++++++++++++++++++++++++ static/css/gitly.scss | 5 +++++ 3 files changed, 52 insertions(+) create mode 100644 git/clone_progress_test.v create mode 100644 repo_routes_test.v diff --git a/git/clone_progress_test.v b/git/clone_progress_test.v new file mode 100644 index 0000000..4dda8a7 --- /dev/null +++ b/git/clone_progress_test.v @@ -0,0 +1,13 @@ +module git + +fn test_clone_progress_received_bytes_parses_mib() { + progress := 'Receiving objects: 31% (78861/251249), 54.49 MiB | 3.59 MiB/s' + + assert clone_progress_received_bytes(progress) == u64(54.49 * 1024.0 * 1024.0) +} + +fn test_clone_progress_received_bytes_uses_largest_value() { + progress := 'Receiving objects: 10% (10/100), 999.00 KiB | 1.00 MiB/s\rReceiving objects: 90% (90/100), 100.00 MiB | 4.00 MiB/s, done.' + + assert clone_progress_received_bytes(progress) == u64(100.0 * 1024.0 * 1024.0) +} diff --git a/repo_routes_test.v b/repo_routes_test.v new file mode 100644 index 0000000..521a967 --- /dev/null +++ b/repo_routes_test.v @@ -0,0 +1,34 @@ +module main + +import os +import git + +fn test_read_clone_progress_hides_initial_bare_clone_message() { + progress_path := os.join_path(os.temp_dir(), 'gitly_clone_progress_${os.getpid()}.log') + os.write_file(progress_path, + "Cloning into bare repository './repos/medvednikov/v4'...\nremote: Enumerating objects: 251249, done.\nReceiving objects: 31% (78861/251249), 54.49 MiB | 3.59 MiB/s")! + defer { + os.rm(progress_path) or {} + } + + assert read_clone_progress(progress_path) == 'remote: Enumerating objects: 251249, done.\nReceiving objects: 31% (78861/251249), 54.49 MiB | 3.59 MiB/s' +} + +fn test_clone_size_limit_marker_is_detected_and_hidden_from_progress() { + progress_path := os.join_path(os.temp_dir(), 'gitly_clone_size_limit_${os.getpid()}.log') + os.write_file(progress_path, + 'Receiving objects: 100% (10/10), 100.00 MiB | 2.00 MiB/s\n${git.clone_size_limit_marker}\n')! + defer { + os.rm(progress_path) or {} + } + + assert clone_size_limit_failed(progress_path) + assert read_clone_progress(progress_path) == 'Receiving objects: 100% (10/10), 100.00 MiB | 2.00 MiB/s' +} + +fn test_clone_size_limit_is_only_for_non_admin_not_self_hosted_instances() { + assert should_enforce_clone_size_limit(false, true) + assert !should_enforce_clone_size_limit(true, true) + assert !should_enforce_clone_size_limit(false, false) + assert !should_enforce_clone_size_limit(true, false) +} diff --git a/static/css/gitly.scss b/static/css/gitly.scss index 346c1fb..f359de8 100644 --- a/static/css/gitly.scss +++ b/static/css/gitly.scss @@ -2387,6 +2387,11 @@ form { } } +.pr-file-tree-row[hidden], +.pr-files-filter-empty[hidden] { + display: none !important; +} + .pr-file-tree-row--dir { grid-template-columns: 16px 18px minmax(0, 1fr); font-weight: 600; -- 2.39.5