You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Run the following command from the root directory to run every test:
vendor/bin/phpunit tests
There are several tests in the tests/ directory:
ApiTest.php contains various unit tests that test the PHP interface.
ExceptionTest.php contains unit tests that test for exceptions thrown by the parser and compiler.
FailingTest.php contains tests reported in Github issues that demonstrate compatibility bugs.
InputTest.php compiles every .scss file in the tests/inputs directory
then compares to the respective .css file in the tests/outputs directory.
SassSpecTest.php extracts tests from the sass/sass-spec repository.
When changing any of the tests in tests/inputs, the tests will most likely
fail because the output has changed. Once you verify that the output is correct
you can run the following command to rebuild all the tests:
BUILD=1 vendor/bin/phpunit tests
This will compile all the tests, and save results into tests/outputs. It also
updates the list of excluded specs from sass-spec.
Run the following command from the root directory to analyse the codebase:
make phpstan
As most of the codebase is composed of legacy code which cannot be type-checked
fully, the setup contains a baseline file with all errors we want to ignore. In
particular, we ignore all errors related to not specifying the types inside arrays
when these arrays correspond to the representation of Sass values and Sass AST nodes
in the parser and compiler.
When contributing, the proper process to deal with static analysis is the following:
Make your change in the codebase
Run make phpstan
Fix errors reported by phpstan when possible
Repeat step 2 and 3 until nothing gets fixed anymore at step 3
Run make phpstan-baseline to regenerate the phpstan baseline
Additions to the baseline will be reviewed to avoid ignoring errors that should have
been fixed.