diff --git a/routes/web.php b/routes/web.php index cd9462e105..0a44371f6e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -97,6 +97,7 @@ Route::put('processes/{process}', [ProcessController::class, 'update'])->name('processes.update')->middleware('can:edit-processes'); Route::delete('processes/{process}', [ProcessController::class, 'destroy'])->name('processes.destroy')->middleware('can:archive-processes'); + Route::get('process_events/{process}', [ProcessController::class, 'triggerStartEventApi'])->name('process_events.trigger')->middleware('can:start,process'); Route::get('processes/{process}/export/translation/{language}', [ProcessTranslationController::class, 'export']); Route::get('processes/{process}/import/translation', [ProcessTranslationController::class, 'import']); diff --git a/tests/Feature/Api/ProcessTest.php b/tests/Feature/Api/ProcessTest.php index 8828e2b570..018605ab4e 100644 --- a/tests/Feature/Api/ProcessTest.php +++ b/tests/Feature/Api/ProcessTest.php @@ -1190,4 +1190,21 @@ public function testDiscardDraft() // Assert draft version is deleted. $this->assertEquals(0, $process->versions()->draft()->count()); } + + public function testTriggerStartEventWeb() + { + $this->withoutExceptionHandling(); + $process = Process::factory()->create([ + 'bpmn' => Process::getProcessTemplate('SingleTask.bpmn'), + ]); + + $route = route('process_events.trigger', [ + 'process' => $process->id, + 'event' => 'StartEventUID', + ]); + $response = $this->webCall('GET', $route); + + // Assert redirect status. + $response->assertStatus(302); + } }