Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
awb99 committed Aug 10, 2023
1 parent 2be2b14 commit 3169f10
Show file tree
Hide file tree
Showing 2,270 changed files with 1,082,339 additions and 0 deletions.
30 changes: 30 additions & 0 deletions code/demo/cljs_libs/helper.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns demo.cljs-libs.helper
(:require
[site]
[layout]
[goldly.page :as page]))

;; clj-libs is here, because
;; it shows that we can add custom libraries inside sci source code files.

(defn add-3 [a]
(+ a 3))

(defn test-header []
[site/header-menu
{:brand "goldly-test"
:brand-link "/"
:items [{:text "service-test" :dispatch [:bidi/goto :user/service]}
{:text "sci-compile" :dispatch [:bidi/goto :user/scicompile]}
{:text "lazyload-test" :dispatch [:bidi/goto :user/lazy]}
{:text "select" :dispatch [:bidi/goto :user/select]}
{:text "error-test" :dispatch [:bidi/goto :user/error]}
{:text "tick" :dispatch [:bidi/goto :user/tick]}]}])

(defn add-page-test [page name]
(let [wrapped-page (fn [route]
[layout/header-main ; .w-screen.h-screen
[test-header]
[page route]])]
(page/add wrapped-page name)))

30 changes: 30 additions & 0 deletions code/demo/cljs_libs/helper.cljs~
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns cljs-libs.helper
(:require
[site]
[layout]
[goldly.page :as page]))

;; clj-libs is here, because
;; it shows that we can add custom libraries inside sci source code files.

(defn add-3 [a]
(+ a 3))

(defn test-header []
[site/header-menu
{:brand "goldly-test"
:brand-link "/"
:items [{:text "service-test" :dispatch [:bidi/goto :user/service]}
{:text "sci-compile" :dispatch [:bidi/goto :user/scicompile]}
{:text "lazyload-test" :dispatch [:bidi/goto :user/lazy]}
{:text "select" :dispatch [:bidi/goto :user/select]}
{:text "error-test" :dispatch [:bidi/goto :user/error]}
{:text "tick" :dispatch [:bidi/goto :user/tick]}]}])

(defn add-page-test [page name]
(let [wrapped-page (fn [route]
[layout/header-main ; .w-screen.h-screen
[test-header]
[page route]])]
(page/add wrapped-page name)))

7 changes: 7 additions & 0 deletions code/demo/page/bad_page.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
(ns demo.page.bad-page
(:require
[demo.cljs-libs.helper :refer [add-page-test]]))

; test if we get an error message

; (call-bad-fn 27)
15 changes: 15 additions & 0 deletions code/demo/page/error.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
(ns demo.page.error
(:require
[demo.cljs-libs.helper :refer [add-page-test]]))

(defn exception-component
"a component that throws exceptions for testing."
[]
(throw {:type :custom-error
:message "Something unpleasant occurred"}))

(defn error-page [_r]
[:div
[exception-component]])

(add-page-test error-page :user/error)
15 changes: 15 additions & 0 deletions code/demo/page/lazy.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
(ns demo.page.lazy
(:require
[ui.highlightjs :refer [highlightjs]]
[demo.cljs-libs.helper :refer [add-page-test]]))

