/** @test */ public function it_recovers_an_account() { $dbUserRepository = new DbUserRepository(); $user = factory(User::class)->create(); $dbUserRepository->assignCompanyRepresentativeRole($user); $this->visit(route('auth.sign_in'))->click(trans('ahk.forgot_your_password'))->seePageIs(route('auth.recover.get'))->see('<title> ' . trans('ahk.reset_password') . ' · Chamb.Net</title>')->type($user->email, 'email')->press(trans('ahk.send_password_reset_link'))->see(trans('ahk_messages.check_your_email_to_recover_account')); $user = factory(User::class)->create(); $dbUserRepository->assignCompanyRepresentativeRole($user); $dbUserRepository->generateRecoveryToken($user); $this->visit(route('auth.recover.reset', ['slug' => $user->slug, 'recovery_token' => $user->recovery_token]))->seePageIs(route('auth.recover.reset', ['slug' => $user->slug, 'recovery_token' => $user->recovery_token]))->see('<title> ' . trans('ahk.reset_password') . ' · Chamb.Net</title>')->type('new-password', 'password')->type('new-password', 'password_confirmation')->press(trans('ahk.reset_password'))->seePageIs(route('auth.sign_in'))->see(trans('ahk_messages.you_updated_your_accounts_password')); }
/** @test */ public function it_shows_invalidated_account_error() { $dbUserRepository = new DbUserRepository(); $user = factory(User::class)->create(['password' => Hash::make('some-password'), 'verified' => 0]); $dbUserRepository->assignCompanyRepresentativeRole($user); $this->visit(route('auth.sign_in'))->type($user->email, 'email')->type('some-password', 'password')->press(trans('ahk.sign_in'))->seePageIs(route('auth.sign_in'))->see(trans('ahk_messages.please_validate_your_email_first')); }
/** * Run the database seeds. * * @return void */ public function run() { $dbUserRepository = new DbUserRepository(); $administrator = $dbUserRepository->store(['email' => env('ADMIN_EMAIL'), 'password' => Hash::make(env('ADMIN_PASSWORD'))]); $companyRepresentative = $dbUserRepository->store(['email' => env('COMPANY_REPRESENTATIVE_EMAIL'), 'password' => Hash::make(env('COMPANY_REPRESENTATIVE_PASSWORD'))]); $dbUserRepository = new DbUserRepository(); $dbUserRepository->assignCompanyRepresentativeRole($companyRepresentative); $dbUserRepository->assignAdministratorRole($administrator); $dbUserRepository->confirmEmail($administrator->token); $dbUserRepository->confirmEmail($companyRepresentative->token); }
/** @test */ public function it_stores_workgroup() { $dbUserRepository = new DbUserRepository(); $user = factory(User::class)->create(); $companyRepresentativeUser = $dbUserRepository->assignCompanyRepresentativeRole($user); $dbWorkgroupRepository = new DbWorkgroupRepository(); $workgroupModel = new Workgroup(); $workgroupFillableKeys = $workgroupModel->getFillable(); $expectedWorkgroupData = array_only(factory(Workgroup::class, 'relationless')->make()->toArray(), $workgroupFillableKeys); $this->dontSeeInDatabase('workgroups', $expectedWorkgroupData); $workgroup = $dbWorkgroupRepository->storeAndAssignCreatorByUser($expectedWorkgroupData, $companyRepresentativeUser); $this->assertNotFalse($workgroup); $this->seeInDatabase('workgroups', $expectedWorkgroupData); }
/** @test */ public function it_creates_company() { $dbUserRepository = new DbUserRepository(); $companyRepresentativeUser = factory(User::class)->create(); $dbUserRepository->assignCompanyRepresentativeRole($companyRepresentativeUser); factory(Industry::class, 2)->create(); factory(Country::class, 2)->create(); $expectedCompany = factory(Company::class, 'relationless')->make(['user_id' => $companyRepresentativeUser->id]); $expectedIndustry = factory(Industry::class)->create(); $expectedCountry = factory(Country::class)->create(); $expectedLogoPath = FilesStorage::getFilesDirectory() . 'dummy_logo.png'; $this->actingAs($companyRepresentativeUser)->visit(route('my.companies.create'))->type($expectedCompany->name, 'name')->select($expectedIndustry->id, 'industry_id')->select($expectedCountry->id, 'country_id')->type($expectedCompany->business_leader, 'business_leader')->type($expectedCompany->address, 'address')->type($expectedCompany->email, 'email')->type($expectedCompany->phone_number, 'phone_number')->type($expectedCompany->focus, 'focus')->type($expectedCompany->description, 'description')->attach(storage_path('app/testing/dummy_logo.png'), 'logo_path')->press(trans('ahk.create'))->see(trans('ahk_messages.company_successfully_stored'))->see($expectedCompany->name)->seeIsSelected('industry_id', $expectedIndustry->id)->seeIsSelected('country_id', $expectedCountry->id)->see($expectedCompany->business_leader)->see($expectedCompany->address)->see($expectedCompany->email)->see($expectedCompany->phone_number)->see($expectedCompany->focus)->see($expectedCompany->description)->see(route('files.render', ['path' => $expectedLogoPath])); }
/** @test */ public function it_assigns_user() { $dbCompanyRepository = new DbCompanyRepository(); $dbUserRepository = new DbUserRepository(); $user = factory(User::class)->create(); $dbUserRepository->assignCompanyRepresentativeRole($user); $company = factory(Company::class)->create(); $this->assertNotSame($company->user->id, $user->id); $dbCompanyRepository->assignRepresentativeUser($company, $user); $this->assertSame($company->user->id, $user->id); }
/** @test */ public function it_returns_users_having_any_company_of_an_industry() { $dbUserRepository = new DbUserRepository(); $dbCompanyRepository = new DbCompanyRepository(); factory(User::class, 2)->create(); // Use to validate it does not return these. $expectedUsers = factory(User::class, 2)->create(); $dbUserRepository->assignCompanyRepresentativeRole($expectedUsers->get(0)); $dbUserRepository->assignCompanyRepresentativeRole($expectedUsers->get(1)); $industry = factory(Industry::class)->create(); factory(Company::class)->create(); factory(Company::class)->create(['industry_id' => $industry->id, 'user_id' => $expectedUsers->get(0)->id]); $keys = $expectedUsers->get(0)->getFillable(); $actualUsers = $dbUserRepository->whereCompaniesIndustry($industry)->get(); $this->assertTrue($dbUserRepository->hasCompanyRepresentativeRole($actualUsers->get(0))); $this->assertCount(1, $actualUsers); $this->assertSame(array_only($expectedUsers->toArray(), $keys), array_only($actualUsers->toArray(), $keys)); $company = factory(Company::class)->create(['industry_id' => $industry->id]); $dbCompanyRepository->assignRepresentativeUser($company, $expectedUsers->get(0)); $actualUsers = $dbUserRepository->whereCompaniesIndustry($industry)->get(); $this->assertCount(2, $actualUsers); }