Fixed tests

This commit is contained in:
philipp lang 2022-02-19 18:06:07 +01:00
parent a30d2659ad
commit c3adcc6fdb
26 changed files with 92 additions and 109 deletions

View File

@ -5,7 +5,6 @@ namespace App\Console\Commands;
use App\Initialize\Initializer; use App\Initialize\Initializer;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
use Zoomyboy\LaravelNami\NamiUser;
class NamiInitializeCommand extends Command class NamiInitializeCommand extends Command
{ {
@ -40,15 +39,7 @@ class NamiInitializeCommand extends Command
*/ */
public function handle() public function handle()
{ {
app(Initializer::class)->run(NamiUser::fromPayload([ app(Initializer::class)->run();
'credentials' => [
'mglnr' => $this->option('mglnr'),
'password' => $this->option('password'),
],
'firstname' => 'Console',
'lastname' => 'Console',
'group_id' => $this->option('group_id'),
]));
return 0; return 0;
} }

View File

@ -21,16 +21,16 @@ class CourseController extends Controller
return redirect()->back()->success('Ausbildung erstellt'); return redirect()->back()->success('Ausbildung erstellt');
} }
public function update(Member $member, CourseMember $course, UpdateRequest $request): RedirectResponse public function update(Member $member, CourseMember $course, UpdateRequest $request, NamiSettings $settings): RedirectResponse
{ {
$request->persist($member, $course); $request->persist($member, $course, $settings);
return redirect()->back()->success('Ausbildung aktualisiert'); return redirect()->back()->success('Ausbildung aktualisiert');
} }
public function destroy(Member $member, CourseMember $course, DestroyRequest $request): RedirectResponse public function destroy(Member $member, CourseMember $course, DestroyRequest $request, NamiSettings $settings): RedirectResponse
{ {
$request->persist($member, $course); $request->persist($member, $course, $settings);
return redirect()->back()->success('Ausbildung gelöscht'); return redirect()->back()->success('Ausbildung gelöscht');
} }

View File

@ -5,6 +5,7 @@ namespace App\Course\Requests;
use App\Course\Models\Course; use App\Course\Models\Course;
use App\Course\Models\CourseMember; use App\Course\Models\CourseMember;
use App\Member\Member; use App\Member\Member;
use App\Setting\NamiSettings;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Validation\ValidationException; use Illuminate\Validation\ValidationException;
@ -32,13 +33,9 @@ class DestroyRequest extends FormRequest
return []; return [];
} }
public function persist(Member $member, CourseMember $course): void public function persist(Member $member, CourseMember $course, NamiSettings $settings): void
{ {
try { $settings->login()->deleteCourse($member->nami_id, $course->nami_id);
auth()->user()->api()->deleteCourse($member->nami_id, $course->nami_id);
} catch(NamiException $e) {
throw ValidationException::withMessages(['id' => 'Unbekannter Fehler']);
}
$course->delete(); $course->delete();
} }

View File

@ -47,11 +47,7 @@ class StoreRequest extends FormRequest
'course_id' => $course->nami_id, 'course_id' => $course->nami_id,
])->toArray(); ])->toArray();
try { $namiId = $settings->login()->createCourse($member->nami_id, $payload);
$namiId = Nami::login($settings->mglnr, $settings->password)->createCourse($member->nami_id, $payload);
} catch(NamiException $e) {
throw ValidationException::withMessages(['id' => 'Unbekannter Fehler']);
}
$member->courses()->create($this->safe()->collect()->put('nami_id', $namiId)->toArray()); $member->courses()->create($this->safe()->collect()->put('nami_id', $namiId)->toArray());
} }

View File

