Skip to content

steenhansen/clojure-text-diff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



Rational 

The Clojure function 'text-diff/are-vars-eq' helps to quickly show small differences during testing with large bodies of html, convoluted maps/sets/lists/vectors, and unordered maps/sets. When unequal actual and expected values are tested, a short description of the similarities and differences are printed in the REPL. First, leading identical sections are displayed, followed by differences, and then finally identical ending sections.

How to use

;; clojure test file
(ns my-test-ns
    (:require [clojure.test :refer [is]])
    (:require [text-diff :refer [are-vars-eq]]))

(deftest test-html-values []
  (let [actual-value   "<same>DIFFERENT</same>"
        expected-value "<same>different</same>"
        [diff-actual diff-expected] (are-vars-eq actual-value expected-value)]
    (is (= diff-actual diff-expected)))
)
;; repl output
|START|"<same>"
|DIFF1|"e>DIFFERENT</"
|DIFF2|"e>different</"
|  END|"</same>"

expected (= diff-actual diff-expected)
actual (not (= "DIFFERENT" "different"))
false

###Examples

Hard to see \n versus \r


Hard to see 1 versus L


Hard to see c versus X


Hard to see X versus Y


Hard to see 1/3 versus 1/4


Hard to see ending \n


Hard to see 8 versus 7


Odd string behavior that is to be expected from string differences inside maps/sets/lists/vectors. Quote delimiters cause extra blank spaces because variable types are not taken into account.

Hard to see 8 versus 7

About

Colored text diffs for Clojure tests

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages