[build] add e2e tests (#12)

* [build] add e2e tests

* [build] add e2e workflow
This commit is contained in:
Tomas Votruba 2021-05-11 13:12:15 +02:00 committed by GitHub
parent 54d89a4a41
commit ecc876ca19
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 144 additions and 1 deletions

View File

@ -0,0 +1,50 @@
name: End to End tests
on:
pull_request: null
push:
branches:
- main
jobs:
end_to_end:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0']
name: PHP ${{ matrix.php }} system tests
steps:
- uses: actions/checkout@v2
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none # disable xdebug, pcov
# This workflow runs system tests: Use the Rector application from the source
# checkout to process "fixture" projects in tests/system-tests
# to see if those can be processed successfully
- name: Generate Composer autoloaders in fixture directories
run: |
for FIXTURE in `find e2e -mindepth 1 -maxdepth 1 -type d`; do
(cd $FIXTURE; composer install --no-progress --ansi)
done
- name: Run system tests
run: |
HAS_FAILURES=0
for FIXTURE in `find e2e -mindepth 1 -maxdepth 1 -type d`; do
echo "-----> Running $FIXTURE <-----"
if (cd $FIXTURE; ../../bin/rector process --dry-run --clear-cache); then
echo "-----> Result: OK <-----"
else
echo "-----> Result: FAILED <-----"
HAS_FAILURES=1
fi
done
exit $HAS_FAILURES

View File

@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\Output\\": "src"
}
}
}

View File

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$containerConfigurator->import(SetList::PHP_53);
};

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
final class OutputInterface
{
}

View File

@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Foo\\": "src"
}
}
}

View File

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$containerConfigurator->import(SetList::PHP_53);
};

View File

@ -0,0 +1,12 @@
<?php
namespace Foo;
class Foo
{
public function __construct()
{
$bar = 'baz';
print $bar{2};
}
}

View File

@ -0,0 +1,7 @@
{
"autoload": {
"psr-4": {
"Foo\\": "src"
}
}
}

View File

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
use Rector\Core\Configuration\Option;
use Rector\Set\ValueObject\SetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$parameters = $containerConfigurator->parameters();
$parameters->set(Option::PATHS, [__DIR__.'/src']);
$containerConfigurator->import(SetList::PHP_53);
};

View File

@ -0,0 +1,10 @@
<?php
namespace Foo;
class Foo
{
public function __construct(
public string $property = 'value',
) {}
}

View File

@ -9,7 +9,6 @@ use Rector\ChangesReporting\ValueObjectFactory\ErrorFactory;
use Rector\Core\Application\FileDecorator\FileDiffFileDecorator;
use Rector\Core\Application\FileProcessor;
use Rector\Core\Application\FileSystem\RemovedAndAddedFilesCollector;
use Rector\Core\Application\FileSystem\RemovedAndAddedFilesProcessor;
use Rector\Core\Configuration\Configuration;
use Rector\Core\Contract\Processor\FileProcessorInterface;
use Rector\Core\Exception\ShouldNotHappenException;