@ -5,6 +5,7 @@ namespace App\Course\Requests;
use App\Course\Models\Course; use App\Course\Models\Course;
use App\Course\Models\CourseMember; use App\Course\Models\CourseMember;
use App\Member\Member; use App\Member\Member;
use App\Setting\NamiSettings;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
use Illuminate\Validation\ValidationException; use Illuminate\Validation\ValidationException;
@ -37,13 +38,13 @@ class UpdateRequest extends FormRequest
]; ];
} }
public function persist(Member $member, CourseMember $course): void public function persist(Member $member, CourseMember $course, NamiSettings $settings): void
{ {
try { $settings->login()->updateCourse(
auth()->user()->api()->updateCourse($member->nami_id, $course->nami_id, $this->safe()->merge(['course_id' => Course::find($this->input('course_id'))->nami_id])->toArray()); $member->nami_id,
} catch(NamiException $e) { $course->nami_id,
throw ValidationException::withMessages(['id' => 'Unbekannter Fehler']); $this->safe()->merge(['course_id' => Course::find($this->input('course_id'))->nami_id])->toArray()
} );
$course->update($this->safe()->toArray()); $course->update($this->safe()->toArray());
} }

View File

@ -39,13 +39,6 @@ class Handler extends ExceptionHandler
*/ */
public function report(Throwable $exception) public function report(Throwable $exception)
{ {
if (is_a($exception, NamiException::class)) {
\Log::error($exception->getMessage(), [
'request' => $exception->request,
'response' => $exception->response
]);
}
parent::report($exception); parent::report($exception);
} }

View File

