Merge pull request #16683 from marcusmoore/bug/sc-28755
Create default label when importing assets if none exists
This commit is contained in:
commit
1c387795fe
2 changed files with 71 additions and 3 deletions
|
@ -16,10 +16,22 @@ class AssetImporter extends ItemImporter
|
|||
{
|
||||
parent::__construct($filename);
|
||||
|
||||
$this->defaultStatusLabelId = Statuslabel::first()->id;
|
||||
|
||||
$this->defaultStatusLabelId = Statuslabel::first()?->id;
|
||||
|
||||
if (!is_null(Statuslabel::deployable()->first())) {
|
||||
$this->defaultStatusLabelId = Statuslabel::deployable()->first()->id;
|
||||
$this->defaultStatusLabelId = Statuslabel::deployable()->first()?->id;
|
||||
}
|
||||
|
||||
if (is_null($this->defaultStatusLabelId)) {
|
||||
$defaultLabel = Statuslabel::create([
|
||||
'name' => 'Default Status',
|
||||
'deployable' => 0,
|
||||
'pending' => 1,
|
||||
'archived' => 0,
|
||||
'notes' => 'Default status label created by AssetImporter',
|
||||
]);
|
||||
|
||||
$this->defaultStatusLabelId = $defaultLabel->id;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
56
tests/Unit/Importer/AssetImportTest.php
Normal file
56
tests/Unit/Importer/AssetImportTest.php
Normal file
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Unit\Importer;
|
||||
|
||||
use App\Importer\AssetImporter;
|
||||
use App\Models\Statuslabel;
|
||||
use Tests\TestCase;
|
||||
use function Livewire\invade;
|
||||
|
||||
class AssetImportTest extends TestCase
|
||||
{
|
||||
public function test_uses_first_deployable_status_label_as_default_if_one_exists()
|
||||
{
|
||||
Statuslabel::truncate();
|
||||
|
||||
$pendingStatusLabel = Statuslabel::factory()->pending()->create();
|
||||
$readyToDeployStatusLabel = Statuslabel::factory()->readyToDeploy()->create();
|
||||
|
||||
$importer = new AssetImporter('assets.csv');
|
||||
|
||||
$this->assertEquals(
|
||||
$readyToDeployStatusLabel->id,
|
||||
invade($importer)->defaultStatusLabelId
|
||||
);
|
||||
}
|
||||
|
||||
public function test_uses_first_status_label_as_default_if_deployable_status_label_does_not_exist()
|
||||
{
|
||||
Statuslabel::truncate();
|
||||
|
||||
$statusLabel = Statuslabel::factory()->pending()->create();
|
||||
|
||||
$importer = new AssetImporter('assets.csv');
|
||||
|
||||
$this->assertEquals(
|
||||
$statusLabel->id,
|
||||
invade($importer)->defaultStatusLabelId
|
||||
);
|
||||
}
|
||||
|
||||
public function test_creates_default_status_label_if_one_does_not_exist()
|
||||
{
|
||||
Statuslabel::truncate();
|
||||
|
||||
$this->assertEquals(0, Statuslabel::count());
|
||||
|
||||
$importer = new AssetImporter('assets.csv');
|
||||
|
||||
$this->assertEquals(1, Statuslabel::count());
|
||||
|
||||
$this->assertEquals(
|
||||
Statuslabel::first()->id,
|
||||
invade($importer)->defaultStatusLabelId
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue