summaryrefslogtreecommitdiff
path: root/tests/test-org-roam-config-slug.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
committerCraig Jennings <c@cjennings.net>2025-11-14 02:31:16 -0600
commit9d55ed149e100b4fb3ef6f5a79d263dcb26ce835 (patch)
treeb02a77b84849f15b4302fda8f3f8e3942cb253ac /tests/test-org-roam-config-slug.el
parent7b982b1984dd37af42a2dfc9f4c3e52b27102860 (diff)
checking in modified/removed tests and other misc changes
Diffstat (limited to 'tests/test-org-roam-config-slug.el')
-rw-r--r--tests/test-org-roam-config-slug.el223
1 files changed, 0 insertions, 223 deletions
diff --git a/tests/test-org-roam-config-slug.el b/tests/test-org-roam-config-slug.el
deleted file mode 100644
index eb3149dd..00000000
--- a/tests/test-org-roam-config-slug.el
+++ /dev/null
@@ -1,223 +0,0 @@
-;;; test-org-roam-config-slug.el --- Tests for cj/--generate-roam-slug -*- lexical-binding: t; -*-
-
-;;; Commentary:
-;; Tests for the cj/--generate-roam-slug function from org-roam-config.el
-;;
-;; This function converts a title to a filename-safe slug by:
-;; 1. Converting to lowercase
-;; 2. Replacing non-alphanumeric characters with hyphens
-;; 3. Removing leading and trailing hyphens
-;;
-;; Examples:
-;; Input: "My Project Name"
-;; Output: "my-project-name"
-;;
-;; Input: "Hello, World!"
-;; Output: "hello-world"
-
-;;; Code:
-
-(require 'ert)
-(require 'testutil-general)
-
-;; Add modules directory to load path
-(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory))
-
-;; Now load the actual production module
-(require 'org-roam-config)
-
-;;; Test Helpers
-
-(defun test-slug (title)
- "Test cj/--generate-roam-slug on TITLE.
-Returns the slugified string."
- (cj/--generate-roam-slug title))
-
-;;; Normal Cases - Simple Titles
-
-(ert-deftest test-slug-simple-word ()
- "Should return lowercase simple word."
- (let ((result (test-slug "Hello")))
- (should (string= result "hello"))))
-
-(ert-deftest test-slug-multiple-words ()
- "Should replace spaces with hyphens."
- (let ((result (test-slug "My Project Name")))
- (should (string= result "my-project-name"))))
-
-(ert-deftest test-slug-already-lowercase ()
- "Should handle already lowercase text."
- (let ((result (test-slug "simple")))
- (should (string= result "simple"))))
-
-(ert-deftest test-slug-mixed-case ()
- "Should convert mixed case to lowercase."
- (let ((result (test-slug "MixedCaseTitle")))
- (should (string= result "mixedcasetitle"))))
-
-;;; Normal Cases - Punctuation
-
-(ert-deftest test-slug-with-comma ()
- "Should remove commas."
- (let ((result (test-slug "Hello, World")))
- (should (string= result "hello-world"))))
-
-(ert-deftest test-slug-with-period ()
- "Should remove periods."
- (let ((result (test-slug "Version 2.0")))
- (should (string= result "version-2-0"))))
-
-(ert-deftest test-slug-with-exclamation ()
- "Should remove exclamation marks."
- (let ((result (test-slug "Hello World!")))
- (should (string= result "hello-world"))))
-
-(ert-deftest test-slug-with-question ()
- "Should remove question marks."
- (let ((result (test-slug "What Is This?")))
- (should (string= result "what-is-this"))))
-
-(ert-deftest test-slug-with-colon ()
- "Should remove colons."
- (let ((result (test-slug "Note: Important")))
- (should (string= result "note-important"))))
-
-(ert-deftest test-slug-with-parentheses ()
- "Should remove parentheses."
- (let ((result (test-slug "Item (copy)")))
- (should (string= result "item-copy"))))
-
-;;; Normal Cases - Numbers
-
-(ert-deftest test-slug-with-numbers ()
- "Should preserve numbers."
- (let ((result (test-slug "Chapter 42")))
- (should (string= result "chapter-42"))))
-
-(ert-deftest test-slug-only-numbers ()
- "Should handle titles with only numbers."
- (let ((result (test-slug "123")))
- (should (string= result "123"))))
-
-(ert-deftest test-slug-mixed-alphanumeric ()
- "Should preserve alphanumeric characters."
- (let ((result (test-slug "Test123ABC")))
- (should (string= result "test123abc"))))
-
-;;; Boundary Cases - Multiple Consecutive Special Chars
-
-(ert-deftest test-slug-multiple-spaces ()
- "Should collapse multiple spaces into single hyphen."
- (let ((result (test-slug "Hello World")))
- (should (string= result "hello-world"))))
-
-(ert-deftest test-slug-mixed-punctuation ()
- "Should collapse mixed punctuation into single hyphen."
- (let ((result (test-slug "Hello, ... World!")))
- (should (string= result "hello-world"))))
-
-(ert-deftest test-slug-consecutive-hyphens ()
- "Should collapse consecutive hyphens."
- (let ((result (test-slug "Hello---World")))
- (should (string= result "hello-world"))))
-
-;;; Boundary Cases - Leading/Trailing Special Chars
-
-(ert-deftest test-slug-leading-space ()
- "Should remove leading hyphen from leading space."
- (let ((result (test-slug " Hello")))
- (should (string= result "hello"))))
-
-(ert-deftest test-slug-trailing-space ()
- "Should remove trailing hyphen from trailing space."
- (let ((result (test-slug "Hello ")))
- (should (string= result "hello"))))
-
-(ert-deftest test-slug-leading-punctuation ()
- "Should remove leading hyphen from leading punctuation."
- (let ((result (test-slug "...Hello")))
- (should (string= result "hello"))))
-
-(ert-deftest test-slug-trailing-punctuation ()
- "Should remove trailing hyphen from trailing punctuation."
- (let ((result (test-slug "Hello!!!")))
- (should (string= result "hello"))))
-
-(ert-deftest test-slug-leading-and-trailing ()
- "Should remove both leading and trailing hyphens."
- (let ((result (test-slug " Hello World ")))
- (should (string= result "hello-world"))))
-
-;;; Boundary Cases - Empty and Short
-
-(ert-deftest test-slug-empty-string ()
- "Should return empty string for empty input."
- (let ((result (test-slug "")))
- (should (string= result ""))))
-
-(ert-deftest test-slug-only-punctuation ()
- "Should return empty string for only punctuation."
- (let ((result (test-slug "!!!")))
- (should (string= result ""))))
-
-(ert-deftest test-slug-only-spaces ()
- "Should return empty string for only spaces."
- (let ((result (test-slug " ")))
- (should (string= result ""))))
-
-(ert-deftest test-slug-single-char ()
- "Should handle single character."
- (let ((result (test-slug "A")))
- (should (string= result "a"))))
-
-;;; Edge Cases - Special Characters
-
-(ert-deftest test-slug-with-underscore ()
- "Should replace underscores with hyphens."
- (let ((result (test-slug "my_variable_name")))
- (should (string= result "my-variable-name"))))
-
-(ert-deftest test-slug-with-slash ()
- "Should remove slashes."
- (let ((result (test-slug "path/to/file")))
- (should (string= result "path-to-file"))))
-
-(ert-deftest test-slug-with-at-sign ()
- "Should remove at signs."
- (let ((result (test-slug "user@example")))
- (should (string= result "user-example"))))
-
-(ert-deftest test-slug-with-hash ()
- "Should remove hash symbols."
- (let ((result (test-slug "#hashtag")))
- (should (string= result "hashtag"))))
-
-(ert-deftest test-slug-with-dollar ()
- "Should remove dollar signs."
- (let ((result (test-slug "$price")))
- (should (string= result "price"))))
-
-;;; Edge Cases - Unicode (if supported)
-
-(ert-deftest test-slug-with-unicode ()
- "Should remove unicode characters."
- (let ((result (test-slug "Café")))
- (should (string= result "caf"))))
-
-(ert-deftest test-slug-with-emoji ()
- "Should remove emoji."
- (let ((result (test-slug "Hello 😀 World")))
- (should (string= result "hello-world"))))
-
-;;; Edge Cases - Long Titles
-
-(ert-deftest test-slug-very-long-title ()
- "Should handle very long titles."
- (let* ((long-title (mapconcat #'identity (make-list 20 "word") " "))
- (result (test-slug long-title)))
- (should (string-prefix-p "word-" result))
- (should (string-suffix-p "-word" result))
- (should (not (string-match-p " " result)))))
-
-(provide 'test-org-roam-config-slug)
-;;; test-org-roam-config-slug.el ends here