@ -4,8 +4,8 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider; use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Inertia\Response; use Inertia\Response;
use Zoomyboy\LaravelNami\AuthenticatesNamiUsers;
class LoginController extends Controller class LoginController extends Controller
{ {
@ -20,7 +20,7 @@ class LoginController extends Controller
| |
*/ */
use AuthenticatesNamiUsers; use AuthenticatesUsers;
/** /**
* Where to redirect users after login. * Where to redirect users after login.
@ -42,4 +42,5 @@ class LoginController extends Controller
public function showLoginForm(): Response { public function showLoginForm(): Response {
return \Inertia::render('VLogin'); return \Inertia::render('VLogin');
} }
} }

View File

@ -6,7 +6,7 @@ use Illuminate\Http\Resources\Json\JsonResource;
use Storage; use Storage;
/** /**
* @mixin \Zoomyboy\LaravelNami\NamiUser * @mixin \App\User
*/ */
class UserResource extends JsonResource class UserResource extends JsonResource
{ {
@ -19,8 +19,8 @@ class UserResource extends JsonResource
public function toArray($request) public function toArray($request)
{ {
return [ return [
'name' => $this->getFirstname(), 'name' => $this->name,
'email' => null, 'email' => $this->email,
'avatar' => [ 'avatar' => [
'src' => Storage::url('avatar.png') 'src' => Storage::url('avatar.png')
] ]

View File

@ -3,7 +3,6 @@
namespace App\Initialize; namespace App\Initialize;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeActivities { class InitializeActivities {
@ -13,8 +12,9 @@ class InitializeActivities {
$this->api = $api; $this->api = $api;
} }
public function handle(NamiUser $user): void public function handle(): void
{ {
app(ActivityCreator::class)->createFor($this->api, $user->getNamiGroupId()); $groupId = $this->api->groups()->first()->id;
app(ActivityCreator::class)->createFor($this->api, $groupId);
} }
} }

View File

@ -5,7 +5,6 @@ namespace App\Initialize;
use App\Course\Models\Course; use App\Course\Models\Course;
use Aweos\Agnoster\Progress\Progress; use Aweos\Agnoster\Progress\Progress;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeCourses { class InitializeCourses {
@ -15,7 +14,7 @@ class InitializeCourses {
$this->api = $api; $this->api = $api;
} }
public function handle(NamiUser $user): void public function handle(): void
{ {
$this->api->courses()->each(function($course) { $this->api->courses()->each(function($course) {
Course::create(['nami_id' => $course->id, 'name' => $course->name]); Course::create(['nami_id' => $course->id, 'name' => $course->name]);

View File

@ -2,8 +2,8 @@
namespace App\Initialize; namespace App\Initialize;
use App\Fee;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeFees { class InitializeFees {
@ -13,10 +13,11 @@ class InitializeFees {
$this->api = $api; $this->api = $api;
} }
public function handle(NamiUser $user): void public function handle(): void
{ {
$this->api->feesOf($user->getNamiGroupId())->each(function($fee) { $group = $this->api->groups()->first()->id;
\App\Fee::create(['nami_id' => $fee->id, 'name' => $fee->name]) $this->api->feesOf($group)->each(function($fee) {
Fee::create(['nami_id' => $fee->id, 'name' => $fee->name])
->subscriptions()->create([ ->subscriptions()->create([
'name' => $fee->name, 'name' => $fee->name,
'amount' => 1000, 'amount' => 1000,

View File

@ -3,7 +3,6 @@
namespace App\Initialize; namespace App\Initialize;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeGenders { class InitializeGenders {
@ -13,7 +12,7 @@ class InitializeGenders {
$this->api = $api; $this->api = $api;
} }
public function handle(NamiUser $user): void public function handle(): void
{ {
$this->api->genders()->each(function($gender) { $this->api->genders()->each(function($gender) {
\App\Gender::create(['nami_id' => $gender->id, 'name' => $gender->name]); \App\Gender::create(['nami_id' => $gender->id, 'name' => $gender->name]);

View File

@ -4,7 +4,6 @@ namespace App\Initialize;
use App\Group; use App\Group;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeGroups { class InitializeGroups {

View File

@ -9,19 +9,11 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Zoomyboy\LaravelNami\NamiUser;
class InitializeJob implements ShouldQueue class InitializeJob implements ShouldQueue
{ {
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, HasProgress; use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, HasProgress;
public NamiUser $user;
public function __construct(NamiUser $user)
{
$this->user = $user;
}
/** /**
* Execute the job. * Execute the job.
* *
@ -29,6 +21,6 @@ class InitializeJob implements ShouldQueue
*/ */
public function handle() public function handle()
{ {
app(Initializer::class)->run($this->user); app(Initializer::class)->run();
} }
} }

View File

@ -2,6 +2,7 @@
namespace App\Initialize; namespace App\Initialize;
use App\Nationality;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
class InitializeNationalities { class InitializeNationalities {
@ -12,10 +13,10 @@ class InitializeNationalities {
$this->api = $api; $this->api = $api;
} }
public function handle(): void public function handle(Api $api): void
{ {
$this->api->nationalities()->each(function($nationality) { $this->api->nationalities()->each(function($nationality) {
\App\Nationality::create(['nami_id' => $nationality->id, 'name' => $nationality->name]); Nationality::create(['nami_id' => $nationality->id, 'name' => $nationality->name]);
}); });
} }
} }

View File

@ -2,12 +2,13 @@
namespace App\Initialize; namespace App\Initialize;
use App\Setting\NamiSettings;
use Zoomyboy\LaravelNami\Api; use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\NamiUser;
class Initializer { class Initializer {
public static array $initializers = [ public NamiSettings $settings;
public array $initializers = [
InitializeNationalities::class, InitializeNationalities::class,
InitializeFees::class, InitializeFees::class,
InitializeConfessions::class, InitializeConfessions::class,
@ -19,9 +20,14 @@ class Initializer {
InitializeMembers::class, InitializeMembers::class,
]; ];
public function run(NamiUser $namiUser): void { public function __construct(NamiSettings $settings)
foreach (static::$initializers as $initializer) { {
(new $initializer($namiUser->api()))->handle($namiUser); $this->settings = $settings;
}
public function run(): void {
foreach ($this->initializers as $initializer) {
app($initializer)->handle($this->settings->login());
} }
} }

View File

@ -12,7 +12,6 @@ use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
use Zoomyboy\LaravelNami\NamiUser;
class CreateJob implements ShouldQueue class CreateJob implements ShouldQueue
{ {
@ -20,9 +19,8 @@ class CreateJob implements ShouldQueue
public int $memberId; public int $memberId;
public Member $member; public Member $member;
public NamiUser $user;
public function __construct(Member $member, NamiUser $user) public function __construct(Member $member)
{ {
$this->memberId = $member->id; $this->memberId = $member->id;
$this->user = $user; $this->user = $user;

View File

@ -9,7 +9,6 @@ use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
use Zoomyboy\LaravelNami\NamiUser;
class DeleteJob implements ShouldQueue class DeleteJob implements ShouldQueue
{ {
@ -17,9 +16,8 @@ class DeleteJob implements ShouldQueue
public int $memberId; public int $memberId;
public Member $member; public Member $member;
public NamiUser $user;
public function __construct(Member $member, NamiUser $user) public function __construct(Member $member)
{ {
$this->memberId = $member->id; $this->memberId = $member->id;
$this->user = $user; $this->user = $user;
@ -38,7 +36,7 @@ class DeleteJob implements ShouldQueue
return; return;
} }
Nami::login($this->user->mglnr)->deleteMember($this->member->nami_id); $setting->login()->deleteMember($this->member->nami_id);
Member::withoutEvents(function() { Member::withoutEvents(function() {
$this->member->update(['nami_id' => null]); $this->member->update(['nami_id' => null]);

View File

@ -10,7 +10,6 @@ use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
use Zoomyboy\LaravelNami\NamiUser;
class UpdateJob implements ShouldQueue class UpdateJob implements ShouldQueue
{ {
@ -18,12 +17,10 @@ class UpdateJob implements ShouldQueue
public int $memberId; public int $memberId;
public Member $member; public Member $member;
public NamiUser $user;
public function __construct(Member $member, NamiUser $user) public function __construct(Member $member)
{ {
$this->memberId = $member->id; $this->memberId = $member->id;
$this->user = $user;
} }
/** /**
@ -39,7 +36,7 @@ class UpdateJob implements ShouldQueue
return; return;
} }
$response = Nami::login($this->user->mglnr)->putMember([ $response = $this->service->login()->putMember([
'firstname' => $this->member->firstname, 'firstname' => $this->member->firstname,
'lastname' => $this->member->lastname, 'lastname' => $this->member->lastname,
'joined_at' => $this->member->joined_at, 'joined_at' => $this->member->joined_at,

View File

@ -3,6 +3,8 @@
namespace App\Setting; namespace App\Setting;
use Spatie\LaravelSettings\Settings; use Spatie\LaravelSettings\Settings;
use Zoomyboy\LaravelNami\Api;
use Zoomyboy\LaravelNami\Nami;
class NamiSettings extends Settings class NamiSettings extends Settings
{ {
@ -16,4 +18,9 @@ class NamiSettings extends Settings
return 'nami'; return 'nami';
} }
public function login(): Api
{
return Nami::login($this->mglnr, $this->password);
}
} }

@ -1 +1 @@
Subproject commit b8d2a04d43dd7634ac6e653b26b07b317c5566db Subproject commit 63cef423857c4d87c0e813e761102f518502cd5f

View File

@ -18,8 +18,7 @@ class DeleteTest extends TestCase
public function testItDeletesACourse(): void public function testItDeletesACourse(): void
{ {
$this->withoutExceptionHandling(); $this->login()->loginNami();
$this->login()->init();
app(CourseFake::class)->deleteSuccessful(123, 999); app(CourseFake::class)->deleteSuccessful(123, 999);
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne(); $member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne();
@ -31,14 +30,13 @@ class DeleteTest extends TestCase
public function testItReceivesUnknownErrors(): void public function testItReceivesUnknownErrors(): void
{ {
$this->login()->init(); $this->login()->loginNami();
app(CourseFake::class)->deleteFailed(123, 999); app(CourseFake::class)->deleteFailed(123, 999);
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne(); $member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne();
$response = $this->delete("/member/{$member->id}/course/{$member->courses->first()->id}"); $response = $this->delete("/member/{$member->id}/course/{$member->courses->first()->id}");
$this->assertDatabaseCount('course_members', 1); $this->assertDatabaseCount('course_members', 1);
$response->assertSessionHasErrors(['id' => 'Unbekannter Fehler']); $response->assertSessionHasErrors(['id' => 'Unbekannter Fehler']);
} }

View File

@ -56,7 +56,7 @@ class UpdateTest extends TestCase
*/ */
public function testItValidatesInput(array $payload, array $errors): void public function testItValidatesInput(array $payload, array $errors): void
{ {
$this->login(); $this->login()->loginNami();
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->for(Course::factory()), 'courses')->createOne(); $member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->for(Course::factory()), 'courses')->createOne();
$newCourse = Course::factory()->inNami(789)->create(); $newCourse = Course::factory()->inNami(789)->create();
@ -67,13 +67,13 @@ class UpdateTest extends TestCase
'organizer' => '::org::', 'organizer' => '::org::',
], $payload)); ], $payload));
$response->assertSessionHasErrors($errors); $this->assertErrors($errors, $response);
} }
public function testItUpdatesACourse(): void public function testItUpdatesACourse(): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
$this->login()->init(); $this->login()->loginNami();
app(CourseFake::class)->updatesSuccessful(123, 999); app(CourseFake::class)->updatesSuccessful(123, 999);
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne(); $member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne();
$newCourse = Course::factory()->inNami(789)->create(); $newCourse = Course::factory()->inNami(789)->create();
@ -101,9 +101,25 @@ class UpdateTest extends TestCase
]); ]);
} }
public function testItThrowsErrorWhenLoginIsWrong(): void
{
$this->login()->failedNami();
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne();
$newCourse = Course::factory()->inNami(789)->create();
$response = $this->patch("/member/{$member->id}/course/{$member->courses->first()->id}", array_merge([
'course_id' => $newCourse->id,
'completed_at' => '1999-02-03',
'event_name' => '::newevent::',
'organizer' => '::neworg::',
]));
$this->assertErrors(['nami' => 'NaMi Login fehlgeschlagen.'], $response);
}
public function testItReceivesUnknownErrors(): void public function testItReceivesUnknownErrors(): void
{ {
$this->login()->init(); $this->login()->loginNami();
app(CourseFake::class)->doesntUpdateWithError(123, 999); app(CourseFake::class)->doesntUpdateWithError(123, 999);
$member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne(); $member = Member::factory()->defaults()->inNami(123)->has(CourseMember::factory()->inNami(999)->for(Course::factory()), 'courses')->createOne();
$newCourse = Course::factory()->inNami(789)->create(); $newCourse = Course::factory()->inNami(789)->create();

View File

@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Tests\TestCase; use Tests\TestCase;
use Zoomyboy\LaravelNami\Backend\FakeBackend; use Zoomyboy\LaravelNami\Backend\FakeBackend;
use Zoomyboy\LaravelNami\Fakes\GroupFake;
class InitializeTest extends TestCase class InitializeTest extends TestCase
{ {
@ -25,8 +26,8 @@ class InitializeTest extends TestCase
public function initializeProvider(callable $callback = null): void public function initializeProvider(callable $callback = null): void
{ {
app(GroupFake::class)->get([1000 => ['name' => 'testgroup']]);
$backend = app(FakeBackend::class) $backend = app(FakeBackend::class)
->fakeLogin('123')
->addSearch(123, ['entries_vorname' => '::firstname::', 'entries_nachname' => '::lastname::', 'entries_gruppierungId' => 1000]) ->addSearch(123, ['entries_vorname' => '::firstname::', 'entries_nachname' => '::lastname::', 'entries_gruppierungId' => 1000])
->fakeNationalities([['name' => 'deutsch', 'id' => 291]]) ->fakeNationalities([['name' => 'deutsch', 'id' => 291]])
->fakeFees(1000, [['name' => 'Family', 'id' => 300]]) ->fakeFees(1000, [['name' => 'Family', 'id' => 300]])
@ -67,9 +68,8 @@ class InitializeTest extends TestCase
public function testItInitializesAll(): void public function testItInitializesAll(): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->login()->loginNami();
$this->initializeProvider(); $this->initializeProvider();
$this->login();
$this->post('/initialize'); $this->post('/initialize');
@ -119,12 +119,12 @@ class InitializeTest extends TestCase
]); ]);
$this->assertEquals([306], Activity::where('nami_id', 305)->firstOrFail()->subactivities()->pluck('nami_id')->toArray()); $this->assertEquals([306], Activity::where('nami_id', 305)->firstOrFail()->subactivities()->pluck('nami_id')->toArray());
Http::assertSentCount(16); Http::assertSentCount(15);
} }
public function testItInitializesFromCommandLine(): void public function testItInitializesFromCommandLine(): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->loginNami();
$this->initializeProvider(); $this->initializeProvider();
GeneralSettings::fake(['allowed_nami_accounts' => [123]]); GeneralSettings::fake(['allowed_nami_accounts' => [123]]);
@ -142,7 +142,7 @@ class InitializeTest extends TestCase
public function testSyncCoursesOfMember(): void public function testSyncCoursesOfMember(): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->login()->loginNami();
$this->initializeProvider(function($backend) { $this->initializeProvider(function($backend) {
$backend->fakeMembers([ $backend->fakeMembers([
$this->member(['courses' => [ ['bausteinId' => 506, 'id' => 788, 'veranstalter' => 'KJA', 'vstgName' => 'eventname', 'vstgTag' => '2021-11-12 00:00:00'] ]]) $this->member(['courses' => [ ['bausteinId' => 506, 'id' => 788, 'veranstalter' => 'KJA', 'vstgName' => 'eventname', 'vstgTag' => '2021-11-12 00:00:00'] ]])
@ -345,7 +345,7 @@ class InitializeTest extends TestCase
if (!$backendCallback) { if (!$backendCallback) {
$backendCallback = function($backend) { return $backend; }; $backendCallback = function($backend) { return $backend; };
} }
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->login()->loginNami();
$this->initializeProvider(function($backend) use ($membership, $backendCallback) { $this->initializeProvider(function($backend) use ($membership, $backendCallback) {
$backend->fakeMembers([ $backend->fakeMembers([
$this->member([ $this->member([
@ -361,7 +361,6 @@ class InitializeTest extends TestCase
]); ]);
$backendCallback($backend); $backendCallback($backend);
}); });
$this->login();
$this->post('/initialize'); $this->post('/initialize');
@ -370,7 +369,7 @@ class InitializeTest extends TestCase
public function testItDoesntGetMembersWithNoJoinedAtDate(): void public function testItDoesntGetMembersWithNoJoinedAtDate(): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->login()->loginNami();
$this->initializeProvider(function($backend) { $this->initializeProvider(function($backend) {
$backend->fakeMembers([$this->member(['eintrittsdatum' => null])]); $backend->fakeMembers([$this->member(['eintrittsdatum' => null])]);
}); });
@ -401,7 +400,7 @@ class InitializeTest extends TestCase
*/ */
public function testItInitializesPages(int $num): void public function testItInitializesPages(int $num): void
{ {
$this->withoutExceptionHandling(); $this->withoutExceptionHandling()->login()->loginNami();
$this->initializeProvider(function($backend) use ($num) { $this->initializeProvider(function($backend) use ($num) {
$members = collect([]); $members = collect([]);

View File

@ -30,14 +30,10 @@ class UserLoginTest extends TestCase
$this->post('/login', [ $this->post('/login', [
'email' => 'mail@example.com', 'email' => 'mail@example.com',
'provider' => 'database',
'password' => 'secret' 'password' => 'secret'
]); ]);
$key = session()->get('auth_key'); $this->assertAuthenticated();
$cache = Cache::get("namiauth-{$key}");
$this->assertEquals($user->id, data_get($cache, 'id'));
$this->assertTrue(auth()->check());
} }
public function testItThrowsExceptionWhenLoginFailed(): void public function testItThrowsExceptionWhenLoginFailed(): void
@ -47,7 +43,6 @@ class UserLoginTest extends TestCase
$this->post('/login', [ $this->post('/login', [
'email' => 'mail@example.com', 'email' => 'mail@example.com',
'provider' => 'database',
'password' => 'wrong' 'password' => 'wrong'
])->assertRedirect('/'); ])->assertRedirect('/');

View File

@ -13,7 +13,6 @@ use Tests\Lib\TestsInertia;
use Zoomyboy\LaravelNami\Authentication\Auth; use Zoomyboy\LaravelNami\Authentication\Auth;
use Zoomyboy\LaravelNami\Backend\FakeBackend; use Zoomyboy\LaravelNami\Backend\FakeBackend;
use Zoomyboy\LaravelNami\Nami; use Zoomyboy\LaravelNami\Nami;
use Zoomyboy\LaravelNami\NamiUser;
abstract class TestCase extends BaseTestCase abstract class TestCase extends BaseTestCase
{ {