From e0c375f5ed8012849aa093aa086a5a515fb5bed4 Mon Sep 17 00:00:00 2001 From: Connor Kilgore Date: Mon, 22 Jul 2024 14:49:07 -0700 Subject: [PATCH] Fixed report issue --- deps.edn | 2 -- src/speclj/freshener.clj | 24 ++++++++++++++++-------- src/speclj/run/vigilant.clj | 34 +++++++++++++++++++++++----------- 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/deps.edn b/deps.edn index afe3eb1..e3c14de 100644 --- a/deps.edn +++ b/deps.edn @@ -5,8 +5,6 @@ org.clojure/clojure {:mvn/version "1.11.3"} trptcolin/versioneer {:mvn/version "0.1.1"} org.clojure/tools.namespace {:mvn/version "1.5.0"} - clj-commons/pomegranate {:mvn/version "1.2.24"} - leiningen-core/leiningen-core {:mvn/version "2.9.6"} } :aliases { :test {:extra-deps { diff --git a/src/speclj/freshener.clj b/src/speclj/freshener.clj index d23eb95..fdc3acf 100644 --- a/src/speclj/freshener.clj +++ b/src/speclj/freshener.clj @@ -1,12 +1,14 @@ (ns speclj.freshener - (:use - [clojure.java.io :only (file)]) (:require [clojure.tools.namespace.dir :as dir] + [clojure.tools.namespace.file :as file] + [clojure.tools.namespace.reload :as reload] [clojure.tools.namespace.repl :as repl] [clojure.tools.namespace.track :as track] - [clojure.tools.namespace.reload :as reload] - [clojure.tools.namespace.file :as file])) + [speclj.config] + [speclj.reporting]) + (:use + [clojure.java.io :only [file]])) (defn find-files-in "Returns a seq of all files (matching the regex) contained in the given directories." @@ -35,6 +37,9 @@ ::file/filemap (dissoc (::file/filemap tracker) file) ::dir/files (set (remove-value file (::dir/files tracker)))))))) +(defn find-key-by-value [m val] + (some (fn [[k v]] (when (= v val) k)) m)) + (def ignored-namespaces ['speclj.config 'speclj.run.vigilant 'speclj.results 'speclj.core 'speclj.reporting 'speclj.running]) @@ -42,7 +47,10 @@ (defn freshen [] (repl/scan) (doseq [namespace ignored-namespaces] - (remove-ignore repl/refresh-tracker namespace) - ) - (alter-var-root #'repl/refresh-tracker reload/track-reload) - (repl/set-refresh-dirs)) + (remove-ignore repl/refresh-tracker namespace)) + (let [reloaded-files + (for [ns (::track/load repl/refresh-tracker)] + (find-key-by-value (::file/filemap repl/refresh-tracker) ns))] + (alter-var-root #'repl/refresh-tracker reload/track-reload) + (repl/set-refresh-dirs) + reloaded-files)) diff --git a/src/speclj/run/vigilant.clj b/src/speclj/run/vigilant.clj index 3e02847..c1d2c8e 100644 --- a/src/speclj/run/vigilant.clj +++ b/src/speclj/run/vigilant.clj @@ -1,15 +1,16 @@ (ns speclj.run.vigilant (:require [clojure.java.io :as io] + [clojure.tools.namespace.reload :as reload] [clojure.tools.namespace.repl :as repl] - [speclj.freshener :refer [freshen]] + [clojure.tools.namespace.dir :as dir] + [clojure.tools.namespace.file :as file] + [clojure.tools.namespace.track :as track] [speclj.config :as config] - [speclj.platform :refer [current-time endl enter-pressed? format-seconds secs-since]] + [speclj.freshener :refer [freshen]] + [speclj.platform :refer [current-time enter-pressed? endl format-seconds secs-since]] [speclj.reporting :as reporting] [speclj.results :as results] - [speclj.running :as running] - [clojure.tools.namespace.repl :as repl] - [clojure.tools.namespace.track :as track] - [clojure.tools.namespace.reload :as reload]) + [speclj.running :as running]) (:import (java.util.concurrent ScheduledThreadPoolExecutor TimeUnit))) (def start-time (atom 0)) @@ -18,19 +19,31 @@ (defn get-error-data [e] (:data (first (:via (Throwable->map e))))) +(defn- report-update [files start-time] + (let [reporters (config/active-reporters)] + (when (seq files) + (reporting/report-message* reporters (str endl "----- " (str (java.util.Date.) " -----"))) + (reporting/report-message* reporters (str "took " (format-seconds (secs-since start-time)) " to determine file statuses.")) + (reporting/report-message* reporters "reloading files:") + (doseq [file files] + (do + (reporting/report-message* reporters (str " " (.getCanonicalPath file)))) + ))) + true) + (defn- tick [configuration] (with-bindings configuration (let [runner (config/active-runner) - reporters (config/active-reporters)] + reporters (config/active-reporters) + reloaded-files (freshen)] (try (reset! start-time (current-time)) - (freshen) - ;(prn repl/refresh-tracker) (cond (::reload/error repl/refresh-tracker) (throw (::reload/error repl/refresh-tracker)) (seq @(.descriptions runner)) (do + (report-update reloaded-files @start-time) (reset! current-error-data nil) (reset! (.previous-failed runner) (:fail (results/categorize (seq @(.results runner))))) (running/run-and-report runner reporters))) @@ -40,8 +53,7 @@ (constantly (assoc repl/refresh-tracker ::track/load []))) (running/process-compile-error runner e) (reporting/report-runs* reporters @(.results runner)) - (reset! current-error-data error-data)) - )) + (reset! current-error-data error-data)))) (reset! (.descriptions runner) []) (reset! (.results runner) []))))