Okapi Testing
Two pieces: `okapi`'s test server / test context, and the `okapitest` package's fluent request builder and assertions.
### Test Server
```go
func TestBooks(t *testing.T) {
server := okapi.NewTestServer
Comprehensive software testing skill covering unit tests, integration tests, TDD/BDD, mocking strategies, and test automation across multiple languages. Use this skill when writing test cases, designing test strategies, implementing test automation, or need guidance on testing frameworks and best practices. Ideal for ensuring code quality through comprehensive testing approaches.
Decide which tests to write, keep, and delete, and prove a change works before calling it done. Test only business logic and its corner cases. Run the real thing on every target before reporting a fix. Delete tests for removed or replaced behavior. Use when writing, adding, reviewing, or cleaning up tests or specs, when fixing a bug or a flaky test, before reporting any change as done, or when a change removes or replaces behavior that tests cover.
Write and review Playwright E2E tests for Langflow. Trigger when the user asks to write, fix, or review E2E tests, spec files, Playwright tests, or integration tests that exercise the full UI. Also trigger when modifying data-testid attributes, test helpers in tests/utils/, or fixture configuration.
Write, review and place automated tests that can fail. Use for writing, generating or reviewing tests, choosing a layer (unit, DOM, runtime-specific, end-to-end, benchmark), or rejecting a test that cannot fail. Covers Vitest and Playwright.
Use when writing tests, deciding what to test, setting up test infrastructure, or reviewing test coverage. Also use when adding new commands or features that need test coverage.
Pre-push quality gates for the Pokédex project. Use before any git push, PR creation, or when verifying code changes pass all checks. Activates when running tests, linting, or formatting.
Language-agnostic testing, with Swift Testing and XCTest migration. Use for TDD, test strategy, regression and property-based tests, test doubles, legacy characterization, coverage, flaky suites, or migrating XCTest to @Test, #expect, and #require. For Swift concurrency test patterns, use `swift`; for running Apple builds and tests, use `xcode`.
Guides writing, reviewing, and improving software tests, including test selection, unit and integration testing, regression coverage, and test quality. Use when creating or evaluating tests for code.
Rules for tests that fail only when real behavior breaks: coverage, test doubles, naming, assertions, and testability. Use before writing or changing a test, when reviewing tests, when deciding what to test or whether to use a real object, fake, or mock, when a test is flaky, brittle, or breaks on every refactor, or when production code is hard to test.
Write, review, and audit tests for Flutter projects using Clean Architecture + Riverpod. Use when writing unit tests, widget tests, golden tests, reviewing test quality, checking test coverage, creating mocks/spies, or testing Riverpod providers.
Methodology and formats for test-case design and execution across the entire SSDLC. Code tests, logic, processes, specs, constraints. Domain-specific eval patterns: testing/eval_patterns/. Triggers when test cases must be designed or executed (build prepare test-design, fix verify); NOT for ad-hoc manual checks without a test plan.
A folder with a SKILL.md file: a name, a description of when to use it, and instructions. Claude loads a skill only when the task matches its description.
How do I use one I find here?
Copy the folder into your project's .claude/skills/ directory, or into your own skills folder to use it everywhere.
What do the warnings mean?
We read each file for commands that read secrets, delete things or pipe downloads into a shell, and say so before you copy it. No warning is not a promise that a file is safe.
Which skills worked for people?
Open a skill to see its discussion. Reports from people and their agents are coming.