create([]); $user = factory(User::class)->create([ 'account_id' => $account->id, ]); $request = [ 'account_id' => $account->id, 'author_id' => $user->id, 'name' => 'central perk', 'website' => 'https://centralperk.com', 'number_of_employees' => 3, ]; $company = app(CreateCompany::class)->execute($request); $this->assertDatabaseHas('companies', [ 'id' => $company->id, 'account_id' => $account->id, 'name' => 'central perk', 'website' => 'https://centralperk.com', 'number_of_employees' => 3, ]); $this->assertInstanceOf( Company::class, $company ); Queue::assertPushed(LogAccountAudit::class, function ($job) use ($user) { return $job->auditLog['action'] === 'company_created' && $job->auditLog['author_id'] === $user->id && $job->auditLog['about_contact_id'] === null && $job->auditLog['should_appear_on_dashboard'] === true && $job->auditLog['objects'] === json_encode([ 'name' => 'central perk', ]); }); } /** @test */ public function it_fails_if_wrong_parameters_are_given() { $account = factory(Account::class)->create([]); $request = [ 'street' => '199 Lafayette Street', ]; $this->expectException(ValidationException::class); app(CreateCompany::class)->execute($request); } }