public function likes(\AcceptanceTester $I) { $answer = App\Models\Answer::get()->random(); $user = App\Models\User::get()->random(); \Auth::login($user); $likes = $answer->likes->count(); $I->wantTo('like answer'); $I->amOnRoute('q', ['id' => $answer->question->id]); $I->see($answer->question->title); $c = $likes ? (int) $I->grabTextFrom('li#answer_' . $answer->id . ' a.btn_like .like_count') : 0; $I->assertEquals($likes, $c); $I->click('li#answer_' . $answer->id . ' a.btn_like'); $I->amOnRoute('q', ['id' => $answer->question->id]); $answer = App\Models\Answer::find($answer->id); $I->assertEquals($likes + 1, $answer->likes->count()); }
/** * Run the database seeds. * * @return void */ public function run() { DB::table('answer_likes')->truncate(); $users = App\Models\User::get(); App\Models\Answer::all()->each(function ($answer) use($users) { if (rand(0, 10) < 6) { return; } $random_users = ($count = rand(1, 5)) ? $users->random($count) : []; $random_users = $count == 1 ? [$random_users] : $random_users->all(); foreach ($random_users as $user) { if ($answer->user->id == $user->id) { continue; } $answer->likes()->attach($user->id); } }); }