diff --git a/sourcecode/hub/app/Console/Commands/AddLtiToolExtra.php b/sourcecode/hub/app/Console/Commands/AddLtiToolExtra.php index 545e04fd9..3aa90850e 100644 --- a/sourcecode/hub/app/Console/Commands/AddLtiToolExtra.php +++ b/sourcecode/hub/app/Console/Commands/AddLtiToolExtra.php @@ -8,6 +8,7 @@ use App\Models\LtiToolExtra; use Illuminate\Console\Command; use Illuminate\Support\Facades\DB; +use function is_string; class AddLtiToolExtra extends Command { @@ -27,11 +28,14 @@ public function handle(): void ->firstOrFail(); DB::transaction(function () use ($tool) { + $slug = $this->option('slug'); $extra = new LtiToolExtra(); $extra->name = $this->argument('name'); $extra->lti_launch_url = $this->argument('url'); $extra->admin = $this->option('admin'); - $extra->slug = $this->option('slug'); + if (is_string($slug)) { + $extra->slug = $slug; + } $extra->lti_tool_id = $tool->id; $extra->save(); }); diff --git a/sourcecode/hub/tests/Feature/Commands/AddLtiToolExtraTest.php b/sourcecode/hub/tests/Feature/Commands/AddLtiToolExtraTest.php index 9687c6598..f7e04995c 100644 --- a/sourcecode/hub/tests/Feature/Commands/AddLtiToolExtraTest.php +++ b/sourcecode/hub/tests/Feature/Commands/AddLtiToolExtraTest.php @@ -28,7 +28,7 @@ public function testAddsLtiTool(): void $extra = LtiToolExtra::where('slug', 'ca-admin')->firstOrFail(); assert($extra instanceof LtiToolExtra); - $this->assertTrue($extra->tool->is($tool)); + $this->assertTrue($extra->tool?->is($tool)); $this->assertSame('CA admin', $extra->name); $this->assertSame('https://ca.edlib.test/lti/admin', $extra->lti_launch_url); $this->assertSame('ca-admin', $extra->slug);