Skip to content

Commit 37f0832

Browse files
wimskibarryvdhlaravel-ide-helper
authored
Make tests pass on Windows (#1205)
* Make all tests pass cross platform * Add job to run tests on Windows * Merge test jobs with conditional Windows step for line endings * Prefix job name with OS * Update git lf step if statement * Exclude all tests for Windows except PHP 8.0 * composer fix-style Co-authored-by: Barry vd. Heuvel <barry@fruitcake.nl> Co-authored-by: laravel-ide-helper <laravel-ide-helper@users.noreply.github.com>
1 parent b6871d0 commit 37f0832

File tree

5 files changed

+35
-19
lines changed

5 files changed

+35
-19
lines changed

.github/workflows/run-tests.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,31 @@ on:
1212

1313
jobs:
1414
php-tests:
15-
runs-on: ubuntu-20.04
15+
runs-on: ${{ matrix.os }}
1616
timeout-minutes: 15
1717
env:
1818
COMPOSER_NO_INTERACTION: 1
1919

2020
strategy:
2121
matrix:
22+
os: [ubuntu-20.04, windows-2019]
2223
php: [8.0, 7.4, 7.3]
2324
laravel: [8.*]
24-
25-
name: P${{ matrix.php }} - L${{ matrix.laravel }}
26-
25+
dependency-version: [prefer-lowest, prefer-stable]
26+
exclude:
27+
- php: 8.0
28+
dependency-version: prefer-lowest
29+
- os: windows-2019
30+
php: 7.4
31+
- os: windows-2019
32+
php: 7.3
2733
steps:
34+
- name: Set git to use LF
35+
if: ${{ matrix.os == 'windows-2019' }}
36+
run: |
37+
git config --global core.autocrlf false
38+
git config --global core.eol lf
39+
2840
- name: Checkout code
2941
uses: actions/checkout@v2
3042

@@ -33,7 +45,7 @@ jobs:
3345
with:
3446
php-version: ${{ matrix.php }}
3547
coverage: none
36-
extensions: pdo_sqlite
48+
extensions: pdo_sqlite, fileinfo
3749

3850
- name: Install dependencies
3951
run: |

src/Console/ModelsCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ public function getPropertiesFromTable($model)
431431
$customTypes = $this->laravel['config']->get("ide-helper.custom_db_types.{$platformName}", []);
432432
foreach ($customTypes as $yourTypeName => $doctrineTypeName) {
433433
try {
434-
if(!Type::hasType($yourTypeName)) {
434+
if (!Type::hasType($yourTypeName)) {
435435
Type::addType($yourTypeName, get_class(Type::getType($doctrineTypeName)));
436436
}
437437
} catch (DBALException $exception) {

tests/Console/EloquentCommandTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@ public function testCommand()
4949
';Unexpected no document on Illuminate\\\Database\\\Eloquent\\\Model;',
5050
$display
5151
);
52+
$modelClassFilePath = preg_quote(
53+
str_replace('/', DIRECTORY_SEPARATOR, '/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php')
54+
);
5255
$this->assertRegExp(
53-
';Wrote expected docblock to .*/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php;',
56+
';Wrote expected docblock to .*' . $modelClassFilePath . ';',
5457
$display
5558
);
5659
}

tests/Console/ModelsCommand/DynamicRelations/Test.php

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,24 @@ public function test(): void
1818
]);
1919

2020
if (PHP_VERSION_ID >= 80000) {
21-
$errors = <<<TXT
22-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicBelongsTo() : Attempt to read property "created_at" on null
23-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasMany() : Attempt to read property "created_at" on null
24-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasOne() : Attempt to read property "created_at" on null
25-
TXT;
21+
$errors = [
22+
'Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicBelongsTo() : Attempt to read property "created_at" on null',
23+
'Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasMany() : Attempt to read property "created_at" on null',
24+
'Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasOne() : Attempt to read property "created_at" on null',
25+
];
2626
} else {
27-
$errors = <<<TXT
28-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicBelongsTo() : Trying to get property 'created_at' of non-object
29-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasMany() : Trying to get property 'created_at' of non-object
30-
Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasOne() : Trying to get property 'created_at' of non-object
31-
TXT;
27+
$errors = [
28+
"Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicBelongsTo() : Trying to get property 'created_at' of non-object",
29+
"Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasMany() : Trying to get property 'created_at' of non-object",
30+
"Error resolving relation model of Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\DynamicRelations\Models\Dynamic:dynamicHasOne() : Trying to get property 'created_at' of non-object",
31+
];
3232
}
3333

3434
$this->assertSame(0, $tester->getStatusCode());
3535
$this->assertStringContainsString('Written new phpDocBlock to', $tester->getDisplay());
36-
$this->assertStringContainsString($errors, $tester->getDisplay());
36+
foreach ($errors as $error) {
37+
$this->assertStringContainsString($error, $tester->getDisplay());
38+
}
3739
$this->assertMatchesMockedSnapshot();
3840
}
3941
}

tests/Console/ModelsCommand/Variadic/Models/Simple.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic\Models;
66

7-
use DateTime;
87
use Illuminate\Database\Eloquent\Builder;
98
use Illuminate\Database\Eloquent\Model;
109

0 commit comments

Comments
 (0)