Add a testing section in README
This commit is contained in:
parent
eeeb774668
commit
5e756acd75
18
README.md
18
README.md
|
@ -8,6 +8,7 @@ The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definiti
|
||||||
**Note:** The Obsidian API is still in early alpha and is subject to change at any time!
|
**Note:** The Obsidian API is still in early alpha and is subject to change at any time!
|
||||||
|
|
||||||
This sample plugin demonstrates some of the basic functionality the plugin API can do.
|
This sample plugin demonstrates some of the basic functionality the plugin API can do.
|
||||||
|
|
||||||
- Adds a ribbon icon, which shows a Notice when clicked.
|
- Adds a ribbon icon, which shows a Notice when clicked.
|
||||||
- Adds a command "Open Sample Modal" which opens a Modal.
|
- Adds a command "Open Sample Modal" which opens a Modal.
|
||||||
- Adds a plugin setting tab to the settings page.
|
- Adds a plugin setting tab to the settings page.
|
||||||
|
@ -53,11 +54,28 @@ Quick starting guide for new plugin devs:
|
||||||
- `npm i` or `yarn` to install dependencies.
|
- `npm i` or `yarn` to install dependencies.
|
||||||
- `npm run dev` to start compilation in watch mode.
|
- `npm run dev` to start compilation in watch mode.
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
There is a setup for writing unit tests using [`Jest`](https://jestjs.io/). To run the test suite you can run
|
||||||
|
|
||||||
|
```BASH
|
||||||
|
npm run test
|
||||||
|
```
|
||||||
|
|
||||||
|
or in watch mode
|
||||||
|
|
||||||
|
```BASH
|
||||||
|
npm run test:watch
|
||||||
|
```
|
||||||
|
|
||||||
|
Due to the Obsidian source code not being open-source Jest's more common mocking patterns don't work, such as `jest.mock('obsidian')`. Instead we use [Jest's manual mocks](https://jestjs.io/docs/manual-mocks) by writing a partial mock module in [`__mocks__/obsidian.js`](./__mocks__/obsidian.js). Note that it does not contain a full mock of `obsidian` and you might need to extend it to test your plugin. If you do, please consider adding your extension to this repo.
|
||||||
|
|
||||||
## Manually installing the plugin
|
## Manually installing the plugin
|
||||||
|
|
||||||
- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`.
|
- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`.
|
||||||
|
|
||||||
## Improve code quality with eslint (optional)
|
## Improve code quality with eslint (optional)
|
||||||
|
|
||||||
- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code.
|
- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code.
|
||||||
- To use eslint with this project, make sure to install eslint from terminal:
|
- To use eslint with this project, make sure to install eslint from terminal:
|
||||||
- `npm install -g eslint`
|
- `npm install -g eslint`
|
||||||
|
|
Loading…
Reference in New Issue