diff options
author | Marvin Hagemeister <hello@marvinh.dev> | 2023-05-18 21:51:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-18 15:51:17 -0400 |
commit | 66d25df42cf94e289b1173020a50065732a081d1 (patch) | |
tree | 77e2adc1374661fc6a94d4ca21d8466577d97df1 /cli/tests | |
parent | ff0daa2b9d8a149d36173e19ce8dc169921486c7 (diff) |
fix(npm): run pre and post tasks if present (#19178)
This PR optionally runs pre and posts tasks from `package.json` if
available.
Fixes #19157
Diffstat (limited to 'cli/tests')
19 files changed, 123 insertions, 0 deletions
diff --git a/cli/tests/integration/task_tests.rs b/cli/tests/integration/task_tests.rs index 45b091b08..47be2acdf 100644 --- a/cli/tests/integration/task_tests.rs +++ b/cli/tests/integration/task_tests.rs @@ -233,3 +233,57 @@ itest!(task_npx_on_own { exit_code: 1, http_server: true, }); + +itest!(task_pre_post { + args: "task test", + cwd: Some("task/package_json_pre_post/"), + output: "task/package_json_pre_post/bin.out", + copy_temp_dir: Some("task/package_json_pre_post/"), + exit_code: 0, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); + +itest!(task_pre { + args: "task test", + cwd: Some("task/package_json_pre/"), + output: "task/package_json_pre/bin.out", + copy_temp_dir: Some("task/package_json_pre/"), + exit_code: 0, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); + +itest!(task_post { + args: "task test", + cwd: Some("task/package_json_post/"), + output: "task/package_json_post/bin.out", + copy_temp_dir: Some("task/package_json_post/"), + exit_code: 0, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); + +itest!(task_post_only { + args: "task test", + cwd: Some("task/package_json_post_only/"), + output: "task/package_json_post_only/bin.out", + copy_temp_dir: Some("task/package_json_post_only/"), + exit_code: 1, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); + +itest!(task_pre_only { + args: "task test", + cwd: Some("task/package_json_pre_only/"), + output: "task/package_json_pre_only/bin.out", + copy_temp_dir: Some("task/package_json_pre_only/"), + exit_code: 1, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); + +itest!(task_deno_no_pre_post { + args: "task test", + cwd: Some("task/deno_json_pre_post/"), + output: "task/deno_json_pre_post/bin.out", + copy_temp_dir: Some("task/deno_json_pre_post/"), + exit_code: 0, + envs: vec![("NO_COLOR".to_string(), "1".to_string())], +}); diff --git a/cli/tests/testdata/task/deno_json_pre_post/bin.out b/cli/tests/testdata/task/deno_json_pre_post/bin.out new file mode 100644 index 000000000..ad66595f1 --- /dev/null +++ b/cli/tests/testdata/task/deno_json_pre_post/bin.out @@ -0,0 +1,2 @@ +Task test echo 'test' +test diff --git a/cli/tests/testdata/task/deno_json_pre_post/deno.json b/cli/tests/testdata/task/deno_json_pre_post/deno.json new file mode 100644 index 000000000..165b92e3a --- /dev/null +++ b/cli/tests/testdata/task/deno_json_pre_post/deno.json @@ -0,0 +1,7 @@ +{ + "tasks": { + "pretest": "echo 'pretest'", + "posttest": "echo 'posttest'", + "test": "echo 'test'" + } +} diff --git a/cli/tests/testdata/task/deno_json_pre_post/echo.out b/cli/tests/testdata/task/deno_json_pre_post/echo.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/cli/tests/testdata/task/deno_json_pre_post/echo.out @@ -0,0 +1 @@ +0 diff --git a/cli/tests/testdata/task/package_json_post/bin.out b/cli/tests/testdata/task/package_json_post/bin.out new file mode 100644 index 000000000..9864cc76d --- /dev/null +++ b/cli/tests/testdata/task/package_json_post/bin.out @@ -0,0 +1,5 @@ +Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in an upcoming release. +Task test echo 'test' +test +Task posttest echo 'posttest' +posttest diff --git a/cli/tests/testdata/task/package_json_post/echo.out b/cli/tests/testdata/task/package_json_post/echo.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/cli/tests/testdata/task/package_json_post/echo.out @@ -0,0 +1 @@ +0 diff --git a/cli/tests/testdata/task/package_json_post/package.json b/cli/tests/testdata/task/package_json_post/package.json new file mode 100644 index 000000000..82689f7d4 --- /dev/null +++ b/cli/tests/testdata/task/package_json_post/package.json @@ -0,0 +1,6 @@ +{ + "scripts": { + "posttest": "echo 'posttest'", + "test": "echo 'test'" + } +} diff --git a/cli/tests/testdata/task/package_json_post_only/bin.out b/cli/tests/testdata/task/package_json_post_only/bin.out new file mode 100644 index 000000000..9e7cea091 --- /dev/null +++ b/cli/tests/testdata/task/package_json_post_only/bin.out @@ -0,0 +1,4 @@ +Task not found: test +Available tasks: +- posttest (package.json) + echo 'posttest' diff --git a/cli/tests/testdata/task/package_json_post_only/echo.out b/cli/tests/testdata/task/package_json_post_only/echo.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/cli/tests/testdata/task/package_json_post_only/echo.out @@ -0,0 +1 @@ +0 diff --git a/cli/tests/testdata/task/package_json_post_only/package.json b/cli/tests/testdata/task/package_json_post_only/package.json new file mode 100644 index 000000000..ce8a6bbd5 --- /dev/null +++ b/cli/tests/testdata/task/package_json_post_only/package.json @@ -0,0 +1,5 @@ +{ + "scripts": { + "posttest": "echo 'posttest'" + } +} diff --git a/cli/tests/testdata/task/package_json_pre/bin.out b/cli/tests/testdata/task/package_json_pre/bin.out new file mode 100644 index 000000000..89c64f2e5 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre/bin.out @@ -0,0 +1,5 @@ +Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in an upcoming release. +Task pretest echo 'pretest' +pretest +Task test echo 'test' +test diff --git a/cli/tests/testdata/task/package_json_pre/echo.out b/cli/tests/testdata/task/package_json_pre/echo.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre/echo.out @@ -0,0 +1 @@ +0 diff --git a/cli/tests/testdata/task/package_json_pre/package.json b/cli/tests/testdata/task/package_json_pre/package.json new file mode 100644 index 000000000..d3eba02a1 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre/package.json @@ -0,0 +1,6 @@ +{ + "scripts": { + "test": "echo 'test'", + "pretest": "echo 'pretest'" + } +} diff --git a/cli/tests/testdata/task/package_json_pre_only/bin.out b/cli/tests/testdata/task/package_json_pre_only/bin.out new file mode 100644 index 000000000..e96e8e341 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_only/bin.out @@ -0,0 +1,4 @@ +Task not found: test +Available tasks: +- pretest (package.json) + echo 'pretest' diff --git a/cli/tests/testdata/task/package_json_pre_only/echo.out b/cli/tests/testdata/task/package_json_pre_only/echo.out new file mode 100644 index 000000000..d00491fd7 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_only/echo.out @@ -0,0 +1 @@ +1 diff --git a/cli/tests/testdata/task/package_json_pre_only/package.json b/cli/tests/testdata/task/package_json_pre_only/package.json new file mode 100644 index 000000000..032a5d4ea --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_only/package.json @@ -0,0 +1,5 @@ +{ + "scripts": { + "pretest": "echo 'pretest'" + } +} diff --git a/cli/tests/testdata/task/package_json_pre_post/bin.out b/cli/tests/testdata/task/package_json_pre_post/bin.out new file mode 100644 index 000000000..0c686b9cd --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_post/bin.out @@ -0,0 +1,7 @@ +Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in an upcoming release. +Task pretest echo 'pretest' +pretest +Task test echo 'test' +test +Task posttest echo 'posttest' +posttest diff --git a/cli/tests/testdata/task/package_json_pre_post/echo.out b/cli/tests/testdata/task/package_json_pre_post/echo.out new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_post/echo.out @@ -0,0 +1 @@ +0 diff --git a/cli/tests/testdata/task/package_json_pre_post/package.json b/cli/tests/testdata/task/package_json_pre_post/package.json new file mode 100644 index 000000000..24a3ff1ed --- /dev/null +++ b/cli/tests/testdata/task/package_json_pre_post/package.json @@ -0,0 +1,7 @@ +{ + "scripts": { + "pretest": "echo 'pretest'", + "posttest": "echo 'posttest'", + "test": "echo 'test'" + } +} |