Update version-clj tests
This commit is contained in:
parent
db908004c7
commit
4229cab9b4
4 changed files with 158 additions and 38 deletions
2
deps.edn
2
deps.edn
|
|
@ -69,7 +69,7 @@
|
|||
honeysql/honeysql {:mvn/version "1.0.444"}
|
||||
minimallist/minimallist {:mvn/version "0.0.6"}
|
||||
circleci/bond {:mvn/version "0.4.0"}
|
||||
version-clj/version-clj {:mvn/version "0.1.2"}
|
||||
version-clj/version-clj {:mvn/version "2.0.1"}
|
||||
gaka/gaka {:mvn/version "0.3.0"}
|
||||
failjure/failjure {:mvn/version "2.1.1"}}}
|
||||
:clj-nvd
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
(ns version-clj.compare-test
|
||||
(:require [clojure.test :refer [deftest are]]
|
||||
(:require #?(:clj [clojure.test :refer [deftest are]]
|
||||
:cljs [cljs.test :refer-macros [deftest are]])
|
||||
[version-clj.compare :refer [version-compare]]))
|
||||
|
||||
(deftest t-version-compare
|
||||
(are [v0 v1 r] (= (version-compare v0 v1) r)
|
||||
(are [v0 v1 r] (= r (version-compare v0 v1))
|
||||
;; Numeric Comparison
|
||||
"1.0.0" "1.0.0" 0
|
||||
"1.0.0" "1.0" 0
|
||||
|
|
@ -36,6 +37,19 @@
|
|||
"1.0-RC5" "1.0-RC20" -1
|
||||
"1.0-RC11" "1.0-RC6" 1
|
||||
|
||||
;; Comparison nested vs. value
|
||||
"1.0.0" "1.0-1.0" -1
|
||||
"1.0-1.0" "1.0.0" 1
|
||||
"1.0-0.0" "1.0.0" 0
|
||||
"1.0.0" "1.0-0.0" 0
|
||||
"1.x.0" "1.x-1.0" -1
|
||||
"1.x-1.0" "1.x.0" 1
|
||||
"1.0-612" "1.0.613" -1
|
||||
|
||||
;; Numbers are newer than strings
|
||||
"1.x.1" "1.0.1" -1
|
||||
"1.0.1" "1.x.1" 1
|
||||
|
||||
;; Releases are newer than SNAPSHOTs
|
||||
"1.0.0" "1.0.0-SNAPSHOT" 1
|
||||
"1.0.0-SNAPSHOT" "1.0.0-SNAPSHOT" 0
|
||||
|
|
|
|||
|
|
@ -1,25 +1,81 @@
|
|||
(ns version-clj.core-test
|
||||
(:require [clojure.test :refer [deftest are]]
|
||||
[version-clj.core :refer [snapshot? qualified?]]))
|
||||
(:require #?(:clj [clojure.test :refer [deftest is are]]
|
||||
:cljs [cljs.test :refer-macros [deftest is are]])
|
||||
[version-clj.core :as v]))
|
||||
|
||||
(deftest t-snapshot
|
||||
(are [v r] (= (boolean (snapshot? v)) r)
|
||||
"1.0.0" false
|
||||
"SNAPSHOT" true
|
||||
"1-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT.2" true
|
||||
"1.0-NOSNAPSHOT" false))
|
||||
(deftest t-snapshot?
|
||||
(are [v r] (= r (boolean (v/snapshot? v)))
|
||||
"1.0.0" false
|
||||
"SNAPSHOT" true
|
||||
"1-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT.2" true
|
||||
"1.0-NOSNAPSHOT" false))
|
||||
|
||||
(deftest t-qualified
|
||||
(are [v r] (= (boolean (qualified? v)) r)
|
||||
"1.0.0" false
|
||||
"SNAPSHOT" true
|
||||
"1-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT.2" true
|
||||
"1.0-NOSNAPSHOT" true
|
||||
"1.x.2" false
|
||||
"1.2y" true
|
||||
"1.y2" false
|
||||
"1.y" false))
|
||||
(deftest t-qualified?
|
||||
(are [v r] (= r (boolean (v/qualified? v)))
|
||||
"1.0.0" false
|
||||
"SNAPSHOT" true
|
||||
"SNAPSHOT2" true
|
||||
"1-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT" true
|
||||
"1.0-SNAPSHOT.2" true
|
||||
"1.0-NOSNAPSHOT" true
|
||||
"1.0-NOSNAPSHOT.1" true
|
||||
"1.0-NOSNAPSHOT.1.1" true
|
||||
"1.0-NOSNAPSHOT1.1" true
|
||||
"0.5.3-alpha.1.pre.0" true
|
||||
"1.x.2" false
|
||||
"1.2y" false
|
||||
"1.y2" false
|
||||
"1.y" false))
|
||||
|
||||
(let [v0 "1.0.0-SNAPSHOT"
|
||||
v1 "1.0.0"
|
||||
v2 "1.0.1-RC"
|
||||
v3 "1.0.1"
|
||||
ordered [v0 v1 v2 v3]]
|
||||
(deftest t-version-sort
|
||||
(is (= ordered (v/version-sort (shuffle ordered))))
|
||||
(is (= (map v/version->seq ordered)
|
||||
(v/version-seq-sort (map v/version->seq ordered)))))
|
||||
|
||||
(deftest t-version-compare
|
||||
(is (pos? (v/version-compare v1 v0)))
|
||||
(is (neg? (v/version-compare v0 v1)))
|
||||
(is (zero? (v/version-compare v0 v0)))
|
||||
(is (v/older? v0 v1))
|
||||
(is (v/newer? v1 v0))
|
||||
(is (v/older-or-equal? v0 v1))
|
||||
(is (v/older-or-equal? v0 v0))
|
||||
(is (v/newer-or-equal? v1 v0))
|
||||
(is (v/newer-or-equal? v0 v0)))
|
||||
|
||||
(deftest t-version-seq-compare
|
||||
(is (pos? (v/version-seq-compare
|
||||
(v/version->seq v1)
|
||||
(v/version->seq v0))))
|
||||
(is (neg? (v/version-seq-compare
|
||||
(v/version->seq v0)
|
||||
(v/version->seq v1))))
|
||||
(is (zero? (v/version-seq-compare
|
||||
(v/version->seq v0)
|
||||
(v/version->seq v0))))))
|
||||
|
||||
(deftest t-parse
|
||||
(let [s "1.0.1", version (v/parse s)]
|
||||
(is (= [[1 0 1]] (:version version)))
|
||||
(is (= #{} (:qualifiers version)))
|
||||
(is (not (:snapshot? version)))
|
||||
(is (not (:qualified? version))))
|
||||
(let [s "1.0.1-RC1-SNAPSHOT", version (v/parse s)]
|
||||
(is (= [[1 0 1] [["rc" 1] "snapshot"]] (:version version)))
|
||||
(is (= #{"rc" "snapshot"} (:qualifiers version)))
|
||||
(is (:snapshot? version))
|
||||
(is (:qualified? version)))
|
||||
(let [s "1.0.1"]
|
||||
(is (= (v/parse s) (v/parse (v/version->seq s))))))
|
||||
|
||||
(deftest t-version-and-qualifier-data
|
||||
(is (= [1 0 1] (v/version-data "1.0.1-RC")))
|
||||
(is (= ["rc"] (v/qualifier-data "1.0.1-RC"))))
|
||||
|
|
|
|||
|
|
@ -1,22 +1,72 @@
|
|||
(ns version-clj.split-test
|
||||
(:require [clojure.test :refer [deftest are is]]
|
||||
(:require #?(:clj [clojure.test :refer [deftest testing are is]]
|
||||
:cljs [cljs.test :refer-macros [deftest testing are is]])
|
||||
[version-clj.split :refer [version->seq]]))
|
||||
|
||||
(deftest t-split-once-sanity-check
|
||||
(let [split-once @#'version-clj.split/split-once
|
||||
rx #"(^|(?<=\d)|-)(?=alpha)"]
|
||||
(are [in out] (= out (split-once rx in))
|
||||
"1-alpha2.2" ["1" "alpha2.2"]
|
||||
"alpha" ["" "alpha"]
|
||||
"1alpha" ["1" "alpha"]
|
||||
"0.0.3-alpha.8+oryOS.15" ["0.0.3" "alpha.8+oryOS.15"])))
|
||||
|
||||
(deftest t-split
|
||||
(are [version v] (= (version->seq version) v)
|
||||
"1.0.0" [[1 0 0]]
|
||||
"1.0" [[1 0]]
|
||||
"1" [[1]]
|
||||
"1a" [[1] ["a"]]
|
||||
"1-a" [[1] ["a"]]
|
||||
"1.0.1-SNAPSHOT" [[1 0 1] ["snapshot"]]
|
||||
"1.0.1-alpha2" [[1 0 1] ["alpha" 2]]
|
||||
"11.2.0.3.0" [[11 2 0 3 0]]
|
||||
"1.0-1-0.2-RC" [[1 [0 1 0] 2] ["rc"]]))
|
||||
(are [version v] (= v (version->seq version))
|
||||
"1.0.0" [[1 0 0]]
|
||||
"1.0" [[1 0]]
|
||||
"1" [[1]]
|
||||
"1a" [[1] ["a"]]
|
||||
"1-a" [[1] ["a"]]
|
||||
"1.0.1-SNAPSHOT" [[1 0 1] ["snapshot"]]
|
||||
"1.0.1-alpha2" [[1 0 1] ["alpha" 2]]
|
||||
"11.2.0.3.0" [[11 2 0 3 0]]
|
||||
"1.0-1-0.2-RC" [[1 [0 1 0] 2] ["rc"]]
|
||||
"1.0-612" [[1 0] [612]]
|
||||
"alpha" [[] ["alpha"]]
|
||||
"alpha-2" [[] ["alpha" 2]]
|
||||
"1.alpha" [[1] ["alpha"]]
|
||||
"1.alpha.2" [[1] ["alpha" 2]]
|
||||
"1-alpha.2" [[1] ["alpha" 2]]
|
||||
"1-alpha.2.2" [[1] ["alpha" 2 2]]
|
||||
"1-alpha2.2" [[1] [["alpha" 2] 2]]
|
||||
"1.alpha-1.0" [[1] ["alpha" [1 0]]]
|
||||
"0.5.0-alpha.1" [[0 5 0] ["alpha" 1]]
|
||||
"0.5.0-alpha.1" [[0 5 0] ["alpha" 1]]
|
||||
"0.0.3-alpha.8+oryOS.15" [[0 0 3] ["alpha" [8 "+oryos"] 15]]
|
||||
))
|
||||
|
||||
(deftest t-split-without-qualifiers
|
||||
(testing "well-behaving."
|
||||
(are [version] (= (version->seq version)
|
||||
(version->seq version {:qualifiers {}}))
|
||||
"1.0.0"
|
||||
"1.0"
|
||||
"1"
|
||||
"1-a"
|
||||
"1.0.1-SNAPSHOT"
|
||||
"1.0.1-alpha2"
|
||||
"11.2.0.3.0"
|
||||
"1.0-1-0.2-RC"
|
||||
"1-alpha.2"
|
||||
"1-alpha.2.2"
|
||||
"1-alpha2.2"
|
||||
"0.5.0-alpha.1"
|
||||
"0.5.0-alpha.1"
|
||||
"0.0.3-alpha.8+oryOS.15"))
|
||||
(testing "deviants."
|
||||
(are [version v] (= v (version->seq version {:qualifiers {}}))
|
||||
"alpha" [["alpha"]]
|
||||
"alpha-2" [["alpha"] [2]]
|
||||
"1a" [[1 "a"]]
|
||||
"1.alpha" [[1 "alpha"]]
|
||||
"1.alpha.2" [[1 "alpha" 2]]
|
||||
"1.alpha-1.0" [[1 ["alpha" 1] 0]])))
|
||||
|
||||
(deftest t-split-with-large-number
|
||||
(is (= (version->seq "0.0.1-20141002100138")
|
||||
[[0 0 1] [20141002100138]]))
|
||||
(is (= [[0 0 1] [20141002100138]]
|
||||
(version->seq "0.0.1-20141002100138")))
|
||||
#?(:clj
|
||||
(let [v (str Long/MAX_VALUE "12345")]
|
||||
(is (= (version->seq v) [[(bigint v)]])))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue