[ function () { return [ 'actor' => User::factory()->viewUsers()->create(), 'user' => User::factory()->create(['first_name' => 'Jim', 'last_name' => 'Bagg']), 'assertions' => function ($rendered) { Assert::assertStringContainsString(' [ function () { return [ 'actor' => User::factory()->viewUsers()->create(), 'user' => User::factory()->deleted()->create(['first_name' => 'Jim', 'last_name' => 'Bagg']), 'assertions' => function ($rendered) { Assert::assertStringContainsString(' [ function () { return [ 'actor' => User::factory()->create(), 'user' => User::factory()->create(['first_name' => 'Jim', 'last_name' => 'Bagg']), 'assertions' => function ($rendered) { Assert::assertStringContainsString('Jim Bagg', $rendered); Assert::assertStringNotContainsString(' [ function () { return [ 'actor' => User::factory()->create(), 'user' => User::factory()->deleted()->create(['first_name' => 'Jim', 'last_name' => 'Bagg']), 'assertions' => function ($rendered) { Assert::assertStringContainsString('Jim Bagg', $rendered); }, ]; } ]; yield 'Renders nothing if the provided user is null' => [ function () { return [ 'actor' => User::factory()->create(), 'user' => null, 'assertions' => function ($rendered) { Assert::assertEmpty($rendered); }, ]; } ]; } #[DataProvider('provider')] public function testComponent($provided) { ['actor' => $actor, 'user' => $user, 'assertions' => $assertions] = $provided(); $this->actingAs($actor); $renderedTemplateString = View::make('blade.full-user-name', ['user' => $user])->render(); $assertions($renderedTemplateString); } }