diff options
Diffstat (limited to 'tests/test-custom-ordering-reverse-lines.el')
| -rw-r--r-- | tests/test-custom-ordering-reverse-lines.el | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/tests/test-custom-ordering-reverse-lines.el b/tests/test-custom-ordering-reverse-lines.el deleted file mode 100644 index 3c71362d..00000000 --- a/tests/test-custom-ordering-reverse-lines.el +++ /dev/null @@ -1,131 +0,0 @@ -;;; test-custom-ordering-reverse-lines.el --- Tests for cj/--reverse-lines -*- lexical-binding: t; -*- - -;;; Commentary: -;; Tests for the cj/--reverse-lines function from custom-ordering.el -;; -;; This function reverses the order of lines in a region. -;; The first line becomes last, last becomes first, etc. -;; -;; Examples: -;; Input: "line1\nline2\nline3" -;; Output: "line3\nline2\nline1" -;; -;; We test the NON-INTERACTIVE implementation (cj/--reverse-lines) to avoid -;; mocking region selection. This follows our testing best practice of -;; separating business logic from UI interaction. - -;;; Code: - -(require 'ert) -(require 'testutil-general) - -;; Add modules directory to load path -(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) - -;; Stub dependencies before loading the module -(defvar cj/custom-keymap (make-sparse-keymap) - "Stub keymap for testing.") - -;; Now load the actual production module -(require 'custom-ordering) - -;;; Test Helpers - -(defun test-reverse-lines (input-text) - "Test cj/--reverse-lines on INPUT-TEXT. -Returns the transformed string." - (with-temp-buffer - (insert input-text) - (cj/--reverse-lines (point-min) (point-max)))) - -;;; Normal Cases - -(ert-deftest test-reverse-lines-three-lines () - "Should reverse three lines." - (let ((result (test-reverse-lines "line1\nline2\nline3"))) - (should (string= result "line3\nline2\nline1")))) - -(ert-deftest test-reverse-lines-two-lines () - "Should reverse two lines." - (let ((result (test-reverse-lines "first\nsecond"))) - (should (string= result "second\nfirst")))) - -(ert-deftest test-reverse-lines-many-lines () - "Should reverse many lines." - (let ((result (test-reverse-lines "a\nb\nc\nd\ne"))) - (should (string= result "e\nd\nc\nb\na")))) - -(ert-deftest test-reverse-lines-with-content () - "Should reverse lines with actual content." - (let ((result (test-reverse-lines "apple banana\ncherry date\negg fig"))) - (should (string= result "egg fig\ncherry date\napple banana")))) - -(ert-deftest test-reverse-lines-bidirectional () - "Should reverse back and forth correctly." - (let* ((original "line1\nline2\nline3") - (reversed (test-reverse-lines original)) - (back (test-reverse-lines reversed))) - (should (string= reversed "line3\nline2\nline1")) - (should (string= back original)))) - -;;; Boundary Cases - -(ert-deftest test-reverse-lines-empty-string () - "Should handle empty string." - (let ((result (test-reverse-lines ""))) - (should (string= result "")))) - -(ert-deftest test-reverse-lines-single-line () - "Should handle single line (no change)." - (let ((result (test-reverse-lines "single line"))) - (should (string= result "single line")))) - -(ert-deftest test-reverse-lines-empty-lines () - "Should reverse including empty lines." - (let ((result (test-reverse-lines "a\n\nb"))) - (should (string= result "b\n\na")))) - -(ert-deftest test-reverse-lines-trailing-newline () - "Should handle trailing newline." - (let ((result (test-reverse-lines "line1\nline2\n"))) - (should (string= result "\nline2\nline1")))) - -(ert-deftest test-reverse-lines-only-newlines () - "Should reverse lines that are only newlines." - (let ((result (test-reverse-lines "\n\n\n"))) - (should (string= result "\n\n\n")))) - -(ert-deftest test-reverse-lines-numbers () - "Should reverse numbered lines." - (let ((result (test-reverse-lines "1\n2\n3\n4\n5"))) - (should (string= result "5\n4\n3\n2\n1")))) - -(ert-deftest test-reverse-lines-very-long () - "Should reverse very long list." - (let* ((lines (mapcar #'number-to-string (number-sequence 1 100))) - (input (mapconcat #'identity lines "\n")) - (result (test-reverse-lines input)) - (result-lines (split-string result "\n"))) - (should (= 100 (length result-lines))) - (should (string= "100" (car result-lines))) - (should (string= "1" (car (last result-lines)))))) - -;;; Error Cases - -(ert-deftest test-reverse-lines-start-greater-than-end () - "Should error when start > end." - (should-error - (with-temp-buffer - (insert "line1\nline2") - (cj/--reverse-lines (point-max) (point-min))) - :type 'error)) - -(ert-deftest test-reverse-lines-empty-region () - "Should handle empty region (start == end)." - (with-temp-buffer - (insert "line1\nline2") - (let ((pos (/ (+ (point-min) (point-max)) 2))) - (should (string= "" (cj/--reverse-lines pos pos)))))) - -(provide 'test-custom-ordering-reverse-lines) -;;; test-custom-ordering-reverse-lines.el ends here |
