Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
9bad79c
Improve server coverage reporting
roncodes Jul 19, 2026
61d28e2
Expand server export coverage
roncodes Jul 19, 2026
7175052
Expand tracking value object coverage
roncodes Jul 19, 2026
bc3633a
Add flow resource coverage
roncodes Jul 19, 2026
3b1bb6c
Cover server exception contracts
roncodes Jul 19, 2026
63cce14
Cover server validation rules and casts
roncodes Jul 19, 2026
a1fec24
Cover server event contracts
roncodes Jul 19, 2026
586c2c1
Cover metric base aggregation behavior
roncodes Jul 19, 2026
1bf4dd2
Cover analytics option behavior
roncodes Jul 19, 2026
2f630fc
Cover server import contracts
roncodes Jul 19, 2026
4342b79
Cover telematics provider registry
roncodes Jul 19, 2026
a2dcd83
Cover tracking provider edge cases
roncodes Jul 19, 2026
2f377f9
Cover notification and mail contracts
roncodes Jul 19, 2026
688f908
Cover provider registration contracts
roncodes Jul 19, 2026
2ba47b2
Cover server request contracts
roncodes Jul 19, 2026
e5b6e34
Cover fuel provider resources
roncodes Jul 19, 2026
64b5d40
Cover fuel provider implementations
roncodes Jul 19, 2026
51a807e
Fix event dispatch trait imports
roncodes Jul 19, 2026
dde3126
Fix event contract fixtures
roncodes Jul 19, 2026
c1855ed
Fix exception contract user fixture
roncodes Jul 19, 2026
2ba81d7
Cover location transform middleware
roncodes Jul 19, 2026
e4f2bd1
Cover vehicle data parsing
roncodes Jul 19, 2026
dd678fa
Fix fuel provider resource fixtures
roncodes Jul 19, 2026
6b244da
Fix fuel provider resource request context
roncodes Jul 19, 2026
12db616
Cover Fleet-Ops support services
roncodes Jul 19, 2026
98738b9
Cover Fleet-Ops expansion contracts
roncodes Jul 19, 2026
14c205d
Cover Fleet-Ops utility contracts
roncodes Jul 19, 2026
d51ae52
Cover Fleet-Ops command contracts
roncodes Jul 19, 2026
6bfc320
Cover Fleet-Ops HOS constraint logic
roncodes Jul 19, 2026
4161a87
Use fakes for Fleet-Ops coverage tests
roncodes Jul 19, 2026
c2ba864
Fix telematics registry fake visibility
roncodes Jul 19, 2026
4e62cf8
Bind internal request for fuel resources
roncodes Jul 19, 2026
2ac2c77
Align fuel resource coverage with public IDs
roncodes Jul 19, 2026
659bf5c
Avoid Eloquent recent HOS fixtures
roncodes Jul 19, 2026
5c8c61e
Use typed HOS schedule fixtures
roncodes Jul 19, 2026
8a90293
Avoid Eloquent order fixture in notifications
roncodes Jul 19, 2026
a3c3030
Avoid event provider base class in tests
roncodes Jul 19, 2026
7ce3a7d
Add bool return types to request authorization
roncodes Jul 19, 2026
ce7dc9c
Add array return types to request contracts
roncodes Jul 19, 2026
0393d43
Stub validation Rule in request contracts
roncodes Jul 19, 2026
a0ae0c6
Fix live cache fake versioning
roncodes Jul 19, 2026
1d250b8
Fix support value object coverage tests
roncodes Jul 19, 2026
28dedd2
Stub Fleetbase URL helper in value tests
roncodes Jul 19, 2026
12b5474
Normalize tracking provider acronyms
roncodes Jul 19, 2026
f76a7ed
Stabilize utility coverage contracts
roncodes Jul 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@
"@test:coverage:clover",
"@coverage:summary"
],
"coverage:check": [
"@test:coverage:clover",
"php scripts/coverage-summary.php coverage/clover.xml --fail-under=100"
],
"coverage:summary": "php scripts/coverage-summary.php coverage/clover.xml",
"lint": "php-cs-fixer fix -v",
"test:lint": "php-cs-fixer fix -v --dry-run",
Expand Down
20 changes: 19 additions & 1 deletion scripts/coverage-summary.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,20 @@

declare(strict_types=1);

$cloverPath = $argv[1] ?? 'coverage/clover.xml';
$cloverPath = 'coverage/clover.xml';
$failUnder = null;

foreach (array_slice($argv, 1) as $arg) {
if (str_starts_with($arg, '--fail-under=')) {
$failUnder = (float) substr($arg, strlen('--fail-under='));

continue;
}

if ($arg !== '') {
$cloverPath = $arg;
}
}

