mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-15 10:04:13 -08:00
Merge remote-tracking branch 'origin/develop'
This commit is contained in:
commit
a6a0bfacc2
|
@ -661,7 +661,17 @@ class UsersController extends Controller
|
||||||
$user = User::find($request->get('id'));
|
$user = User::find($request->get('id'));
|
||||||
$user->two_factor_secret = null;
|
$user->two_factor_secret = null;
|
||||||
$user->two_factor_enrolled = 0;
|
$user->two_factor_enrolled = 0;
|
||||||
$user->save();
|
$user->saveQuietly();
|
||||||
|
|
||||||
|
// Log the reset
|
||||||
|
$logaction = new Actionlog();
|
||||||
|
$logaction->target_type = User::class;
|
||||||
|
$logaction->target_id = $user->id;
|
||||||
|
$logaction->item_type = User::class;
|
||||||
|
$logaction->item_id = $user->id;
|
||||||
|
$logaction->created_at = date('Y-m-d H:i:s');
|
||||||
|
$logaction->user_id = Auth::user()->id;
|
||||||
|
$logaction->logaction('2FA reset');
|
||||||
|
|
||||||
return response()->json(['message' => trans('admin/settings/general.two_factor_reset_success')], 200);
|
return response()->json(['message' => trans('admin/settings/general.two_factor_reset_success')], 200);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
|
|
@ -102,6 +102,10 @@ class AssetsController extends Controller
|
||||||
{
|
{
|
||||||
$this->authorize(Asset::class);
|
$this->authorize(Asset::class);
|
||||||
|
|
||||||
|
// There are a lot more rules to add here but prevents
|
||||||
|
// errors around `asset_tags` not being present below.
|
||||||
|
$this->validate($request, ['asset_tags' => ['required', 'array']]);
|
||||||
|
|
||||||
// Handle asset tags - there could be one, or potentially many.
|
// Handle asset tags - there could be one, or potentially many.
|
||||||
// This is only necessary on create, not update, since bulk editing is handled
|
// This is only necessary on create, not update, since bulk editing is handled
|
||||||
// differently
|
// differently
|
||||||
|
|
|
@ -260,7 +260,7 @@ class CustomFieldsController extends Controller
|
||||||
|
|
||||||
$field->name = trim(e($request->get("name")));
|
$field->name = trim(e($request->get("name")));
|
||||||
$field->element = e($request->get("element"));
|
$field->element = e($request->get("element"));
|
||||||
$field->field_values = e($request->get("field_values"));
|
$field->field_values = $request->get("field_values");
|
||||||
$field->user_id = Auth::id();
|
$field->user_id = Auth::id();
|
||||||
$field->help_text = $request->get("help_text");
|
$field->help_text = $request->get("help_text");
|
||||||
$field->show_in_email = $show_in_email;
|
$field->show_in_email = $show_in_email;
|
||||||
|
|
|
@ -42,6 +42,10 @@ class ActionlogPresenter extends Presenter
|
||||||
// User related icons
|
// User related icons
|
||||||
if ($this->itemType() == 'user') {
|
if ($this->itemType() == 'user') {
|
||||||
|
|
||||||
|
if ($this->actionType()=='2fa reset') {
|
||||||
|
return 'fa-solid fa-mobile-screen';
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->actionType()=='create new') {
|
if ($this->actionType()=='create new') {
|
||||||
return 'fa-solid fa-user-plus';
|
return 'fa-solid fa-user-plus';
|
||||||
}
|
}
|
||||||
|
@ -61,6 +65,7 @@ class ActionlogPresenter extends Presenter
|
||||||
if ($this->actionType()=='update') {
|
if ($this->actionType()=='update') {
|
||||||
return 'fa-solid fa-user-pen';
|
return 'fa-solid fa-user-pen';
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'fa-solid fa-user';
|
return 'fa-solid fa-user';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -261,7 +261,7 @@ return [
|
||||||
'two_factor_enrollment' => 'Two-Factor Enrollment',
|
'two_factor_enrollment' => 'Two-Factor Enrollment',
|
||||||
'two_factor_enabled_text' => 'Enable Two Factor',
|
'two_factor_enabled_text' => 'Enable Two Factor',
|
||||||
'two_factor_reset' => 'Reset Two-Factor Secret',
|
'two_factor_reset' => 'Reset Two-Factor Secret',
|
||||||
'two_factor_reset_help' => 'This will force the user to enroll their device with Google Authenticator again. This can be useful if their currently enrolled device is lost or stolen. ',
|
'two_factor_reset_help' => 'This will force the user to enroll their device with their authenticator app again. This can be useful if their currently enrolled device is lost or stolen. ',
|
||||||
'two_factor_reset_success' => 'Two factor device successfully reset',
|
'two_factor_reset_success' => 'Two factor device successfully reset',
|
||||||
'two_factor_reset_error' => 'Two factor device reset failed',
|
'two_factor_reset_error' => 'Two factor device reset failed',
|
||||||
'two_factor_enabled_warning' => 'Enabling two-factor if it is not currently enabled will immediately force you to authenticate with a Google Auth enrolled device. You will have the ability to enroll your device if one is not currently enrolled.',
|
'two_factor_enabled_warning' => 'Enabling two-factor if it is not currently enabled will immediately force you to authenticate with a Google Auth enrolled device. You will have the ability to enroll your device if one is not currently enrolled.',
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
'2FA_reset' => '2FA reset',
|
||||||
'accessories' => 'Accessories',
|
'accessories' => 'Accessories',
|
||||||
'activated' => 'Activated',
|
'activated' => 'Activated',
|
||||||
'accepted_date' => 'Date Accepted',
|
'accepted_date' => 'Date Accepted',
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
<!-- Listbox -->
|
<!-- Listbox -->
|
||||||
@if ($field->element=='listbox')
|
@if ($field->element=='listbox')
|
||||||
{{ Form::select($field->db_column_name(), $field->formatFieldValuesAsArray(),
|
{{ Form::select($field->db_column_name(), $field->formatFieldValuesAsArray(),
|
||||||
Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, htmlspecialchars($item->{$field->db_column_name()}, ENT_QUOTES)) : $field->defaultValue($model->id))), ['class'=>'format select2 form-control']) }}
|
Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, $item->{$field->db_column_name()}) : $field->defaultValue($model->id))), ['class'=>'format select2 form-control']) }}
|
||||||
|
|
||||||
@elseif ($field->element=='textarea')
|
@elseif ($field->element=='textarea')
|
||||||
<textarea class="col-md-6 form-control" id="{{ $field->db_column_name() }}" name="{{ $field->db_column_name() }}">{{ Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, $item->{$field->db_column_name()}) : $field->defaultValue($model->id))) }}</textarea>
|
<textarea class="col-md-6 form-control" id="{{ $field->db_column_name() }}" name="{{ $field->db_column_name() }}">{{ Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, $item->{$field->db_column_name()}) : $field->defaultValue($model->id))) }}</textarea>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<!-- Listbox -->
|
<!-- Listbox -->
|
||||||
@if ($field->element=='listbox')
|
@if ($field->element=='listbox')
|
||||||
{{ Form::select($field->db_column_name(), $field->formatFieldValuesAsArray(),
|
{{ Form::select($field->db_column_name(), $field->formatFieldValuesAsArray(),
|
||||||
Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, htmlspecialchars($item->{$field->db_column_name()}, ENT_QUOTES)) : $field->defaultValue($model->id))), ['class'=>'format select2 form-control']) }}
|
Request::old($field->db_column_name(),(isset($item) ? Helper::gracefulDecrypt($field, $item->{$field->db_column_name()}) : $field->defaultValue($model->id))), ['class'=>'format select2 form-control']) }}
|
||||||
|
|
||||||
@elseif ($field->element=='textarea')
|
@elseif ($field->element=='textarea')
|
||||||
@if($field->is_unique)
|
@if($field->is_unique)
|
||||||
|
|
|
@ -499,6 +499,7 @@
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@if ((Auth::user()->isSuperUser()) && ($user->two_factor_active_and_enrolled()) && ($snipeSettings->two_factor_enabled!='0') && ($snipeSettings->two_factor_enabled!=''))
|
||||||
<!-- Reset Two Factor -->
|
<!-- Reset Two Factor -->
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-8 col-md-offset-3 two_factor_resetrow">
|
<div class="col-md-8 col-md-offset-3 two_factor_resetrow">
|
||||||
|
@ -513,6 +514,8 @@
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
@endif
|
||||||
|
|
||||||
<!-- Groups -->
|
<!-- Groups -->
|
||||||
<div class="form-group{{ $errors->has('groups') ? ' has-error' : '' }}">
|
<div class="form-group{{ $errors->has('groups') ? ' has-error' : '' }}">
|
||||||
<label class="col-md-3 control-label" for="groups[]"> {{ trans('general.groups') }}</label>
|
<label class="col-md-3 control-label" for="groups[]"> {{ trans('general.groups') }}</label>
|
||||||
|
@ -702,7 +705,7 @@ $(document).ready(function() {
|
||||||
$("#two_factor_resetrow").removeClass('success');
|
$("#two_factor_resetrow").removeClass('success');
|
||||||
$("#two_factor_resetrow").removeClass('danger');
|
$("#two_factor_resetrow").removeClass('danger');
|
||||||
$("#two_factor_resetstatus").html('');
|
$("#two_factor_resetstatus").html('');
|
||||||
$("#two_factor_reseticon").html('<i class="fas fa-spinner spin"></i>');
|
$("#two_factor_reseticon").html('<i class="fas fa-spinner spin"></i> ');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route('api.users.two_factor_reset', ['id'=> $user->id]) }}',
|
url: '{{ route('api.users.two_factor_reset', ['id'=> $user->id]) }}',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
|
@ -715,13 +718,12 @@ $(document).ready(function() {
|
||||||
|
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
$("#two_factor_reseticon").html('');
|
$("#two_factor_reseticon").html('');
|
||||||
$("#two_factor_resetstatus").html('<i class="fas fa-check text-success"></i>' + data.message);
|
$("#two_factor_resetstatus").html('<span class="text-success"><i class="fas fa-check"></i> ' + data.message + '</span>');
|
||||||
},
|
},
|
||||||
|
|
||||||
error: function (data) {
|
error: function (data) {
|
||||||
$("#two_factor_reseticon").html('');
|
$("#two_factor_reseticon").html('');
|
||||||
$("#two_factor_reseticon").html('<i class="fas fa-exclamation-triangle text-danger"></i>');
|
$("#two_factor_resetstatus").html('<span class="text-danger"><i class="fas fa-exclamation-triangle text-danger"></i> ' + data.message + '</span>');
|
||||||
$('#two_factor_resetstatus').text(data.message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -597,7 +597,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if ((Auth::user()->isSuperUser()) && ($snipeSettings->two_factor_enabled!='0') && ($snipeSettings->two_factor_enabled!=''))
|
@if ((Auth::user()->isSuperUser()) && ($user->two_factor_active_and_enrolled()) && ($snipeSettings->two_factor_enabled!='0') && ($snipeSettings->two_factor_enabled!=''))
|
||||||
|
|
||||||
<!-- 2FA reset -->
|
<!-- 2FA reset -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -7,13 +7,10 @@ use App\Models\Actionlog;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\CheckoutAccessoryNotification;
|
use App\Notifications\CheckoutAccessoryNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AccessoryCheckoutTest extends TestCase
|
class AccessoryCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingOutAccessoryRequiresCorrectPermission()
|
public function testCheckingOutAccessoryRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -11,13 +11,10 @@ use App\Models\Statuslabel;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetCheckinTest extends TestCase
|
class AssetCheckinTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingInAssetRequiresCorrectPermission()
|
public function testCheckingInAssetRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -6,13 +6,10 @@ use App\Models\Asset;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Testing\Fluent\AssertableJson;
|
use Illuminate\Testing\Fluent\AssertableJson;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetIndexTest extends TestCase
|
class AssetIndexTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAssetIndexReturnsExpectedAssets()
|
public function testAssetIndexReturnsExpectedAssets()
|
||||||
{
|
{
|
||||||
Asset::factory()->count(3)->create();
|
Asset::factory()->count(3)->create();
|
||||||
|
|
|
@ -9,15 +9,11 @@ use App\Models\Location;
|
||||||
use App\Models\Statuslabel;
|
use App\Models\Statuslabel;
|
||||||
use App\Models\Supplier;
|
use App\Models\Supplier;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Testing\Fluent\AssertableJson;
|
use Illuminate\Testing\Fluent\AssertableJson;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetStoreTest extends TestCase
|
class AssetStoreTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testRequiresPermissionToCreateAsset()
|
public function testRequiresPermissionToCreateAsset()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Assets;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetsForSelectListTest extends TestCase
|
class AssetsForSelectListTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAssetsCanBeSearchedForByAssetTag()
|
public function testAssetsCanBeSearchedForByAssetTag()
|
||||||
{
|
{
|
||||||
Asset::factory()->create(['asset_tag' => '0001']);
|
Asset::factory()->create(['asset_tag' => '0001']);
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Assets;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class RequestableAssetsTest extends TestCase
|
class RequestableAssetsTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testViewingRequestableAssetsRequiresCorrectPermission()
|
public function testViewingRequestableAssetsRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Components;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\Component;
|
use App\Models\Component;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ComponentIndexTest extends TestCase
|
class ComponentIndexTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testComponentIndexAdheresToCompanyScoping()
|
public function testComponentIndexAdheresToCompanyScoping()
|
||||||
{
|
{
|
||||||
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
||||||
|
|
|
@ -7,13 +7,10 @@ use App\Models\Consumable;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\CheckoutConsumableNotification;
|
use App\Notifications\CheckoutConsumableNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ConsumableCheckoutTest extends TestCase
|
class ConsumableCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingOutConsumableRequiresCorrectPermission()
|
public function testCheckingOutConsumableRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Consumables;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\Consumable;
|
use App\Models\Consumable;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ConsumablesIndexTest extends TestCase
|
class ConsumablesIndexTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testConsumableIndexAdheresToCompanyScoping()
|
public function testConsumableIndexAdheresToCompanyScoping()
|
||||||
{
|
{
|
||||||
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
||||||
|
|
|
@ -5,15 +5,11 @@ namespace Tests\Feature\Api\Departments;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\Department;
|
use App\Models\Department;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Routing\Route;
|
|
||||||
use Illuminate\Testing\Fluent\AssertableJson;
|
use Illuminate\Testing\Fluent\AssertableJson;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class DepartmentIndexTest extends TestCase
|
class DepartmentIndexTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testViewingDepartmentIndexRequiresAuthentication()
|
public function testViewingDepartmentIndexRequiresAuthentication()
|
||||||
{
|
{
|
||||||
$this->getJson(route('api.departments.index'))->assertRedirect();
|
$this->getJson(route('api.departments.index'))->assertRedirect();
|
||||||
|
|
|
@ -4,13 +4,10 @@ namespace Tests\Feature\Api\Groups;
|
||||||
|
|
||||||
use App\Models\Group;
|
use App\Models\Group;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class GroupStoreTest extends TestCase
|
class GroupStoreTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testStoringGroupRequiresSuperAdminPermission()
|
public function testStoringGroupRequiresSuperAdminPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Licenses;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\License;
|
use App\Models\License;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class LicensesIndexTest extends TestCase
|
class LicensesIndexTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testLicensesIndexAdheresToCompanyScoping()
|
public function testLicensesIndexAdheresToCompanyScoping()
|
||||||
{
|
{
|
||||||
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
[$companyA, $companyB] = Company::factory()->count(2)->create();
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Locations;
|
||||||
use App\Models\Location;
|
use App\Models\Location;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Testing\Fluent\AssertableJson;
|
use Illuminate\Testing\Fluent\AssertableJson;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class LocationsForSelectListTest extends TestCase
|
class LocationsForSelectListTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testGettingLocationListRequiresProperPermission()
|
public function testGettingLocationListRequiresProperPermission()
|
||||||
{
|
{
|
||||||
$this->actingAsForApi(User::factory()->create())
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
|
|
@ -3,13 +3,10 @@
|
||||||
namespace Tests\Feature\Api\Users;
|
namespace Tests\Feature\Api\Users;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class UpdateUserApiTest extends TestCase
|
class UpdateUserApiTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testApiUsersCanBeActivatedWithNumber()
|
public function testApiUsersCanBeActivatedWithNumber()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -6,13 +6,10 @@ use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Testing\Fluent\AssertableJson;
|
use Illuminate\Testing\Fluent\AssertableJson;
|
||||||
use Laravel\Passport\Passport;
|
use Laravel\Passport\Passport;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class UsersForSelectListTest extends TestCase
|
class UsersForSelectListTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testUsersAreReturned()
|
public function testUsersAreReturned()
|
||||||
{
|
{
|
||||||
$users = User::factory()->superuser()->count(3)->create();
|
$users = User::factory()->superuser()->count(3)->create();
|
||||||
|
|
|
@ -5,13 +5,10 @@ namespace Tests\Feature\Api\Users;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Laravel\Passport\Passport;
|
use Laravel\Passport\Passport;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class UsersSearchTest extends TestCase
|
class UsersSearchTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCanSearchByUserFirstAndLastName()
|
public function testCanSearchByUserFirstAndLastName()
|
||||||
{
|
{
|
||||||
User::factory()->create(['first_name' => 'Luke', 'last_name' => 'Skywalker']);
|
User::factory()->create(['first_name' => 'Luke', 'last_name' => 'Skywalker']);
|
||||||
|
|
|
@ -8,13 +8,10 @@ use App\Models\Group;
|
||||||
use App\Models\Location;
|
use App\Models\Location;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class UsersUpdateTest extends TestCase
|
class UsersUpdateTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCanUpdateUserViaPatch()
|
public function testCanUpdateUserViaPatch()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -8,13 +8,10 @@ use App\Models\User;
|
||||||
use App\Notifications\CheckinAccessoryNotification;
|
use App\Notifications\CheckinAccessoryNotification;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AccessoryCheckinTest extends TestCase
|
class AccessoryCheckinTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingInAccessoryRequiresCorrectPermission()
|
public function testCheckingInAccessoryRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$accessory = Accessory::factory()->checkedOutToUser()->create();
|
$accessory = Accessory::factory()->checkedOutToUser()->create();
|
||||||
|
|
|
@ -11,13 +11,10 @@ use App\Models\Statuslabel;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetCheckinTest extends TestCase
|
class AssetCheckinTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingInAssetRequiresCorrectPermission()
|
public function testCheckingInAssetRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAs(User::factory()->create())
|
$this->actingAs(User::factory()->create())
|
||||||
|
|
|
@ -7,13 +7,10 @@ use App\Models\CheckoutAcceptance;
|
||||||
use App\Notifications\AcceptanceAssetAcceptedNotification;
|
use App\Notifications\AcceptanceAssetAcceptedNotification;
|
||||||
use App\Notifications\AcceptanceAssetDeclinedNotification;
|
use App\Notifications\AcceptanceAssetDeclinedNotification;
|
||||||
use Notification;
|
use Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AccessoryAcceptanceTest extends TestCase
|
class AccessoryAcceptanceTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This can be absorbed into a bigger test
|
* This can be absorbed into a bigger test
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -7,13 +7,10 @@ use App\Models\Actionlog;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\CheckoutAccessoryNotification;
|
use App\Notifications\CheckoutAccessoryNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AccessoryCheckoutTest extends TestCase
|
class AccessoryCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingOutAccessoryRequiresCorrectPermission()
|
public function testCheckingOutAccessoryRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAs(User::factory()->create())
|
$this->actingAs(User::factory()->create())
|
||||||
|
|
|
@ -7,13 +7,10 @@ use App\Models\Consumable;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\CheckoutConsumableNotification;
|
use App\Notifications\CheckoutConsumableNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ConsumableCheckoutTest extends TestCase
|
class ConsumableCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testCheckingOutConsumableRequiresCorrectPermission()
|
public function testCheckingOutConsumableRequiresCorrectPermission()
|
||||||
{
|
{
|
||||||
$this->actingAs(User::factory()->create())
|
$this->actingAs(User::factory()->create())
|
||||||
|
|
|
@ -6,13 +6,10 @@ use App\Models\Asset;
|
||||||
use App\Models\License;
|
use App\Models\License;
|
||||||
use App\Models\LicenseSeat;
|
use App\Models\LicenseSeat;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class LicenseCheckoutTest extends TestCase
|
class LicenseCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testNotesAreStoredInActionLogOnCheckoutToAsset()
|
public function testNotesAreStoredInActionLogOnCheckoutToAsset()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -3,13 +3,10 @@
|
||||||
namespace Tests\Feature;
|
namespace Tests\Feature;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class DashboardTest extends TestCase
|
class DashboardTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testUsersWithoutAdminAccessAreRedirected()
|
public function testUsersWithoutAdminAccessAreRedirected()
|
||||||
{
|
{
|
||||||
$this->actingAs(User::factory()->create())
|
$this->actingAs(User::factory()->create())
|
||||||
|
|
|
@ -7,7 +7,6 @@ use App\Models\Asset;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Notifications\CheckinAssetNotification;
|
use App\Notifications\CheckinAssetNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,8 +14,6 @@ use Tests\TestCase;
|
||||||
*/
|
*/
|
||||||
class EmailNotificationsUponCheckinTest extends TestCase
|
class EmailNotificationsUponCheckinTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
|
@ -14,7 +14,6 @@ use App\Notifications\CheckinAssetNotification;
|
||||||
use App\Notifications\CheckinLicenseSeatNotification;
|
use App\Notifications\CheckinLicenseSeatNotification;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,8 +21,6 @@ use Tests\TestCase;
|
||||||
*/
|
*/
|
||||||
class SlackNotificationsUponCheckinTest extends TestCase
|
class SlackNotificationsUponCheckinTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
|
@ -16,7 +16,6 @@ use App\Notifications\CheckoutConsumableNotification;
|
||||||
use App\Notifications\CheckoutLicenseSeatNotification;
|
use App\Notifications\CheckoutLicenseSeatNotification;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,8 +23,6 @@ use Tests\TestCase;
|
||||||
*/
|
*/
|
||||||
class SlackNotificationsUponCheckoutTest extends TestCase
|
class SlackNotificationsUponCheckoutTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
|
@ -8,14 +8,10 @@ use App\Models\User;
|
||||||
use Illuminate\Testing\TestResponse;
|
use Illuminate\Testing\TestResponse;
|
||||||
use League\Csv\Reader;
|
use League\Csv\Reader;
|
||||||
use PHPUnit\Framework\Assert;
|
use PHPUnit\Framework\Assert;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
|
||||||
class CustomReportTest extends TestCase
|
class CustomReportTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
{
|
{
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
|
@ -3,13 +3,10 @@
|
||||||
namespace Tests\Feature\Users;
|
namespace Tests\Feature\Users;
|
||||||
|
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class UpdateUserTest extends TestCase
|
class UpdateUserTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testUsersCanBeActivatedWithNumber()
|
public function testUsersCanBeActivatedWithNumber()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -4,7 +4,7 @@ namespace Tests\Support;
|
||||||
|
|
||||||
use App\Models\Setting;
|
use App\Models\Setting;
|
||||||
|
|
||||||
trait InteractsWithSettings
|
trait InitializesSettings
|
||||||
{
|
{
|
||||||
protected Settings $settings;
|
protected Settings $settings;
|
||||||
|
|
|
@ -9,7 +9,7 @@ use RuntimeException;
|
||||||
use Tests\Support\AssertsAgainstSlackNotifications;
|
use Tests\Support\AssertsAgainstSlackNotifications;
|
||||||
use Tests\Support\CustomTestMacros;
|
use Tests\Support\CustomTestMacros;
|
||||||
use Tests\Support\InteractsWithAuthentication;
|
use Tests\Support\InteractsWithAuthentication;
|
||||||
use Tests\Support\InteractsWithSettings;
|
use Tests\Support\InitializesSettings;
|
||||||
|
|
||||||
abstract class TestCase extends BaseTestCase
|
abstract class TestCase extends BaseTestCase
|
||||||
{
|
{
|
||||||
|
@ -17,6 +17,7 @@ abstract class TestCase extends BaseTestCase
|
||||||
use CreatesApplication;
|
use CreatesApplication;
|
||||||
use CustomTestMacros;
|
use CustomTestMacros;
|
||||||
use InteractsWithAuthentication;
|
use InteractsWithAuthentication;
|
||||||
|
use InitializesSettings;
|
||||||
use LazilyRefreshDatabase;
|
use LazilyRefreshDatabase;
|
||||||
|
|
||||||
private array $globallyDisabledMiddleware = [
|
private array $globallyDisabledMiddleware = [
|
||||||
|
@ -25,20 +26,23 @@ abstract class TestCase extends BaseTestCase
|
||||||
|
|
||||||
protected function setUp(): void
|
protected function setUp(): void
|
||||||
{
|
{
|
||||||
if (!file_exists(realpath(__DIR__ . '/../') . '/.env.testing')) {
|
$this->guardAgainstMissingEnv();
|
||||||
throw new RuntimeException(
|
|
||||||
'.env.testing file does not exist. Aborting to avoid wiping your local database'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->registerCustomMacros();
|
||||||
|
|
||||||
$this->withoutMiddleware($this->globallyDisabledMiddleware);
|
$this->withoutMiddleware($this->globallyDisabledMiddleware);
|
||||||
|
|
||||||
if (collect(class_uses_recursive($this))->contains(InteractsWithSettings::class)) {
|
|
||||||
$this->initializeSettings();
|
$this->initializeSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->registerCustomMacros();
|
private function guardAgainstMissingEnv(): void
|
||||||
|
{
|
||||||
|
if (!file_exists(realpath(__DIR__ . '/../') . '/.env.testing')) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
'.env.testing file does not exist. Aborting to avoid wiping your local database.'
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,14 +2,10 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Models\AssetMaintenance;
|
use App\Models\AssetMaintenance;
|
||||||
use Carbon\Carbon;
|
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetMaintenanceTest extends TestCase
|
class AssetMaintenanceTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testZerosOutWarrantyIfBlank()
|
public function testZerosOutWarrantyIfBlank()
|
||||||
{
|
{
|
||||||
$c = new AssetMaintenance;
|
$c = new AssetMaintenance;
|
||||||
|
|
|
@ -4,13 +4,10 @@ namespace Tests\Unit;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetModelTest extends TestCase
|
class AssetModelTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAnAssetModelContainsAssets()
|
public function testAnAssetModelContainsAssets()
|
||||||
{
|
{
|
||||||
$category = Category::factory()->create([
|
$category = Category::factory()->create([
|
||||||
|
|
|
@ -5,13 +5,10 @@ use App\Models\Asset;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class AssetTest extends TestCase
|
class AssetTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAutoIncrement()
|
public function testAutoIncrement()
|
||||||
{
|
{
|
||||||
$this->settings->enableAutoIncrement();
|
$this->settings->enableAutoIncrement();
|
||||||
|
|
|
@ -4,13 +4,10 @@ namespace Tests\Unit;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use App\Models\Asset;
|
use App\Models\Asset;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class CategoryTest extends TestCase
|
class CategoryTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testFailsEmptyValidation()
|
public function testFailsEmptyValidation()
|
||||||
{
|
{
|
||||||
// An Asset requires a name, a qty, and a category_id.
|
// An Asset requires a name, a qty, and a category_id.
|
||||||
|
|
|
@ -12,13 +12,10 @@ use App\Models\License;
|
||||||
use App\Models\LicenseSeat;
|
use App\Models\LicenseSeat;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class CompanyScopingTest extends TestCase
|
class CompanyScopingTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function models(): array
|
public function models(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -5,13 +5,10 @@ use App\Models\Category;
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\Component;
|
use App\Models\Component;
|
||||||
use App\Models\Location;
|
use App\Models\Location;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ComponentTest extends TestCase
|
class ComponentTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAComponentBelongsToACompany()
|
public function testAComponentBelongsToACompany()
|
||||||
{
|
{
|
||||||
$component = Component::factory()
|
$component = Component::factory()
|
||||||
|
|
|
@ -5,13 +5,10 @@ use App\Models\Depreciation;
|
||||||
use App\Models\Category;
|
use App\Models\Category;
|
||||||
use App\Models\License;
|
use App\Models\License;
|
||||||
use App\Models\AssetModel;
|
use App\Models\AssetModel;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class DepreciationTest extends TestCase
|
class DepreciationTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testADepreciationHasModels()
|
public function testADepreciationHasModels()
|
||||||
{
|
{
|
||||||
$depreciation = Depreciation::factory()->create();
|
$depreciation = Depreciation::factory()->create();
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Models\Ldap;
|
use App\Models\Ldap;
|
||||||
use Exception;
|
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,7 +10,6 @@ use Tests\TestCase;
|
||||||
*/
|
*/
|
||||||
class LdapTest extends TestCase
|
class LdapTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
use \phpmock\phpunit\PHPMock;
|
use \phpmock\phpunit\PHPMock;
|
||||||
|
|
||||||
public function testConnect()
|
public function testConnect()
|
||||||
|
|
|
@ -4,13 +4,10 @@ namespace Tests\Unit\Models\Company;
|
||||||
|
|
||||||
use App\Models\Company;
|
use App\Models\Company;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class GetIdForCurrentUserTest extends TestCase
|
class GetIdForCurrentUserTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testReturnsProvidedValueWhenFullCompanySupportDisabled()
|
public function testReturnsProvidedValueWhenFullCompanySupportDisabled()
|
||||||
{
|
{
|
||||||
$this->settings->disableMultipleFullCompanySupport();
|
$this->settings->disableMultipleFullCompanySupport();
|
||||||
|
|
|
@ -8,13 +8,10 @@ use App\Models\Category;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use App\Notifications\CheckoutAssetNotification;
|
use App\Notifications\CheckoutAssetNotification;
|
||||||
use Illuminate\Support\Facades\Notification;
|
use Illuminate\Support\Facades\Notification;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class NotificationTest extends TestCase
|
class NotificationTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
|
public function testAUserIsEmailedIfTheyCheckoutAnAssetWithEULA()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->superuser()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
|
|
|
@ -2,13 +2,10 @@
|
||||||
namespace Tests\Unit;
|
namespace Tests\Unit;
|
||||||
|
|
||||||
use App\Models\SnipeModel;
|
use App\Models\SnipeModel;
|
||||||
use Tests\Support\InteractsWithSettings;
|
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class SnipeModelTest extends TestCase
|
class SnipeModelTest extends TestCase
|
||||||
{
|
{
|
||||||
use InteractsWithSettings;
|
|
||||||
|
|
||||||
public function testSetsPurchaseDatesAppropriately()
|
public function testSetsPurchaseDatesAppropriately()
|
||||||
{
|
{
|
||||||
$c = new SnipeModel;
|
$c = new SnipeModel;
|
||||||
|
|
Loading…
Reference in a new issue