Skip to content

Commit

Permalink
Add test runner
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed Nov 6, 2022
1 parent a94ab9d commit 13f8e5e
Show file tree
Hide file tree
Showing 9 changed files with 92 additions and 10 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Example workflow

on: [push]

jobs:

clojure:

strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v3

# It is important to install java before installing clojure tools which needs java
# exclusions: babashka, clj-kondo and cljstyle
- name: Prepare java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '8'

- name: Install clojure tools
uses: DeLaGuardo/setup-clojure@10.0
with:
bb: latest

# Optional step:
- name: Cache clojure dependencies
uses: actions/cache@v3
with:
path: |
~/.m2/repository
~/.gitlibs
~/.deps.clj
# List all files containing dependencies:
key: cljdeps-${{ hashFiles('deps.edn') }}
# key: cljdeps-${{ hashFiles('deps.edn', 'bb.edn') }}
# key: cljdeps-${{ hashFiles('project.clj') }}
# key: cljdeps-${{ hashFiles('build.boot') }}
restore-keys: cljdeps-

- name: Test Clojure
run: bb test:jvm

- name: Test bb
run: bb test:bb
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
.cache
.cpcache
test/out
8 changes: 3 additions & 5 deletions bb.edn
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
:task (api/quickdoc {:git/branch "main"
:github/repo "https://github.com/borkdude/quickdoc"
:toc true})}
test {:requires ([quickdoc.api :as api])
:task (api/quickdoc {:git/branch "main"
:source-uri "https://dev.azure.com/company/_git/project?path={filename}&version=GBmain&_a=contents&line={row}&lineEnd={end-row}&lineStartColumn={col}&lineEndColumn={end-col}&lineStyle=plain"
:toc true
:outfile "API.md"})}}}
test:bb {:extra-paths ["test"]
:task (exec 'runner/run-tests)}
test:jvm {:task (clojure "-Sdeps" '{:paths ["src" "test"]} "-X" 'runner/run-tests)}}}
4 changes: 3 additions & 1 deletion deps.edn
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
{:paths ["src"]}
{:paths ["src"]
:deps {clj-kondo/clj-kondo {:mvn/version "2022.10.05"}}
:tools/usage {:ns-default quickdoc.api}}
4 changes: 1 addition & 3 deletions jvm/deps.edn
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
{:deps {;; only necessary for JVM usage - use :exclusions [clj-kondo/clj-kondo]
io.github.borkdude/quickdoc-sources {:local/root ".."}
clj-kondo/clj-kondo {:mvn/version "2022.10.05"}}
{:deps {io.github.borkdude/quickdoc-sources {:local/root ".."}}
:tools/usage {:ns-default quickdoc.api}}
4 changes: 3 additions & 1 deletion src/quickdoc/api.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
(:require
#?(:bb [babashka.pods :as pods]
:clj [clj-kondo.core :as clj-kondo])
[quickdoc.impl :as impl]))
[quickdoc.impl :as impl]
[clojure.java.io :as io]))

#?(:bb
(or (try (requiring-resolve 'pod.borkdude.clj-kondo/run!)
Expand Down Expand Up @@ -72,5 +73,6 @@
(sort-by first nss)))
docs (str toc docs)]
(when outfile
(io/make-parents outfile)
(spit outfile docs))
{:markdown docs}))
5 changes: 5 additions & 0 deletions test-resources/source.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
(ns source)

(defn foo
"Hello"
[])
16 changes: 16 additions & 0 deletions test/quickdoc/api_test.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
(ns quickdoc.api-test
(:require
[clojure.string :as str]
[clojure.test :as t :refer [deftest is testing]]
[quickdoc.api :as api]))

(deftest foo-test
(testing "source link template"
(api/quickdoc {:git/branch "main"
:source-uri "https://dev.azure.com/company/_git/project?path={filename}&version=GBmain&_a=contents&line={row}&lineEnd={end-row}&lineStartColumn={col}&lineEndColumn={end-col}&lineStyle=plain"
:toc true
:source-paths ["test-resources/source.clj"]
:outfile "test/out/API.md"})
(let [out (slurp "test/out/API.md")]
(is (str/includes? out
"https://dev.azure.com/company/_git/project?path=test-resources/source.clj&version=GBmain&_a=contents&line=3&lineEnd=5&lineStartColumn=1&lineEndColumn=6&lineStyle=plain")))))
9 changes: 9 additions & 0 deletions test/runner.clj
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
(ns runner
(:require
[clojure.test]
[quickdoc.api-test]))

(defn run-tests [_]
(let [{:keys [fail error]} (clojure.test/run-tests 'quickdoc.api-test)]
(when (pos? (+ fail error))
(System/exit 1))))

0 comments on commit 13f8e5e

Please sign in to comment.