Skip to content

docs: update section around testing #4274

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 1, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
- [Development workflow](#development-workflow)
- [Updates to VS Code](#updates-to-vs-code)
- [Build](#build)
- [Test](#test)
- [Test](#test)
- [Unit tests](#unit-tests)
- [Script tests](#script-tests)
- [Integration tests](#integration-tests)
- [End-to-end tests](#end-to-end-tests)
- [Structure](#structure)
Expand Down Expand Up @@ -129,13 +130,14 @@ yarn package
> If you need your builds to support older distros, run the build commands
> inside a Docker container with all the build requirements installed.

### Test
## Test

There are three kinds of tests in code-server:
There are four kinds of tests in code-server:

1. Unit tests
2. Integration tests
3. End-to-end tests
2. Script tests
3. Integration tests
4. End-to-end tests
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

non-blocking(nice-to-have) it's typically less error-prone to just use 1. for all of them and let markdown convert them into 1 2 3 4 etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wish I could remember the point, but @code-asher mentioned a point against doing this so I haven't, but yeah, it probably is less error-prone!

Copy link
Member

@code-asher code-asher Oct 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahaha yeah because I read these raw in my editor and all I see is 1 1 1 11 1 1 1 1 1 1111 😛 So I always appreciate when the numbering is correct in the source ❤️

Really this should not be done manually, I would use a VS Code plugin or something to number them automatically.


### Unit tests

Expand All @@ -146,6 +148,14 @@ These live under [test/unit](../test/unit).

We use unit tests for functions and things that can be tested in isolation. The file structure is modeled closely after `/src` so it's easy for people to know where test files should live.

### Script tests

Our script tests are written in bash and run using [bats](https://github.com/bats-core/bats-core).

These tests live under `test/scripts`.

We use these to test anything related to our scripts (most of which live under `ci`).

### Integration tests

These are a work in progress. We build code-server and run a script called
Expand Down
15 changes: 15 additions & 0 deletions docs/MAINTAINING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- [Docker](#docker)
- [Homebrew](#homebrew)
- [npm](#npm)
- [Testing](#testing)
- [Documentation](#documentation)
- [Troubleshooting](#troubleshooting)

Expand Down Expand Up @@ -214,6 +215,20 @@ We publish code-server as a npm package [here](https://www.npmjs.com/package/cod

This is currently automated with the release process.

## Testing

Our testing structure is laid out under our [Contributing docs](https://coder.com/docs/code-server/latest/CONTRIBUTING#test).

We hope to eventually hit 100% test converage with our unit tests, and maybe one day our scripts (coverage not tracked currently).

If you're ever looking to add more tests, here are a few ways to get started:

- run `yarn test:unit` and look at the coverage chart. You'll see all the uncovered lines. This is a good place to start.
- look at `test/scripts` to see which scripts are tested. We can always use more tests there.
- look at `test/e2e`. We can always use more end-to-end tests.

Otherwise, talk to a current maintainer and ask which part of the codebase is lacking most when it comes to tests.

## Documentation

### Troubleshooting
Expand Down