(defn lazy-page [_r]
[:div.bg-red-200.w-screen.h-screen.p-5
[:p.text-blue-500.text-xxl "show code in highlightjs. highlightjs is lazy."]
[:p "goto your browser devtools and check what it does"]
[:p "you should see ui.highlightjs.js and default.css being dynamically laoded
when you go to this page."]
[highlightjs "(+ 4 5)\r\n (def a 34) \n{:a 1 :b 2} (defn add [x y] \n (+ x y))"]])

(add-page-test lazy-page :user/lazy)

30 changes: 30 additions & 0 deletions code/demo/page/main.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns demo.page.main
(:require
[goldly.page :as page]
[layout]
[ui.clock :refer [clock]]
[demo.cljs-libs.helper :refer [#_add-page-test test-header]]))

(defn main-body []
[:div
[:h1.text-2xl.text-red-600.m-5 "goldly-test"]
[:p.m-2 "test if goldy extension system is working."]

[:p.bg-green-300
[:a.m-2 {:href "/devtools/help"} "devtools"]]

[:p "when the "
[:span.text-red-500 "binary time "]
"is appearing, it is a good start."]
[:h1 "binary time"]
[clock]
;
])

(defn main-page [{:keys [_handler _route-params _query-params] :as _route}]
[layout/header-main
;[:div "header"]
[test-header]
[main-body]])

(page/add main-page :user/main)
48 changes: 48 additions & 0 deletions code/demo/page/sci_compile.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
(ns demo.page.sci-compile
(:require
[clojure.string :refer [join]]
[reagent.core :as r]
[goldly.sci :refer [require-async compile-sci compile-sci-async]]
[layout]
[demo.cljs-libs.helper :refer [add-page-test]]))

(def code (join
"\n"
(map pr-str '[(ns example (:require ["some_js_lib" :as my-lib]))
(my-lib/libfn)])))

(defn show-result [a]
[:div
(if (nil? @a)
[:p "require pending"]
[:p "require result: " (pr-str @a)])
(when (not (nil? @a))
(let [f (resolve 'demo.funny/joke)]
(when f
[:p "joke: " (f)])))])

(defn sci-compile-page [_route-data]
(let [require-a (r/atom nil)
require-p (-> (require-async '[demo.funny :refer [joke]])
(.then (fn [d]
(println "require result received!")
(reset! require-a {:data d})))
(.catch (fn [d]
(println "require result failure!")
(reset! require-a {:err d}))))
async-result (r/atom "no async result")
p (compile-sci-async code)]
(.then p (fn [result]
(reset! async-result result)))
(fn [_route-data]
[:div.bg-red-200.w-screen.h-screen.p-5
[:p.text-blue-500.text-xxl "sci require test."]
[:div "test for require: (require result should show up): " [show-result require-a]]
[:p.text-blue-500.text-xxl "sci compile test."]
[:p "test for compilation: " (pr-str (compile-sci "(+ 5 5)"))]
[:p "test for async compilation: " (pr-str @async-result)]
[:p.bg-red-500
[:a {:on-click #(compile-sci-async "(println \"hello from sci\")")}
"click to 'println' to browser console"]]])))

(add-page-test sci-compile-page :user/scicompile)
24 changes: 24 additions & 0 deletions code/demo/page/select.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
(ns demo.page.select
(:require
[goldly.log :refer [info]]
[goldly.js :refer [alert]]
[goldly :refer [eventhandler]]
[layout]
[demo.cljs-libs.helper :refer [add-page-test]]))

(defn select [list _k v]
(let [on-change (fn [v _e]
(info (str "selected: " v))
(alert (str "selected: " v)))]
(into [:select {:value (str v)
:on-change (eventhandler on-change)}]
(map (fn [o]
[:option {:value o}
(str o)])
list))))

(defn select-page [_r]
[:div
[select [:clojure :python :csharp :c] :python]])

(add-page-test select-page :user/select)
30 changes: 30 additions & 0 deletions code/demo/page/service_test.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
(ns demo.page.service-test
(:require
[reagent.core :as r]
[goldly.service.core :refer [run-a run-a-map]]
[demo.cljs-libs.helper :refer [add-page-test]]))

(defn make-requests [state]
(swap! state assoc :first false)
(run-a state [:add-result] 'demo.service/add 2 7)
(run-a state [:saying] 'demo.service/quote)
(run-a state [:ex-result] 'demo.service/ex)
(run-a-map {:a state
:path [:saying2]
:fun 'demo.service/quote-slow
:timeout 1000})
nil)

(defn show-page [state]
[:div
[:p "this tests if clj services are working"]
[:p "you should see one error message (for a service that is not defined)"]
(when (:first @state)
(make-requests state))
[:p.bg-blue-300.mg-3 "state: " (pr-str @state)]])

(defn service-page []
(let [state (r/atom {:first true})]
[show-page state]))

(add-page-test service-page :user/service)
25 changes: 25 additions & 0 deletions code/demo/page/tick.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
(ns demo.page.tick
(:require
[clojure.string :as str]
[tick.core :as t]
[tick.goldly :refer [dt-format]]
[goldly.page :as page]
[layout]
[demo.cljs-libs.helper :refer [#_add-page-test test-header]]))

(defn tick-body []
[:div
[:h1.text-2xl.text-red-600.m-5 "goldly-test"]
[:p "blank? " (str (str/blank? "test"))]
[:p "dt: " (str (t/now))]
[:p "dt: " (dt-format "YYYY-MM-dd" (t/now))]
;
])

(defn tick-page [{:keys [_handler _route-params _query-params] :as _route}]
[layout/header-main
;[:div "header"]
[test-header]
[tick-body]])

(page/add tick-page :user/tick)
78 changes: 78 additions & 0 deletions code/goldly/devtools/page/build.cljs
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
(ns goldly.devtools.page.build
(:require
[goldly.devtools.url-loader :refer [url-loader]]
[goldly.devtools.ui-helper :refer [add-page-template]]))

(defn goldly-version [{:keys [version generated-at]}]
[:div "goldly version: " version " " generated-at
;(pr-str v)
])

(defn build-info [b]
[:div
[:h2.text-2xl.text-blue-700.bg-blue-300 "build"]
[:div (pr-str b)]])

;; sci bindings

(defn ns-binding-view [[sci cljs]] ;
[:p
[:span.text-red-500 (pr-str sci)]
[:span.ml-3 (pr-str cljs)]])

(defn ns-bindings-view [ns bindings]
[:div
[:h1.text-blue-500.text-xl "sci ns: " (str ns)]
(if (map? bindings)
(into [:div.grid.grid-cols-1.md:grid-cols-2]
(map ns-binding-view bindings))
[:div.text-red-500 "dynamic sci-config namespace (clj does not know bindings)"])])

(defn ns-bindings-list [ns-bindings]
(into [:div]
(map (fn [[k v]]
;[:div "ns: " k "bindings: " v]
(ns-bindings-view k v)) ns-bindings)))

(defn build-sci-config [{:keys [data] :as sci-bindings}]
(let [{:keys [namespaces bindings ns-bindings]} data]
[:div
[:h2.text-2xl.text-blue-700.bg-blue-300 "sci bindings"]
; (pr-str data)
[ns-bindings-view 'user bindings]
[ns-bindings-list ns-bindings]]))

(defn build []
[:div

[url-loader {:fmt :edn
:url "/r/build.edn"}
build-info]

; "sci-cljs-autoload.edn" "sci-cljs-bindings.edn" "build-config.edn"

[url-loader {:fmt :clj
:url 'goldly.run.services/goldly-version}
goldly-version]

[:a {:href "/r/bundlesizereport.html"}
[:p "show bundlesize stats"]]

;[url-loader {:fmt :clj
; :url 'goldly.config/info/extension-summary}
; extension-summary]

[url-loader {:fmt :clj
:url 'goldly.run.services/build-sci-config}
build-sci-config]

;[url-loader {:fmt :clj
; :url 'goldly.run.services/extension-list }
; extension-details]
])

(defn build-page [{:keys [route-params query-params handler] :as route}]
[:div.bg-green-300
[build]])

(add-page-template build-page :build)
Loading

0 comments on commit 3169f10

Please sign in to comment.