clojure-testing

Test ClojureScript pods with isolated in-memory datahike connections.

1|Updated Apr 21, 2026
One-click install
npx skills add https://github.com/seantempesta/seon --skill clojure-testing-seantempesta
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: clojure-testing
Source: https://github.com/seantempesta/seon/tree/main/.claude/skills/clojure-testing
Command: npx skills add https://github.com/seantempesta/seon --skill clojure-testing-seantempesta

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill addresses the complexities of testing asynchronous ClojureScript code in a runtime environment, specifically handling Promise-based flows, ambient database connections, and state isolation.

Core Features & Use Cases

  • Async Test Management: Provides patterns for managing cljs.test/async, ensuring proper cleanup and error handling to prevent hanging test suites.
  • Database Isolation: Implements a fresh in-memory datahike connection per test to ensure state purity and prevent cross-test data contamination.
  • Root Binding Patterns: Offers reliable strategies for managing ambient dynamic variables (like db/conn) across asynchronous boundaries where standard binding forms fail.

Quick Start

Run the full ClojureScript test suite for the Seon pod by executing the test script in the terminal.

Frequently Asked Questions about clojure-testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test asynchronous ClojureScript code without hanging the test suite?

Testing asynchronous ClojureScript without hanging requires managing cljs.test/async flows with proper cleanup and error handling. This skill provides patterns to ensure async continuations resolve correctly, preventing hanging test suites.

What is the best way to isolate a datahike database for each ClojureScript test?

The best way to isolate a datahike database for ClojureScript tests is to establish a fresh in-memory connection per test. This skill implements this pattern to ensure state purity and prevent cross-test data contamination.

Why does my dynamic variable binding fail across asynchronous boundaries in ClojureScript?

Dynamic variable binding fails across asynchronous boundaries in ClojureScript because standard binding forms do not propagate through Promise-based flows. This skill offers root binding patterns to manage ambient dynamic variables reliably across those async boundaries.

Can I use this testing framework for capability-based tests in a Seon runtime?

Yes, you can use this framework for capability-based tests in a Seon runtime. It enforces strict envelope contracts and provides isolated asynchronous test environments specifically designed for reliable Seon pod execution.

Do I need to manually manage root-level state for ClojureScript testing?

You do not need to manually manage root-level state entirely yourself. This skill provides reliable strategies for root-level state management, handling ambient dynamic variables across asynchronous boundaries where standard binding forms fail.