File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9,17 +9,18 @@ setup() {
99 export GITHUB_RUN_ID=" 99"
1010 export GITHUB_RUN_ATTEMPT=" 3"
1111 export GITHUB_ACTION_PATH=" $BATS_TEST_DIRNAME /.."
12+ export TEST_WORK_DIR=" $TEST_TMP_DIR /workspace"
1213 export GITHUB_ENV=" $TEST_TMP_DIR /github.env"
13- mkdir -p " $RUNNER_TEMP "
14+ mkdir -p " $RUNNER_TEMP " " $TEST_WORK_DIR "
1415 : > " $GITHUB_ENV "
1516}
1617
1718teardown () {
1819 teardown_test_tmp_dir
1920}
2021
21- @test " setup exports variables and selects engine php version" {
22- run bash " $ BATS_TEST_DIRNAME /../bin/setup.sh" " clean/phpdoc-md"
22+ @test " setup exports variables and falls back to engine php version" {
23+ run bash -c " cd \" $TEST_WORK_DIR \" && bash \" $ BATS_TEST_DIRNAME /../bin/setup.sh\" \ " clean/phpdoc-md\" "
2324 [ " $status " -eq 0 ]
2425
2526 run grep -F " NEEDED_PHP_VERSION=8.1" " $GITHUB_ENV "
@@ -29,8 +30,24 @@ teardown() {
2930 [ -d " $NEW_WIKI_PATH " ]
3031}
3132
33+ @test " setup uses composer.json php constraint when present" {
34+ cat > " $TEST_WORK_DIR /composer.json" << 'EOF '
35+ {
36+ "require": {
37+ "php": "^8.2"
38+ }
39+ }
40+ EOF
41+
42+ run bash -c " cd \" $TEST_WORK_DIR \" && bash \" $BATS_TEST_DIRNAME /../bin/setup.sh\" \" clean/phpdoc-md\" "
43+ [ " $status " -eq 0 ]
44+
45+ run grep -F " NEEDED_PHP_VERSION=8.2" " $GITHUB_ENV "
46+ [ " $status " -eq 0 ]
47+ }
48+
3249@test " setup fails on unknown engine" {
33- run bash " $ BATS_TEST_DIRNAME /../bin/setup.sh" " unknown/engine"
50+ run bash -c " cd \" $TEST_WORK_DIR \" && bash \" $ BATS_TEST_DIRNAME /../bin/setup.sh\" \ " unknown/engine\" "
3451 [ " $status " -eq 1 ]
3552 [[ " $output " == * " ERROR: unknown engine" * ]]
3653}
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bats
2+
3+ load " $BATS_TEST_DIRNAME /helpers.bash"
4+
5+ setup () {
6+ setup_test_tmp_dir
7+ export RESOLVER_SCRIPT=" $BATS_TEST_DIRNAME /../bin/resolve-php-version.sh"
8+ }
9+
10+ teardown () {
11+ teardown_test_tmp_dir
12+ }
13+
14+ @test " resolve-php-version uses engine defaults when composer files are missing" {
15+ run bash -c " cd \" $TEST_TMP_DIR \" && bash \" $RESOLVER_SCRIPT \" \" clean/phpdoc-md\" "
16+ [ " $status " -eq 0 ]
17+ [ " $output " = " 8.1" ]
18+
19+ run bash -c " cd \" $TEST_TMP_DIR \" && bash \" $RESOLVER_SCRIPT \" \" evert/phpdoc-md\" "
20+ [ " $status " -eq 0 ]
21+ [ " $output " = " 7.4" ]
22+ }
23+
24+ @test " resolve-php-version reads composer.json require.php first" {
25+ cat > " $TEST_TMP_DIR /composer.json" << 'EOF '
26+ {
27+ "require": {
28+ "php": "^8.3 || ^8.4"
29+ }
30+ }
31+ EOF
32+
33+ run bash -c " cd \" $TEST_TMP_DIR \" && bash \" $RESOLVER_SCRIPT \" \" clean/phpdoc-md\" "
34+ [ " $status " -eq 0 ]
35+ [ " $output " = " 8.3" ]
36+ }
37+
38+ @test " resolve-php-version reads composer.lock when composer.json has no php requirement" {
39+ cat > " $TEST_TMP_DIR /composer.json" << 'EOF '
40+ {
41+ "require": {
42+ "monolog/monolog": "^3.0"
43+ }
44+ }
45+ EOF
46+
47+ cat > " $TEST_TMP_DIR /composer.lock" << 'EOF '
48+ {
49+ "platform": {
50+ "php": ">=8.2"
51+ }
52+ }
53+ EOF
54+
55+ run bash -c " cd \" $TEST_TMP_DIR \" && bash \" $RESOLVER_SCRIPT \" \" clean/phpdoc-md\" "
56+ [ " $status " -eq 0 ]
57+ [ " $output " = " 8.2" ]
58+ }
59+
60+ @test " resolve-php-version fails for unknown engine" {
61+ run bash -c " cd \" $TEST_TMP_DIR \" && bash \" $RESOLVER_SCRIPT \" \" unknown/engine\" "
62+ [ " $status " -eq 1 ]
63+ [[ " $output " == * " ERROR: unknown engine" * ]]
64+ }
You can’t perform that action at this time.
0 commit comments