obsidian-test-mocks
v7.1.0
Published
Comprehensive test mocks for the Obsidian API.
Maintainers
Readme
obsidian-test-mocks
Comprehensive test mocks for the Obsidian plugin API. Provides in-memory implementations of every class and function in obsidian.d.ts, plus prototype extensions Obsidian adds to DOM/JS builtins. The package is tested with 100% code coverage (lines, branches, functions, and statements) enforced on every build.
Installation
npm install --save-dev obsidian-test-mocksPeer dependencies: obsidian
Entry Points
| Import path | Description |
| ---------------------------------------------------- | ------------------------------------------------------------------------- |
| obsidian-test-mocks/obsidian | Mocks for every class/function in obsidian.d.ts |
| obsidian-test-mocks/setup | Exports setup() / teardown() for prototype extensions and globals |
| obsidian-test-mocks/vitest-setup | One-stop Vitest setup file: calls setup() + mocks the obsidian module |
| obsidian-test-mocks/jest-setup | Jest setup file: calls setup() for prototype extensions and globals |
| obsidian-test-mocks/obsidian-typings/setup | Deprecated no-op. Bridging is no longer needed |
| obsidian-test-mocks/obsidian-typings/vitest-setup | Deprecated no-op. Bridging is no longer needed |
| obsidian-test-mocks/obsidian-typings/jest-setup | Deprecated no-op. Bridging is no longer needed |
Quick start
Add the Vitest setup files — they patch prototypes/globals and mock obsidian automatically:
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
setupFiles: ['obsidian-test-mocks/vitest-setup']
}
});Then build a vault in memory and exercise the code under test:
import { App } from 'obsidian-test-mocks/obsidian';
const app = App.createConfigured__({
files: {
'notes/daily/2024-01-01.md': '# New Year'
}
});Documentation
The full documentation — guides plus the complete, searchable API reference generated from the library's TSDoc — is published at mnaoumov.dev/obsidian-test-mocks.
- API reference
- Getting Started
- Test Runner Setup
- Importing the Mocks
- Creating Mock Instances
- Strict Mocks
- Type Bridging
- Using with
obsidian-typings - Design Principles
Support
My other Obsidian resources
See my other Obsidian resources.
