Traewelling / traewelling

Free check-in service to log your public transit journeys
https://traewelling.de
GNU Affero General Public License v3.0
231 stars 46 forks source link

Sometimes the json export test is weird since the renamed stopovers #1735

Closed MrKrisKrisu closed 1 year ago

MrKrisKrisu commented 1 year ago
3) Tests\Feature\ExportTripsTest::test_json_export
Expected response status code [>=200, <300] but received 500.
Failed asserting that false is true.

The following exception occurred during the last request:

ErrorException: Attempt to read property "stopovers" on null in /home/runner/work/traewelling/traewelling/app/Models/TrainCheckin.php:82
Stack trace:
#0 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php(270): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /home/runner/work/traewelling/traewelling/app/Models/TrainCheckin.php(82): Illuminate\Foundation\Bootstrap\HandleExceptions->Illuminate\Foundation\Bootstrap\{closure}()
#2 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(661): App\Models\TrainCheckin->getOriginStopoverAttribute()
#3 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(2083): Illuminate\Database\Eloquent\Model->mutateAttribute()
#4 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(492): Illuminate\Database\Eloquent\Model->transformModelValue()
#5 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(446): Illuminate\Database\Eloquent\Model->getAttributeValue()
#6 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2246): Illuminate\Database\Eloquent\Model->getAttribute()
#7 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2294): Illuminate\Database\Eloquent\Model->offsetExists()
#8 /home/runner/work/traewelling/traewelling/app/Models/TrainCheckin.php(130): Illuminate\Database\Eloquent\Model->__isset()
#9 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(661): App\Models\TrainCheckin->getDurationAttribute()
#10 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(2083): Illuminate\Database\Eloquent\Model->mutateAttribute()
#11 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(492): Illuminate\Database\Eloquent\Model->transformModelValue()
#12 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(446): Illuminate\Database\Eloquent\Model->getAttributeValue()
#13 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2246): Illuminate\Database\Eloquent\Model->getAttribute()
#14 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(170): Illuminate\Database\Eloquent\Model->offsetExists()
#15 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/helpers.php(77): Illuminate\Support\Arr::exists()
#16 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(1049): data_get()
#17 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(470): Illuminate\Support\Collection->Illuminate\Support\Traits\{closure}()
#18 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(734): Illuminate\Support\Collection->Illuminate\Support\Traits\{closure}()
#19 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(470): Illuminate\Support\Collection->reduce()
#20 /home/runner/work/traewelling/traewelling/app/Models/User.php(97): Illuminate\Support\Collection->sum()
#21 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(661): App\Models\User->getTrainDurationAttribute()
#22 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(2083): Illuminate\Database\Eloquent\Model->mutateAttribute()
#23 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(492): Illuminate\Database\Eloquent\Model->transformModelValue()
#24 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php(446): Illuminate\Database\Eloquent\Model->getAttributeValue()
#25 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2222): Illuminate\Database\Eloquent\Model->getAttribute()
#26 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php(139): Illuminate\Database\Eloquent\Model->__get()
#27 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php(139): Illuminate\Http\Resources\Json\JsonResource->__get()
#28 /home/runner/work/traewelling/traewelling/app/Http/Resources/UserBaseResource.php(26): Illuminate\Http\Resources\Json\JsonResource->__get()
#29 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(95): App\Http\Resources\UserBaseResource->toArray()
#30 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(241): Illuminate\Http\Resources\Json\JsonResource->resolve()
#31 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(101): Illuminate\Http\Resources\Json\JsonResource->jsonSerialize()
#32 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(241): Illuminate\Http\Resources\Json\JsonResource->resolve()
#33 [internal function]: Illuminate\Http\Resources\Json\JsonResource->jsonSerialize()
#34 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php(87): json_encode()
#35 /home/runner/work/traewelling/traewelling/vendor/symfony/http-foundation/JsonResponse.php(49): Illuminate\Http\JsonResponse->setData()
#36 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php(32): Symfony\Component\HttpFoundation\JsonResponse->__construct()
#37 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php(101): Illuminate\Http\JsonResponse->__construct()
#38 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(338): Illuminate\Routing\ResponseFactory->json()
#39 /home/runner/work/traewelling/traewelling/app/Http/Controllers/Backend/Export/ExportController.php(84): Illuminate\Support\Facades\Facade::__callStatic()
#40 /home/runner/work/traewelling/traewelling/app/Http/Controllers/Backend/Export/ExportController.php(54): App\Http\Controllers\Backend\Export\ExportController::exportJson()
#41 /home/runner/work/traewelling/traewelling/app/Http/Controllers/API/v1/StatisticsController.php(364): App\Http\Controllers\Backend\Export\ExportController::generateExport()
#42 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\API\v1\StatisticsController->generateTravelExport()
#43 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(43): Illuminate\Routing\Controller->callAction()
#44 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\Routing\ControllerDispatcher->dispatch()
#45 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#46 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Router.php(798): Illuminate\Routing\Route->run()
#47 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#48 /home/runner/work/traewelling/traewelling/vendor/laravel/passport/src/Http/Middleware/CheckForAnyScope.php(28): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Laravel\Passport\Http\Middleware\CheckForAnyScope->handle()
#50 /home/runner/work/traewelling/traewelling/app/Http/Middleware/PrivacyPolicyInterceptionMiddleware.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\PrivacyPolicyInterceptionMiddleware->handle()
#52 /home/runner/work/traewelling/traewelling/app/Http/Middleware/Language.php(61): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#53 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\Language->handle()
#54 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#55 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#56 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#57 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Auth\Middleware\Authenticate->handle()
#58 /home/runner/work/traewelling/traewelling/app/Http/Middleware/Api/JsonMiddleware.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#59 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): App\Http\Middleware\Api\JsonMiddleware->handle()
#60 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(126): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(62): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest()
#62 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Routing\Middleware\ThrottleRequests->handle()
#63 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#64 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Router.php(799): Illuminate\Pipeline\Pipeline->then()
#65 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Router.php(776): Illuminate\Routing\Router->runRouteWithinStack()
#66 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Router.php(740): Illuminate\Routing\Router->runRoute()
#67 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Routing/Router.php(729): Illuminate\Routing\Router->dispatchToRoute()
#68 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(190): Illuminate\Routing\Router->dispatch()
#69 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(141): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#70 /home/runner/work/traewelling/traewelling/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#71 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle()
#72 /home/runner/work/traewelling/traewelling/vendor/fruitcake/laravel-cors/src/HandleCors.php(52): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#73 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Fruitcake\Cors\HandleCors->handle()
#74 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#75 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Http\Middleware\TrustProxies->handle()
#76 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#77 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#78 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#79 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#80 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#81 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#82 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#83 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#84 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#85 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(180): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#86 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(116): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#87 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\Pipeline\Pipeline->then()
#88 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(134): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#89 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(557): Illuminate\Foundation\Http\Kernel->handle()
#90 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(523): Illuminate\Foundation\Testing\TestCase->call()
#91 /home/runner/work/traewelling/traewelling/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php(365): Illuminate\Foundation\Testing\TestCase->json()
#92 /home/runner/work/traewelling/traewelling/tests/Feature/ExportTripsTest.php(46): Illuminate\Foundation\Testing\TestCase->postJson()
#93 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/Framework/TestCase.php(1608): Tests\Feature\ExportTripsTest->test_json_export()
#94 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/Framework/TestCase.php(1214): PHPUnit\Framework\TestCase->runTest()
#95 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/Framework/TestResult.php([728](https://github.com/Traewelling/traewelling/actions/runs/5509028394/jobs/10041152182?pr=1728#step:10:729)): PHPUnit\Framework\TestCase->runBare()
#96 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/Framework/TestCase.php(964): PHPUnit\Framework\TestResult->run()
#97 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/Framework/TestSuite.php(684): PHPUnit\Framework\TestCase->run()
#98 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(651): PHPUnit\Framework\TestSuite->run()
#99 /home/runner/work/traewelling/traewelling/vendor/phpunit/phpunit/src/TextUI/Command.php(144): PHPUnit\TextUI\TestRunner->run()
#100 /home/runner/work/traewelling/traewelling/vendor/brianium/paratest/bin/phpunit-wrapper.php(42): PHPUnit\TextUI\Command->run()
#101 /home/runner/work/traewelling/traewelling/vendor/brianium/paratest/bin/phpunit-wrapper.php(47): {closure}()
#102 {main}
MrKrisKrisu commented 1 year ago

fixed with #1728