babashka/test/babashka/yaml_test.clj
Bob 407bd74a00
[#1004] XML edn reading and populating *data-readers* for feature deps (#1012)
* add XML edn reading and make *data-readers* closer to Clojure

- initial value of *data-readers*: empty map
- add XML readers to feature-flagged edn-readers for parsing *input*
- add edn-readers to *data-readers* to emulate data_readers.clj handling

* add YAML round-trip testing

* set root val of *data-readers* at top level
2021-09-20 18:31:57 +02:00

18 lines
801 B
Clojure

(ns babashka.yaml-test
(:require [babashka.test-utils :as test-utils]
[clojure.string :as str]
[clojure.test :refer [deftest is testing]]))
(def simple-yaml-str "topic: [point 1, point 2]")
(deftest yaml-edn-read-test
(let [parsed-edn (test-utils/bb nil (str "(yaml/parse-string \"" simple-yaml-str "\")"))
emitted-yaml (test-utils/bb parsed-edn "(yaml/generate-string *input*)")]
(is (every? #(str/includes? emitted-yaml %) ["topic:" "point 1" "point 2"]))))
(def round-trip-prog
(str "(yaml/generate-string (read-string (pr-str (yaml/parse-string \"" simple-yaml-str "\"))))"))
(deftest yaml-data-readers-test
(let [emitted-yaml (test-utils/bb nil round-trip-prog)]
(is (every? #(str/includes? emitted-yaml %) ["topic:" "point 1" "point 2"]))))