Add failing test

This commit is contained in:
Marcus Moore
2025-05-14 14:09:48 -07:00
parent 5c7b74e17e
commit 2a2acf6d1c

View File

@@ -12,6 +12,7 @@ use App\Models\Supplier;
use App\Models\User;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Testing\Fluent\AssertableJson;
use PHPUnit\Framework\Attributes\DataProvider;
use Tests\TestCase;
class StoreAssetTest extends TestCase
@@ -572,6 +573,64 @@ class StoreAssetTest extends TestCase
$this->assertTrue($asset->assignedTo->is($userAssigned));
}
public static function checkoutTargets()
{
yield 'Users' => [
function () {
return [
'key' => 'assigned_user',
'value' => [
User::factory()->create()->id,
User::factory()->create()->id,
],
];
},
];
yield 'Locations' => [
function () {
return [
'key' => 'assigned_location',
'value' => [
Location::factory()->create()->id,
Location::factory()->create()->id,
],
];
},
];
yield 'Assets' => [
function () {
return [
'key' => 'assigned_asset',
'value' => [
Asset::factory()->create()->id,
Asset::factory()->create()->id,
],
];
},
];
}
/** @link https://app.shortcut.com/grokability/story/29181 */
#[DataProvider('checkoutTargets')]
public function testAssignedFieldValidationCannotBeArray($data)
{
['key' => $key, 'value' => $value] = $data();
$this->actingAsForApi(User::factory()->createAssets()->create())
->postJson(route('api.assets.store'), [
'asset_tag' => '123456',
'model_id' => AssetModel::factory()->create()->id,
'status_id' => Statuslabel::factory()->readyToDeploy()->create()->id,
$key => $value,
])
->assertStatusMessageIs('error')
->assertJson(function (AssertableJson $json) use ($key) {
$json->has("messages.{$key}")->etc();
});
}
public function testAnAssetCanBeCheckedOutToLocationOnStore()
{
$model = AssetModel::factory()->create();