# How to find examples of Jest-based plugin tests
When first writing [[for Plugin Developers to Automate Tests|automated tests]], it can be useful to review existing test code for ideas.
For the popular [Jest](https://jestjs.io) framework, there are already many community plugins to review.
## Obsidian Plugins Depending on Jest
As of 2023-11-21.
*Note: No guarantee that there are any tests written or run!*
- adziok/[obsidian-incremental-id](https://github.com/adziok/obsidian-incremental-id)
- aidenlx/[marginnote-companion](https://github.com/aidenlx/marginnote-companion)
- anpigon/[obsidian-book-search-plugin](https://github.com/anpigon/obsidian-book-search-plugin)
- anpigon/[obsidian-steemit-plugin](https://github.com/anpigon/obsidian-steemit-plugin)
- anpigon/[obsidian-tistory-plugin](https://github.com/anpigon/obsidian-tistory-plugin)
- AwesomeDog/[obsidian-awesome-flashcard](https://github.com/AwesomeDog/obsidian-awesome-flashcard)
- beaussan/[update-time-on-edit-obsidian](https://github.com/beaussan/update-time-on-edit-obsidian)
- benhughes/[obsidian-link-exploder](https://github.com/benhughes/obsidian-link-exploder)
- benr77/[obsidian-gitlab-issues](https://github.com/benr77/obsidian-gitlab-issues)
- bkyle/[obsidian-vault-statistics-plugin](https://github.com/bkyle/obsidian-vault-statistics-plugin)
- blacksmithgu/[obsidian-dataview](https://github.com/blacksmithgu/obsidian-dataview)
- BumbrT/[obsidian-reading-comments](https://github.com/BumbrT/obsidian-reading-comments)
- carlonicora/[obsidian-rpg-manager](https://github.com/carlonicora/obsidian-rpg-manager)
- carvah/[markdown-tree-plugin](https://github.com/carvah/markdown-tree-plugin)
- charliecm/[obsidian-tidy-footnotes](https://github.com/charliecm/obsidian-tidy-footnotes)
- chhoumann/[MetaEdit](https://github.com/chhoumann/MetaEdit)
- clouedoc/[postgresql-obsidian](https://github.com/clouedoc/postgresql-obsidian)
- CMorooney/[obsidian-game-search-plugin](https://github.com/CMorooney/obsidian-game-search-plugin)
- coddingtonbear/[obsidian-csv-table](https://github.com/coddingtonbear/obsidian-csv-table)
- coddingtonbear/[obsidian-itinerary](https://github.com/coddingtonbear/obsidian-itinerary)
- coddingtonbear/[obsidian-local-rest-api](https://github.com/coddingtonbear/obsidian-local-rest-api)
- danielo515/[obsidian-modal-form](https://github.com/danielo515/obsidian-modal-form)
- darlal/[obsidian-switcher-plus](https://github.com/darlal/obsidian-switcher-plus)
- davish/[obsidian-full-calendar](https://github.com/davish/obsidian-full-calendar)
- denisoed/[obsidian-orthography](https://github.com/denisoed/obsidian-orthography)
- dennisseidel/[obsidian-todoist-link](https://github.com/dennisseidel/obsidian-todoist-link)
- dpickett/[open-related-url](https://github.com/dpickett/open-related-url)
- eatgrass/[obsidian-vocab-highlighter](https://github.com/eatgrass/obsidian-vocab-highlighter)
- ebullient/[obsidian-day-planner-og](https://github.com/ebullient/obsidian-day-planner-og)
- ebullient/[obsidian-snippetor](https://github.com/ebullient/obsidian-snippetor)
- ebullient/[obsidian-task-collector](https://github.com/ebullient/obsidian-task-collector)
- edonyzpc/[personal-assistant](https://github.com/edonyzpc/personal-assistant)
- elias-sundqvist/[obsidian-annotator](https://github.com/elias-sundqvist/obsidian-annotator)
- Erl-koenig/[obsidian-checkboxReorder](https://github.com/Erl-koenig/obsidian-checkboxReorder)
- erykwalder/[quoth](https://github.com/erykwalder/quoth)
- fantasycalendar/[obsidian-fantasy-calendar](https://github.com/fantasycalendar/obsidian-fantasy-calendar)
- Fevol/[obsidian-translate](https://github.com/Fevol/obsidian-translate)
- fez-github/[obsidian-multi-tag](https://github.com/fez-github/obsidian-multi-tag)
- FHachez/[obsidian-convert-url-to-iframe](https://github.com/FHachez/obsidian-convert-url-to-iframe)
- fleetingnotes/[fleeting-notes-obsidian](https://github.com/fleetingnotes/fleeting-notes-obsidian)
- ganesshkumar/[obsidian-table-editor](https://github.com/ganesshkumar/obsidian-table-editor)
- Gorkycreator/[obsidian-quick-tagger](https://github.com/Gorkycreator/obsidian-quick-tagger)
- greater-than/[Obsidian-Tracker-Plus](https://github.com/greater-than/Obsidian-Tracker-Plus)
- gtg922r/[obsidian-numerals](https://github.com/gtg922r/obsidian-numerals)
- hadynz/[obsidian-kindle-plugin](https://github.com/hadynz/obsidian-kindle-plugin)
- ivan-lednev/[obsidian-day-planner](https://github.com/ivan-lednev/obsidian-day-planner)
- ivan-lednev/[obsidian-task-archiver](https://github.com/ivan-lednev/obsidian-task-archiver)
- j0rd1smit/[obsidian-copilot-auto-completion](https://github.com/j0rd1smit/obsidian-copilot-auto-completion)
- javalent/[initiative-tracker](https://github.com/javalent/initiative-tracker)
- JeppeKlitgaard/[ObsidianAnkiBridge](https://github.com/JeppeKlitgaard/ObsidianAnkiBridge)
- jglev/[obsidian-paste-mode](https://github.com/jglev/obsidian-paste-mode)
- joethei/[obsidian-link-favicon](https://github.com/joethei/obsidian-link-favicon)
- joethei/[obsidian-rss](https://github.com/joethei/obsidian-rss)
- johansatge/[obsidian-automatic-table-of-contents](https://github.com/johansatge/obsidian-automatic-table-of-contents)
- k4a-l/[obsidian-heading-shifter](https://github.com/k4a-l/obsidian-heading-shifter)
- kbravh/[obsidian-tweet-to-markdown](https://github.com/kbravh/obsidian-tweet-to-markdown)
- kemayo/[obsidian-smart-links](https://github.com/kemayo/obsidian-smart-links)
- kenlim/[file-chucker-plugin](https://github.com/kenlim/file-chucker-plugin)
- Kevger/[obsidian-laws-of-form](https://github.com/Kevger/obsidian-laws-of-form)
- kometenstaub/[linked-data-helper](https://github.com/kometenstaub/linked-data-helper)
- kometenstaub/[linked-data-vocabularies](https://github.com/kometenstaub/linked-data-vocabularies)
- kometenstaub/[metadata-extractor](https://github.com/kometenstaub/metadata-extractor)
- kometenstaub/[obsidian-version-history-diff](https://github.com/kometenstaub/obsidian-version-history-diff)
- konodyuk/[obsidian-typing](https://github.com/konodyuk/obsidian-typing)
- larslockefeer/[obsidian-plugin-todo](https://github.com/larslockefeer/obsidian-plugin-todo)
- leonhma/[obsidian-functionplot](https://github.com/leonhma/obsidian-functionplot)
- levirs565/[obsidian-dendron-tree](https://github.com/levirs565/obsidian-dendron-tree)
- lhansford/[obsidian-checklist-reset](https://github.com/lhansford/obsidian-checklist-reset)
- LiamRiddell/[obsidian-solve](https://github.com/LiamRiddell/obsidian-solve)
- logancyang/[obsidian-copilot](https://github.com/logancyang/obsidian-copilot)
- lstrzepek/[obsidian-yt-transcript](https://github.com/lstrzepek/obsidian-yt-transcript)
- lucasbordeau/[obsidian-tiddlywiki](https://github.com/lucasbordeau/obsidian-tiddlywiki)
- marc0l92/[obsidian-jira-issue](https://github.com/marc0l92/obsidian-jira-issue)
- marcusolsson/[obsidian-projects](https://github.com/marcusolsson/obsidian-projects)
- mdelobelle/[metadatamenu](https://github.com/mdelobelle/metadatamenu)
- micahke/[obsidian-gpt3-notes](https://github.com/micahke/obsidian-gpt3-notes)
- MichaBrugger/[booksidian_plugin](https://github.com/MichaBrugger/booksidian_plugin)
- michaeladams/[obsidian-text-progress-bar](https://github.com/michaeladams/obsidian-text-progress-bar)
- mii-key/[obsidian-links](https://github.com/mii-key/obsidian-links)
- mokeyish/[obsidian-enhancing-export](https://github.com/mokeyish/obsidian-enhancing-export)
- moolmanruan/[obsidian-sequence-hotkeys](https://github.com/moolmanruan/obsidian-sequence-hotkeys)
- motif-software/[obsimian](https://github.com/motif-software/obsimian)
- mProjectsCode/[obsidian-media-db-plugin](https://github.com/mProjectsCode/obsidian-media-db-plugin)
- mrjackphil/[obsidian-text-expand](https://github.com/mrjackphil/obsidian-text-expand)
- MSzturc/[obsidian-advanced-slides](https://github.com/MSzturc/obsidian-advanced-slides)
- mvgrimes/[obsidian-todotxt-plugin](https://github.com/mvgrimes/obsidian-todotxt-plugin)
- nakalsio/[obsidian-danpung](https://github.com/nakalsio/obsidian-danpung)
- Narsail/[habit-tracker-obsidian](https://github.com/Narsail/habit-tracker-obsidian)
- nevernotmove/[obsidian-chordlyrics](https://github.com/nevernotmove/obsidian-chordlyrics)
- obsidian-tasks-group/[obsidian-tasks](https://github.com/obsidian-tasks-group/obsidian-tasks)
- Odaimoko/[tag-project](https://github.com/Odaimoko/tag-project)
- oleeskild/[obsidian-digital-garden](https://github.com/oleeskild/obsidian-digital-garden)
- OlegLustenko/[obsidian-bulk-rename](https://github.com/OlegLustenko/obsidian-bulk-rename)
- omardelarosa/[obsidian-mtg](https://github.com/omardelarosa/obsidian-mtg)
- omnivore-app/[obsidian-omnivore](https://github.com/omnivore-app/obsidian-omnivore)
- onlyafly/[number-headings-obsidian](https://github.com/onlyafly/number-headings-obsidian)
- platers/[obsidian-linter](https://github.com/platers/obsidian-linter)
- pmorim/[obsidian-chess](https://github.com/pmorim/obsidian-chess)
- prncc/[obsidian-repeat-plugin](https://github.com/prncc/obsidian-repeat-plugin)
- ptournet/[obsidian-html-tabs](https://github.com/ptournet/obsidian-html-tabs)
- pvojtechovsky/[obsidian-link-with-alias](https://github.com/pvojtechovsky/obsidian-link-with-alias)
- RafaelGB/[obsidian-db-folder](https://github.com/RafaelGB/obsidian-db-folder)
- RafaelGB/[Obsidian-ZettelFlow](https://github.com/RafaelGB/Obsidian-ZettelFlow)
- raineszm/[obsidian-export-to-tex](https://github.com/raineszm/obsidian-export-to-tex)
- raineszm/[obsidian-latex-environments](https://github.com/raineszm/obsidian-latex-environments)
- reuseman/[flashcards-obsidian](https://github.com/reuseman/flashcards-obsidian)
- rwirdemann/[obsidian-week-planner](https://github.com/rwirdemann/obsidian-week-planner)
- ryangomba/[obsidian-todo-sort](https://github.com/ryangomba/obsidian-todo-sort)
- samuele-cozzi/[obsidian-marp-slides](https://github.com/samuele-cozzi/obsidian-marp-slides)
- scambier/[obsidian-omnisearch](https://github.com/scambier/obsidian-omnisearch)
- SebastianMC/[obsidian-custom-sort](https://github.com/SebastianMC/obsidian-custom-sort)
- shoedler/[crossbow](https://github.com/shoedler/crossbow)
- SimonTC/[obsidian-note-autocreation](https://github.com/SimonTC/obsidian-note-autocreation)
- snezhig/[obsidian-front-matter-title](https://github.com/snezhig/obsidian-front-matter-title)
- songkg7/[o2](https://github.com/songkg7/o2)
- st3v3nmw/[obsidian-spaced-repetition](https://github.com/st3v3nmw/obsidian-spaced-repetition)
- sundevista/[local-quotes](https://github.com/sundevista/local-quotes)
- swar8080/[obsidian-plugin-update-tracker](https://github.com/swar8080/obsidian-plugin-update-tracker)
- symunona/[obsidian-bulk-exporter](https://github.com/symunona/obsidian-bulk-exporter)
- sytone/[obsidian-queryallthethings](https://github.com/sytone/obsidian-queryallthethings)
- tadashi-aikawa/[obsidian-another-quick-switcher](https://github.com/tadashi-aikawa/obsidian-another-quick-switcher)
- tadashi-aikawa/[obsidian-various-complements-plugin](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin)
- tadashi-aikawa/[shukuchi](https://github.com/tadashi-aikawa/shukuchi)
- TakamiChie/[Obsidian_CharacterInsertionPlugin](https://github.com/TakamiChie/Obsidian_CharacterInsertionPlugin)
- tansongchen/[obsidian-note-synchronizer](https://github.com/tansongchen/obsidian-note-synchronizer)
- TechTheAwesome/[obsidian-s3](https://github.com/TechTheAwesome/obsidian-s3)
- tgrosinger/[crumbs-obsidian](https://github.com/tgrosinger/crumbs-obsidian)
- tgrosinger/[ledger-obsidian](https://github.com/tgrosinger/ledger-obsidian)
- Tiim/[obsidian-attendance](https://github.com/Tiim/obsidian-attendance)
- tillahoffmann/[obsidian-file-include](https://github.com/tillahoffmann/obsidian-file-include)
- timhor/[obsidian-editor-shortcuts](https://github.com/timhor/obsidian-editor-shortcuts)
- timhor/[obsidian-sentence-navigator](https://github.com/timhor/obsidian-sentence-navigator)
- tmfelwu/[obsidian-inbox](https://github.com/tmfelwu/obsidian-inbox)
- trey-wallis/[obsidian-dataloom](https://github.com/trey-wallis/obsidian-dataloom)
- ulisesantana/[obsidian-pending-notes](https://github.com/ulisesantana/obsidian-pending-notes)
- val3344/[obsidian-update-relative-links](https://github.com/val3344/obsidian-update-relative-links)
- veritas1/[eleven-labs-obsidian-plugin](https://github.com/veritas1/eleven-labs-obsidian-plugin)
- vslinko/[obsidian-outliner](https://github.com/vslinko/obsidian-outliner)
- vslinko/[obsidian-zoom](https://github.com/vslinko/obsidian-zoom)
- Wanxp/[obsidian-douban](https://github.com/Wanxp/obsidian-douban)
- wenlzhang/[obsidian-task-marker](https://github.com/wenlzhang/obsidian-task-marker)
- yajamon/[obsidian-command-alias-plugin](https://github.com/yajamon/obsidian-command-alias-plugin)
- zjhcn/[obsidian-code-preview](https://github.com/zjhcn/obsidian-code-preview)
- zlovatt/[obsidian-trim-whitespace](https://github.com/zlovatt/obsidian-trim-whitespace)
## Updating the list of plugins
```bash
git clone https://github.com/claremacrae/obsidian-repos-downloader.git
cd obsidian-repos-downloader
python3 obsidian-repos-downloader.py -t plugins --group-by-user
```
Then, make a file called `format.py` with the following contents:
```py
from pathlib import Path
for path in Path('plugins').rglob('jest.config.*'):
parts = path.parts
author = parts[1]
name = parts[2]
print(f"- {author}/[{name}](https://github.com/{author}/{name})")
```
Then, ```python3 format.py```
%% Hub footer: Please don't edit anything below this line %%
# This note in GitHub
<span class="git-footer">[Edit In GitHub](https://github.dev/obsidian-community/obsidian-hub/blob/main/04%20-%20Guides%2C%20Workflows%2C%20%26%20Courses/Guides/How%20to%20find%20examples%20of%20Jest-based%20plugin%20tests.md "git-hub-edit-note") | [Copy this note](https://raw.githubusercontent.com/obsidian-community/obsidian-hub/main/04%20-%20Guides%2C%20Workflows%2C%20%26%20Courses/Guides/How%20to%20find%20examples%20of%20Jest-based%20plugin%20tests.md "git-hub-copy-note") | [Download this vault](https://github.com/obsidian-community/obsidian-hub/archive/refs/heads/main.zip "git-hub-download-vault") </span>