Categories
PHP

PHP Testing Databases

class ModelTest extends TestCase {
  use DatabaseTransactions;

  /** @test */
  function its_radical() {
    // Given, When, Then
    
    //Faker class for Article to generate fake data
    factory(Article::class, 3)->create();

    //variation
    factory(Article::class, 3)->create(['reads' => 10]); 
    
    $popular = factory(Article::class, 3)->create(['reads' => 22]);
    $articles = Article::trending()->get();

    $this->assertEquals($popular->id, $articles->first()->id);
  }
}

class Article {
  public function scopeTrending($q, $take) {
    return $q->orderBy('reads', 'DESC')->take($take);
  }
}