     )
   )
 
+(defn component-name [component]
+  (.-name component)                    ; This isn't standard JS, but
+                                        ; works enough places, for now
+  )
+
 (defn tag [expected-tag & tests]
   (fn -tag-pred [component]
     (let [actual (tag-name component)]

        (let [child-count (count children)]
          (if (not= test-count child-count)
            {:msg "Wrong number of child elements"
             :expected test-count :actual child-count}
            (if-let [failures
                     (seq (filter (fn [result] (not= true result))
                                  (map (fn [pred child] (pred child))

      {:msg "Text does not match" :expected text :actual component}
      )
    )
  )

(defn sub-component [sub-component cursor]