if (!is_file($cloverPath)) {
fwrite(STDERR, "Coverage file not found: {$cloverPath}\n");
Expand Down Expand Up @@ -108,3 +121,8 @@ function intMetric(SimpleXMLElement $node, string $name): int
$relativePath = preg_replace('#^' . preg_quote(getcwd(), '#') . '/?#', '', $file['path']);
printf(" %6.2f%% %5d/%-5d %s\n", $file['percent'], $file['covered'], $file['statements'], $relativePath ?: $file['path']);
}

if ($failUnder !== null && coveragePercent($coveredStatements, $statements) < $failUnder) {
fwrite(STDERR, sprintf("\nCoverage %.2f%% is below the required %.2f%% line threshold.\n", coveragePercent($coveredStatements, $statements), $failUnder));
exit(1);
}
2 changes: 1 addition & 1 deletion server/src/Events/DriverLocationChanged.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/DriverSimulatedLocationChanged.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/EntityActivityChanged.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/EntityCompleted.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/EntityDriverAssigned.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class EntityDriverAssigned implements ShouldBroadcast
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/FuelProviderTransactionImported.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Fleetbase\FleetOps\Events;

use Fleetbase\FleetOps\Models\FuelProviderTransaction;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class FuelProviderTransactionImported
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/FuelProviderTransactionMatched.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Fleetbase\FleetOps\Events;

use Fleetbase\FleetOps\Models\FuelProviderTransaction;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class FuelProviderTransactionMatched
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/FuelProviderTransactionUnmatched.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace Fleetbase\FleetOps\Events;

use Fleetbase\FleetOps\Models\FuelProviderTransaction;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class FuelProviderTransactionUnmatched
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/FuelReportCreatedFromProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

use Fleetbase\FleetOps\Models\FuelProviderTransaction;
use Fleetbase\FleetOps\Models\FuelReport;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class FuelReportCreatedFromProvider
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/GeofenceDwelled.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

/**
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/GeofenceEntered.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

/**
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/GeofenceExited.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

/**
Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/VehicleLocationChanged.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/WaypointActivityChanged.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
2 changes: 1 addition & 1 deletion server/src/Events/WaypointCompleted.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
*
* Exception thrown when provider rate limit is exceeded.
*/
class TelematicRateLimitExceededException extends ProviderException
class TelematicRateLimitExceededException extends TelematicProviderException
{
}
6 changes: 3 additions & 3 deletions server/src/Http/Requests/BulkDispatchRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class BulkDispatchRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return $this->session()->has('user');
}
Expand All @@ -21,7 +21,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'ids' => ['required', 'array'],
Expand All @@ -33,7 +33,7 @@ public function rules()
*
* @return array
*/
public function messages()
public function messages(): array
{
return [
'ids.required' => 'Please provide a resource ID.',
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CancelOrderRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class CancelOrderRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential');
}
Expand All @@ -21,7 +21,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'order' => 'required|exists:orders,uuid',
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateContactRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CreateContactRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('storefront_key') || request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}
Expand All @@ -22,7 +22,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'name' => [new RequiredIf($this->isMethod('POST'))],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateDeviceRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@

class CreateDeviceRequest extends FleetbaseRequest
{
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}

public function rules()
public function rules(): array
{
return [
'name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
Expand Down
6 changes: 3 additions & 3 deletions server/src/Http/Requests/CreateDriverRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class CreateDriverRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->is('navigator/v1/*') || request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}
Expand All @@ -23,7 +23,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
$isCreating = $this->isMethod('POST');

Expand All @@ -50,7 +50,7 @@ public function rules()
*
* @return array
*/
public function attributes()
public function attributes(): array
{
return [
'email' => 'email address',
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateEntityRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CreateEntityRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}
Expand All @@ -22,7 +22,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'name' => [Rule::requiredIf($this->isMethod('POST'))],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateEquipmentRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

class CreateEquipmentRequest extends FleetbaseRequest
{
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}

public function rules()
public function rules(): array
{
return [
'name' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateFleetRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CreateFleetRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential');
}
Expand All @@ -22,7 +22,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'name' => [Rule::requiredIf($this->isMethod('POST'))],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateFuelReportRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class CreateFuelReportRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}
Expand All @@ -21,7 +21,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'driver' => ['required'],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateFuelTransactionRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

class CreateFuelTransactionRequest extends FleetbaseRequest
{
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}

public function rules()
public function rules(): array
{
return [
'provider' => [Rule::requiredIf($this->isMethod('POST')), 'string'],
Expand Down
4 changes: 2 additions & 2 deletions server/src/Http/Requests/CreateIssueRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class CreateIssueRequest extends FleetbaseRequest
*
* @return bool
*/
public function authorize()
public function authorize(): bool
{
return request()->session()->has('api_credential') || request()->session()->has('is_sanctum_token');
}
Expand All @@ -21,7 +21,7 @@ public function authorize()
*
* @return array
*/
public function rules()
public function rules(): array
{
return [
'driver' => ['required'],
Expand Down
Loading
Loading