code.manage

+tasks+

-main

added in 3.0

(-main & [cmd & args])

main entry point for code.manage

(code.manage/-main “import” “xyz.zcaudate” “{:tag :all}”)

analyse

added in 3.0

(analyse)(analyse ns)(analyse ns params)(analyse ns params project)(analyse ns params lookup project)

analyse either a source or test file

(analyse ’code.manage) ;;#code{:test {code.manage analyse …. vars}} => code.framework.common.Entry

(analyse ’#{code.manage} {:return :summary}) ;; {:errors 0, :warnings 0, :items 1, :results 1, :total 16} => map?

arrange

added in 3.0

(arrange)(arrange ns)(arrange ns params)(arrange ns params project)(arrange ns params lookup project)

arranges the test corresponding to function order

(arrange {:print {:function false} :write false})

(arrange ’code.manage {:print {:item true} :write false})

commented

added in 3.0

(commented)(commented ns)(commented ns params)(commented ns params project)(commented ns params lookup project)

returns tests that are in comment blocks

(commented)

(commented ’code.manage)

create-tests

added in 3.0

(create-tests)(create-tests ns)(create-tests ns params)(create-tests ns params project)(create-tests ns params lookup project)

creates and arranges the tests

docstrings

added in 3.0

(docstrings)(docstrings ns)(docstrings ns params)(docstrings ns params project)(docstrings ns params lookup project)

returns docstrings

(docstrings ’#{code.manage.unit} {:return :results}) ;;{:errors 0, :warnings 0, :items 1, :results 1, :total 14} => map?

extract

added in 3.0

(extract)(extract ns)(extract ns params)(extract ns params project)(extract ns params lookup project)

returns the list of vars in a namespace

(vars ’code.manage)

(vars ’code.manage {:sorted false})

(vars ’#{code.manage} {:return #{:errors :summary}}) => (contains-in {:errors any :summary {:errors 0 :warnings 0 :items 1 :results 1 :total number?}})

factcheck-generate

added in 4.1

(factcheck-generate)(factcheck-generate ns)(factcheck-generate ns params)(factcheck-generate ns params project)(factcheck-generate ns params lookup project)

regenerates => expectations for fact tests

(factcheck-generate {:write false})

(factcheck-generate ’code.manage {:print {:item true} :write false})

factcheck-remove

added in 4.1

(factcheck-remove)(factcheck-remove ns)(factcheck-remove ns params)(factcheck-remove ns params project)(factcheck-remove ns params lookup project)

removes => expectations from fact tests

(factcheck-remove {:write false})

(factcheck-remove ’code.manage {:print {:item true} :write false})

find-usages

added in 3.0

(find-usages)(find-usages ns)(find-usages ns params)(find-usages ns params project)(find-usages ns params lookup project)

find usages of a var

(find-usages ’code.manage {:var ’code.framework/analyse})

grep

added in 3.0

(grep)(grep ns)(grep ns params)(grep ns params project)(grep ns params lookup project)

finds a string or regular expression in files

(grep ’code.manage {:query “hello”})

grep-replace

added in 3.0

(grep-replace)(grep-replace ns)(grep-replace ns params)(grep-replace ns params project)(grep-replace ns params lookup project)

grep and replaces in files

(grep-replace ’code.manage {:query “hello” :replace “HELLO”})

heal-code

added in 3.0

(heal-code)(heal-code ns)(heal-code ns params)(heal-code ns params project)(heal-code ns params lookup project)

helper function for any arbitrary transformation of text

(transform-code {:transform #(str % “\n\n\n\nhello world”)}) ;; {:deletes 0, :inserts 5, :changed arrange, :updated false} => map?

(transform-code ’#{code.manage.unit} {:print {:summary true :result true :item true :function true} :transform #(str % “\n\n\n\nhello world”) :full true})

import

added in 3.0

(import)(import ns)(import ns params)(import ns params project)(import ns params lookup project)

import docstrings from tests

(import {:write false})

(import {:examples true :write false})

(import {:full true :write false :print {:function false}})

(import ’code.manage.unit {:print {:summary true :result true :item true} :write false})

in-order?

added in 3.0

(in-order?)(in-order? ns)(in-order? ns params)(in-order? ns params project)(in-order? ns params lookup project)

checks if tests are in order

(in-order?)

(in-order? ’code.manage {:print {:item true}})

incomplete

added in 3.0

(incomplete)(incomplete ns)(incomplete ns params)(incomplete ns params project)(incomplete ns params lookup project)

both functions missing tests or tests with todos

(incomplete)

(incomplete ’code.manage {:print {:item true}})

incomplete-report

added in 4.1

(incomplete-report target opts)

writes a versioned incomplete-test report for one configured CI section

isolate

added in 4.1

(isolate)(isolate ns)(isolate ns params)(isolate ns params project)(isolate ns params lookup project)

copies failing facts from a run report into a new test namespace

(code.manage/isolate xt.lang.spec-base-test {:run “.hara/runs/run-1776913569354.edn” :suffix “-fix” :print {:item true :result true :summary true}})

locate-code

added in 3.0

(locate-code)(locate-code ns)(locate-code ns params)(locate-code ns params project)(locate-code ns params lookup project)

locates code base upon query

locate-test

added in 4.0

(locate-test)(locate-test ns)(locate-test ns params)(locate-test ns params project)(locate-test ns params lookup project)

locates test based upon query

missing

added in 3.0

(missing)(missing ns)(missing ns params)(missing ns params project)(missing ns params lookup project)

checks for functions with missing tests

(missing)

(missing ’platform {:print {:result false :summary false} :return :all})

ns-format

added in 3.0

(ns-format)(ns-format ns)(ns-format ns params)(ns-format ns params project)(ns-format ns params lookup project)

formats ns forms

ns-rename

added in 3.0

(ns-rename [old new] {:keys [write print], :as params} lookup project)

top-level ns rename function

orphaned

added in 3.0

(orphaned)(orphaned ns)(orphaned ns params)(orphaned ns params project)(orphaned ns params lookup project)

tests without corresponding source code

(orphaned)

(orphaned ’code.manage {:print {:item true}})

pedantic

added in 3.0

(pedantic)(pedantic ns)(pedantic ns params)(pedantic ns params project)(pedantic ns params lookup project)

returns tests that may be improved

(pedantic)

(pedantic ’code.manage)

purge

added in 3.0

(purge)(purge ns)(purge ns params)(purge ns params project)(purge ns params lookup project)

removes docstrings from source code

(purge {:write false})

(purge {:full true :write false})

(purge ’platform.unit {:return :summary :write false}) ;;{:items 38, :results 32, :deletes 1272, :total 169} => map?

refactor-code

added in 3.0

(refactor-code)(refactor-code ns)(refactor-code ns params)(refactor-code ns params project)(refactor-code ns params lookup project)

refactors code based on given :edits

(refactor-code ’code.manage {:edits []})

refactor-swap

added in 4.0

(refactor-swap ns params narrow update-fn)

refactors by providing a list of symbols to swap

refactor-test

added in 4.0

(refactor-test)(refactor-test ns)(refactor-test ns params)(refactor-test ns params project)(refactor-test ns params lookup project)

refactors code tests based on given :edits

require-file

added in 3.0

(require-file)(require-file ns)(require-file ns params)(require-file ns params project)(require-file ns params lookup project)

requires the file and returns public vars

(require-file ’code.manage) => (contains ’analyse extract …)

scaffold

added in 3.0

(scaffold)(scaffold ns)(scaffold ns params)(scaffold ns params project)(scaffold ns params lookup project)

creates a scaffold for a new or existing set of tests

(scaffold {:write false})

(scaffold ’code.manage {:print {:item true} :write false})

snapto

added in 4.1

(snapto)(snapto ns)(snapto ns params)(snapto ns params project)(snapto ns params lookup project)

formats fact tests into snap-to layout

(snapto {:write false})

(snapto ’code.manage {:print {:item true} :write false})

todos

added in 3.0

(todos)(todos ns)(todos ns params)(todos ns params project)(todos ns params lookup project)

checks for tests with TODO as docstring

(todos)

(todos ’platform {:print {:result false :summary false} :return :all})

transform-code

added in 3.0

(transform-code)(transform-code ns)(transform-code ns params)(transform-code ns params project)(transform-code ns params lookup project)

helper function for any arbitrary transformation of text

(transform-code {:transform #(str % “\n\n\n\nhello world”)}) ;; {:deletes 0, :inserts 5, :changed arrange, :updated false} => map?

(transform-code ’#{code.manage.unit} {:print {:summary true :result true :item true :function true} :transform #(str % “\n\n\n\nhello world”) :full true})

unchecked

added in 3.0

(unchecked)(unchecked ns)(unchecked ns params)(unchecked ns params project)(unchecked ns params lookup project)

returns tests without => checks

(unchecked)

(unchecked ’code.manage)

unclean

added in 3.0

(unclean)(unclean ns)(unclean ns params)(unclean ns params project)(unclean ns params lookup project)

finds source code that has top-level comments

(unclean ’code.manage)

(unclean ’hara)

vars

added in 3.0

(vars)(vars ns)(vars ns params)(vars ns params project)(vars ns params lookup project)

returns the list of vars in a namespace

(vars ’code.manage)

(vars ’code.manage {:sorted false})

(vars ’#{code.manage} {:return #{:errors :summary}}) => (contains-in {:errors any :summary {:errors 0 :warnings 0 :items 1 :results 1 :total number?}})