diff --git a/src/main/frontend/extensions/pdf/assets.cljs b/src/main/frontend/extensions/pdf/assets.cljs index 9613e9e3a..888cfc92d 100644 --- a/src/main/frontend/extensions/pdf/assets.cljs +++ b/src/main/frontend/extensions/pdf/assets.cljs @@ -261,11 +261,15 @@ (defn fix-local-asset-filename [filename] (when-not (string/blank? filename) - (let [local-asset? (re-find #"[0-9]{13}_\d$" filename)] - (-> filename - (subs 0 (- (count filename) (if local-asset? 15 0))) - (string/replace #"^hls__" "") - (string/replace "_" " "))))) + (let [local-asset? (re-find #"[0-9]{13}_\d$" filename) + hls? (and local-asset? (re-find #"^hls__" filename))] + (if (or local-asset? hls?) + (-> filename + (subs 0 (- (count filename) 15)) + (string/replace #"^hls__" "") + (string/replace "_" " ") + (string/trimr)) + filename)))) (rum/defc human-hls-filename-display [title] diff --git a/src/test/frontend/extensions/pdf/assets_test.cljs b/src/test/frontend/extensions/pdf/assets_test.cljs new file mode 100644 index 000000000..3c39e4387 --- /dev/null +++ b/src/test/frontend/extensions/pdf/assets_test.cljs @@ -0,0 +1,16 @@ +(ns frontend.extensions.pdf.assets-test + (:require [clojure.test :as test :refer [are deftest testing]] + [clojure.string :as str] + [frontend.extensions.pdf.assets :as assets])) + +(deftest fix-local-asset-filename + (testing "matched filenames" + (are [x y] (= y (assets/fix-local-asset-filename x)) + "2015_Book_Intertwingled_1659920114630_0" "2015 Book Intertwingled" + "hls__2015_Book_Intertwingled_1659920114630_0" "2015 Book Intertwingled")) + (testing "non matched filenames" + (are [x y] (= y (assets/fix-local-asset-filename x)) + "foo" "foo" + "foo_bar" "foo_bar" + "foo__bar" "foo__bar" + "foo_bar.pdf" "foo_bar.pdf")))