From e22f3ba9adf21eac057eab29284333b1631258b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EB=8F=99=EC=9C=A4=20=28Donny=29?= Date: Sat, 13 Jul 2024 17:05:24 +0900 Subject: [PATCH] doc(es/minifier): Add contributing section --- crates/swc_ecma_minifier/README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/swc_ecma_minifier/README.md b/crates/swc_ecma_minifier/README.md index 9d550337fe57..be07c9c24094 100644 --- a/crates/swc_ecma_minifier/README.md +++ b/crates/swc_ecma_minifier/README.md @@ -18,3 +18,19 @@ From mac os x, run ``` ./scripts/instrument/all.sh path/to/input/dir ``` + +# Contributing + +## Testing + +Please prefer execution tests over unit tests. Execution tests are more useful because there's no chance of human error while reviewing. + +### Execution tests + +You can add a test to [`./tests/exec.rs`](https://github.com/swc-project/swc/blob/main/crates/swc_ecma_minifier/tests/exec.rs) + +You can run `./scripts/exec.sh` from `./crates/swc_ecma_minifier` to run execution tests of SWC minifier. `exec.sh` runs the cargo test with `--features debug`, and it makes the cargo test print lots of debug logging. You can search for `"change"`, and you can know the code responsible the optimization. The minifier has `report_change!` macro, and it prints the location of the relevant code. + +### Fixture tests + +You can add a test to [`./tests/fixture`](https://github.com/swc-project/swc/blob/main/crates/swc_ecma_minifier/tests/fixture/). You can select any directory, but please prefer to use the `issues` directory. You can run `./scripts/test.sh` from `./crates/swc_ecma_minifier` to run fixture tests. You can run it like `./scripts/test.sh foo` to run test cases only with `foo` in the file path. If you want to get location of change, you can do `./scripts/test.sh foo --features debug`.