diff --git a/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php b/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php index e3a0152c14..0f3e8a1444 100644 --- a/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php +++ b/ProcessMaker/ImportExport/Exporters/ScriptExecutorExporter.php @@ -23,7 +23,7 @@ public function export() : void public function import() : bool { $authenticatedUser = Auth::user(); - $userId = $authenticatedUser ? $authenticatedUser->id : User::where('username', 'admin')->pluck('id'); + $userId = $authenticatedUser ? $authenticatedUser->id : User::where('is_administrator', true)->first()->id; switch ($this->mode) { case 'copy': case 'new': diff --git a/resources/js/components/templates/WizardTemplateDetails.vue b/resources/js/components/templates/WizardTemplateDetails.vue index 39056c3327..f1228b0654 100644 --- a/resources/js/components/templates/WizardTemplateDetails.vue +++ b/resources/js/components/templates/WizardTemplateDetails.vue @@ -72,6 +72,7 @@ export default { helperProcessId: null, startEvents: null, shouldImportProcessTemplate: true, + }; }, computed: { diff --git a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php index d692a300fd..b2665f3fcd 100644 --- a/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php +++ b/tests/Feature/ImportExport/Exporters/ScriptExporterTest.php @@ -114,9 +114,9 @@ public function testHiddenUsesParentMode() public function testNoMatchingRunAsUser() { - $admin_user = User::factory()->create(['is_administrator' => true]); DB::beginTransaction(); $user = User::factory()->create(['username' => 'test']); + $admin_user = User::where('is_administrator', true)->first(); $script = Script::factory()->create(['title' => 'test', 'run_as_user_id' => $user->id]); $payload = $this->export($script, ScriptExporter::class, null, false); @@ -126,7 +126,6 @@ public function testNoMatchingRunAsUser() $script = Script::where('title', 'test')->firstOrFail(); $this->assertEquals($script->run_as_user_id, $admin_user->id); - $admin_user->delete(); } public function testRunAsUserIdNull() diff --git a/tests/Feature/ImportExport/HelperTrait.php b/tests/Feature/ImportExport/HelperTrait.php index d9bec0c6e6..fda9cc94a0 100644 --- a/tests/Feature/ImportExport/HelperTrait.php +++ b/tests/Feature/ImportExport/HelperTrait.php @@ -2,6 +2,7 @@ namespace Tests\Feature\ImportExport; +use Database\Seeders\AdminTestUserSeeder; use Database\Seeders\SignalSeeder; use Illuminate\Http\UploadedFile; use ProcessMaker\ImportExport\Exporter; diff --git a/tests/TestCase.php b/tests/TestCase.php index b1e1cdef86..260660777e 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -14,6 +14,7 @@ use ProcessMaker\Models\ProcessRequestLock; use ProcessMaker\Models\SecurityLog; use ProcessMaker\Models\Setting; +use ProcessMaker\Models\User; abstract class TestCase extends BaseTestCase { @@ -36,6 +37,8 @@ protected function setUp(): void $this->disableSetContentMiddleware(); + $this->createAdministrator(); + foreach (get_class_methods($this) as $method) { $imethod = strtolower($method); if (strpos($imethod, 'setup') === 0 && $imethod !== 'setup') { @@ -44,6 +47,23 @@ protected function setUp(): void } } + /** + * Creates an admin user for each test if one does not already exist + * + * @return void + */ + protected function createAdministrator(): void + { + if (User::where('is_administrator', true)->exists()) { + return; + } + + User::factory()->create([ + 'password' => Hash::make('password'), + 'is_administrator' => true, + ]); + } + /** * Disable middleware that calls setContent() otherwise we can't use assertViewIs() */