Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
snipe committed Aug 31, 2023
2 parents 587a787 + 9a0f691 commit 821c308
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 17 deletions.
2 changes: 1 addition & 1 deletion app/Models/Asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ public function declinedCheckout(User $declinedBy, $signature)
'location_id' => 'integer',
'rtd_company_id' => 'integer',
'supplier_id' => 'integer',
'byod' => 'boolean',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
Expand All @@ -105,6 +104,7 @@ public function declinedCheckout(User $declinedBy, $signature)
'purchase_cost' => 'numeric|nullable|gte:0',
'supplier_id' => 'exists:suppliers,id|nullable',
'asset_eol_date' => 'date|max:10|min:10|nullable',
'byod' => 'boolean',
];

/**
Expand Down
6 changes: 3 additions & 3 deletions app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,12 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
];

protected $casts = [
'activated' => 'boolean',
'manager_id' => 'integer',
'location_id' => 'integer',
'company_id' => 'integer',
'vip' => 'boolean',
'created_at' => 'datetime',
'updated_at' => 'datetime',
'deleted_at' => 'datetime',
'autoassign_licenses' => 'boolean',
];

/**
Expand All @@ -103,6 +100,9 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
'state' => 'min:2|max:191|nullable',
'country' => 'min:2|max:191|nullable',
'zip' => 'max:10|nullable',
'vip' => 'boolean',
'remote' => 'boolean',
'activated' => 'boolean',
];

/**
Expand Down
68 changes: 68 additions & 0 deletions tests/Feature/Api/Users/UpdateUserApiTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?php

namespace Tests\Feature\Api\Users;

use App\Models\User;
use Tests\Support\InteractsWithSettings;
use Tests\TestCase;
use Tests\Support\InteractsWithAuthentication;


class UpdateUserApiTest extends TestCase
{
use InteractsWithSettings;
use InteractsWithAuthentication;

public function testApiUsersCanBeActivatedWithNumber()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => 0]);

$this->actingAsForApi($admin)
->patch(route('api.users.update', $user), [
'activated' => 1,
]);

$this->assertEquals(1, $user->refresh()->activated);
}

public function testApiUsersCanBeActivatedWithBooleanTrue()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => false]);

$this->actingAsForApi($admin)
->patch(route('api.users.update', $user), [
'activated' => true,
]);

$this->assertEquals(1, $user->refresh()->activated);
}

public function testApiUsersCanBeDeactivatedWithNumber()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => true]);

$this->actingAsForApi($admin)
->patch(route('api.users.update', $user), [
'activated' => 0,
]);

$this->assertEquals(0, $user->refresh()->activated);
}

public function testApiUsersCanBeDeactivatedWithBooleanFalse()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => true]);

$this->actingAsForApi($admin)
->patch(route('api.users.update', $user), [
'activated' => false,
]);

$this->assertEquals(0, $user->refresh()->activated);
}

}
50 changes: 37 additions & 13 deletions tests/Feature/Users/UpdateUserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ class UpdateUserTest extends TestCase
{
use InteractsWithSettings;

public function testUsersCanBeActivated()
public function testUsersCanBeActivatedWithNumber()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => false]);
$user = User::factory()->create(['activated' => 0]);

$this->actingAs($admin)
->put(route('users.update', $user), [
Expand All @@ -22,10 +22,40 @@ public function testUsersCanBeActivated()
'activated' => 1,
]);

$this->assertTrue($user->refresh()->activated);
$this->assertEquals(1, $user->refresh()->activated);
}

public function testUsersCanBeActivatedWithBooleanTrue()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => false]);

$this->actingAs($admin)
->put(route('users.update', $user), [
'first_name' => $user->first_name,
'username' => $user->username,
'activated' => true,
]);

$this->assertEquals(1, $user->refresh()->activated);
}

public function testUsersCanBeDeactivatedWithNumber()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => true]);

$this->actingAs($admin)
->put(route('users.update', $user), [
'first_name' => $user->first_name,
'username' => $user->username,
'activated' => 0,
]);

$this->assertEquals(0, $user->refresh()->activated);
}

public function testUsersCanBeDeactivated()
public function testUsersCanBeDeactivatedWithBooleanFalse()
{
$admin = User::factory()->superuser()->create();
$user = User::factory()->create(['activated' => true]);
Expand All @@ -34,12 +64,10 @@ public function testUsersCanBeDeactivated()
->put(route('users.update', $user), [
'first_name' => $user->first_name,
'username' => $user->username,
// checkboxes that are not checked are
// not included in the request payload
// 'activated' => 0,
'activated' => false,
]);

$this->assertFalse($user->refresh()->activated);
$this->assertEquals(0, $user->refresh()->activated);
}

public function testUsersUpdatingThemselvesDoNotDeactivateTheirAccount()
Expand All @@ -50,12 +78,8 @@ public function testUsersUpdatingThemselvesDoNotDeactivateTheirAccount()
->put(route('users.update', $admin), [
'first_name' => $admin->first_name,
'username' => $admin->username,
// checkboxes that are disabled are not
// included in the request payload
// even if they are checked
// 'activated' => 0,
]);

$this->assertTrue($admin->refresh()->activated);
$this->assertEquals(1, $admin->refresh()->activated);
}
}

0 comments on commit 821c308

Please sign in to comment.