'.care', 'app.tld_shop' => '.shop', 'app.domain' => 'mivita', 'app.pre_url_crm' => 'my.', 'app.protocol' => 'https://', 'app.url' => 'https://mivita.care/', ]); Mail::fake(); }); function makeReminderUser(int $daysLeft): User { if (! User::find(1)) { User::forceCreate([ 'id' => 1, 'email' => 'system@example.com', 'password' => bcrypt('secret'), 'lang' => 'de', ]); } return User::forceCreate([ 'email' => 'berater-'.uniqid('', true).'@example.com', 'password' => bcrypt('secret'), 'lang' => 'de', 'active' => 1, 'blocked' => 0, 'payment_account' => now()->addDays($daysLeft), ]); } it('verlinkt die Mitgliedschafts-Verlängerung auf die CRM-Domain', function () { makeReminderUser(10); $this->artisan('payments:check-accounts')->assertSuccessful(); Mail::assertSent(MailCustomMessage::class, function (MailCustomMessage $mail) { return str_contains($mail->render(), 'https://my.mivita.care/user/membership'); }); }); it('verlinkt nicht mehr auf die Hauptdomain', function () { makeReminderUser(10); $this->artisan('payments:check-accounts')->assertSuccessful(); Mail::assertSent(MailCustomMessage::class, function (MailCustomMessage $mail) { return ! str_contains($mail->render(), 'https://mivita.care//user/membership') && ! str_contains($mail->render(), 'https://mivita.care/user/membership'); }); }); it('erklaert in der Erinnerung, was beim Ablauf der Mitgliedschaft passiert', function () { makeReminderUser(10); $this->artisan('payments:check-accounts')->assertSuccessful(); Mail::assertSent(MailCustomMessage::class, function (MailCustomMessage $mail) { $body = $mail->render(); return str_contains($body, 'keine Punkte und keine Provisionen mehr gutgeschrieben') && str_contains($body, 'im nächsten Zahlungslauf aus'); }); });