Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/cache-clojure-deps/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ inputs:
runs:
using: composite
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- name: Cache Clojure deps
uses: actions/cache@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- uses: ./.github/actions/cache-clojure-deps
- uses: jdx/mise-action@v3.2.0
- uses: jdx/mise-action@v3.5.1
with:
install_args: "babashka java clojure"
- name: Run tests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- name: Publish GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ jobs:
timeout-minutes: 20
needs: [ checks ]
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- uses: jdx/mise-action@v3.2.0
- uses: jdx/mise-action@v3.5.1
with:
install_args: "babashka"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ inputs:
runs:
using: composite
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- name: Cache Clojure deps
uses: actions/cache@v4
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ jobs:
lint-fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- uses: ./.github/actions/cache-clojure-deps
with:
key-label: 'lint'
- uses: jdx/mise-action@v3.2.0
- uses: jdx/mise-action@v3.5.1
with:
install_args: "babashka cljfmt clj-kondo java clojure"
- name: Lint and format
Expand All @@ -22,11 +22,11 @@ jobs:
outdated:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- uses: ./.github/actions/cache-clojure-deps
with:
key-label: 'outdated'
- uses: jdx/mise-action@v3.2.0
- uses: jdx/mise-action@v3.5.1
with:
install_args: "babashka java clojure"
- name: Outdated deps
Expand All @@ -35,11 +35,11 @@ jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6.0.1
- uses: ./.github/actions/cache-clojure-deps
with:
key-label: 'tests'
- uses: jdx/mise-action@v3.2.0
- uses: jdx/mise-action@v3.5.1
with:
install_args: "babashka java clojure"
- name: Run tests
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{:deps {io.github.abogoyavlensky/manifest-edn {:mvn/version "0.1.1"}
babashka/fs {:mvn/version "0.5.27"}}
babashka/fs {:mvn/version "0.5.30"}}
:tasks
{:init (do
(def input-css-file "resources/public/css/input.css")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{:deps {org.clojure/clojure {:mvn/version "1.12.3"}
{:deps {org.clojure/clojure {:mvn/version "1.12.4"}
; logging
org.clojure/tools.logging {:mvn/version "1.3.0"}
ch.qos.logback/logback-classic {:mvn/version "1.5.18"}
ch.qos.logback/logback-classic {:mvn/version "1.5.22"}
; system & config
integrant/integrant {:mvn/version "1.0.0"}
integrant/integrant {:mvn/version "1.0.1"}
io.github.abogoyavlensky/integrant-extras {:mvn/version "0.1.2"}
; server
metosin/reitit-ring {:mvn/version "0.9.1"}
metosin/reitit-middleware {:mvn/version "0.9.1"}
metosin/reitit-malli {:mvn/version "0.9.1"}
metosin/reitit-ring {:mvn/version "0.9.2"}
metosin/reitit-middleware {:mvn/version "0.9.2"}
metosin/reitit-malli {:mvn/version "0.9.2"}
io.github.abogoyavlensky/reitit-extras {:mvn/version "0.2.3"}
ring/ring-jetty-adapter {:mvn/version "1.15.3"}
io.github.abogoyavlensky/manifest-edn {:mvn/version "0.1.1"}{{auth-deps}}
; db
hikari-cp/hikari-cp {:mvn/version "3.3.0"}
{{db-driver-deps}}
com.github.seancorfield/next.jdbc {:mvn/version "1.3.1070"}
com.github.seancorfield/honeysql {:mvn/version "2.7.1350"}
com.github.seancorfield/next.jdbc {:mvn/version "1.3.1086"}
com.github.seancorfield/honeysql {:mvn/version "2.7.1364"}
dev.weavejester/ragtime {:mvn/version "0.12.1"}}

:paths ["src" "resources"]
Expand All @@ -28,6 +28,7 @@
:test {:extra-paths ["test"]
:extra-deps {eftest/eftest {:mvn/version "0.6.0"}
cloverage/cloverage {:mvn/version "1.2.4"}
io.github.tonsky/clj-reload {:mvn/version "1.0.0"}
clj-http/clj-http {:mvn/version "3.13.1"}
circleci/bond {:mvn/version "0.6.0"}
org.clj-commons/hickory {:mvn/version "0.7.7"}{{db-test-deps}}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
org.xerial/sqlite-jdbc {:mvn/version "3.50.3.0"}
org.xerial/sqlite-jdbc {:mvn/version "3.51.1.0"}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

org.testcontainers/testcontainers {:mvn/version "1.21.3"}
org.testcontainers/postgresql {:mvn/version "1.21.3"}
org.testcontainers/testcontainers {:mvn/version "2.0.3"}
org.testcontainers/testcontainers-jdbc {:mvn/version "2.0.3"}
org.testcontainers/testcontainers-postgresql {:mvn/version "2.0.3"}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(defn with-truncated-tables
"Remove all data from all tables except migrations."
[f]
(let [db (::db/db ig-extras/*test-system*)]
(let [db (::db/db *test-system*)]
(doseq [table (->> {:select [:tablename]
:from [:pg_tables]
:where [:= :schemaname "public"]}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(defn with-truncated-tables
"Remove all data from all tables except migrations."
[f]
(let [db (::db/db ig-extras/*test-system*)]
(let [db (::db/db *test-system*)]
(doseq [table (->> {:select [:name]
:from [:sqlite_master]
:where [:= :type "table"]}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,19 @@
(:require [clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[reitit-extras.tests :as reitit-extras]
[{{main/ns}}.server :as-alias server]
[{{main/ns}}.test-utils :as test-utils]))
[{{main/ns}}.test-utils :as utils]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
test-utils/with-truncated-tables)
utils/with-truncated-tables)

(deftest test-home-page-is-loaded-correctly
(let [url (reitit-extras/get-server-url (test-utils/server) :host)
body (test-utils/response->hickory (http/get url))]
(let [url (reitit-extras/get-server-url (utils/server) :host)
body (utils/response->hickory (http/get url))]
(is (= "Clojure Stack Lite"
(->> body
(select/select (select/tag :span))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,32 @@
(ns {{main/ns}}.test-utils
(:require [hickory.core :as hickory]
[integrant-extras.tests :as ig-extras]
(:require [clj-reload.core :as reload]
[hickory.core :as hickory]
[integrant.core :as ig]
[integrant-extras.core :as ig-extras]
[{{main/ns}}.db :as db]
[{{main/ns}}.server :as server]))

(def ^:const TEST-CSRF-TOKEN "test-csrf-token")
(def ^:const TEST-SECRET-KEY "test-secret-key")

(def ^:dynamic *test-system* nil)

(defn with-system
"Run the test system before tests."
([]
(with-system nil))
([config-path]
(fn
[test-fn]
(let [test-config (ig-extras/get-config :test config-path)]
(ig/load-namespaces test-config)
(reload/reload)
(binding [*test-system* (ig/init test-config)]
(try
(test-fn)
(finally
(ig/halt! *test-system*))))))))

{{test-utils-db-setup}}

(defn response->hickory
Expand All @@ -20,9 +40,9 @@
(defn db
"Get the database connection from the test system."
[]
(::db/db ig-extras/*test-system*))
(::db/db *test-system*))

(defn server
"Get the server instance from the test system."
[]
(::server/server ig-extras/*test-system*))
(::server/server *test-system*))
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
(:require [clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.auth.queries :as queries]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
[clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.auth.handlers :as handlers]
[{{main/ns}}.auth.queries :as queries]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
(:require [clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.auth.queries :as queries]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
(ns {{main/ns}}.auth-logout-test
(:require [clj-http.client :as http]
[clojure.test :refer :all]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.auth.queries :as queries]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
[clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.db :as db]
[{{main/ns}}.server :as-alias server]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras]))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,13 @@
[clj-http.client :as http]
[clojure.test :refer :all]
[hickory.select :as select]
[integrant-extras.tests :as ig-extras]
[{{main/ns}}.auth.queries :as queries]
[{{main/ns}}.test-utils :as utils]
[reitit-extras.tests :as reitit-extras])
(:import (java.time Duration Instant)))

(use-fixtures :once
(ig-extras/with-system))
(utils/with-system))

(use-fixtures :each
utils/with-truncated-tables)
Expand Down