public function test_render_if_showing() { $post = DummyPost::find(1); $html = \Mural::render($post, 'test-room'); $crawler = new Crawler($html); $this->assertEquals($crawler->filter('div[data-type = "Laravolt\\Mural\\Test\\DummyPost"]')->count(), 1); $this->assertEquals($crawler->filter('div[data-room = "test-room"]')->count(), 1); $this->assertContains($crawler->filter('.author')->text(), 'Heru'); $this->assertContains('ago', $crawler->filter('.date')->text()); $this->assertContains('My Comment 2', $crawler->filter('.media-body p')->eq(0)->text()); $this->assertContains('My Comment 1', $crawler->filter('.media-body p')->eq(1)->text()); }
/** * Setup database untuk dummy data yang dibutuhkan untuk testing. * Method ini akan dijalankan setiap test case. * * File database.sqlite akan dinull kan sehingga test case akan memiliki fresh data setiap dijalankan. * * Penggunaan package Mural bergantung pada Model di Laravel apps seperti kewajiban implement interface di model atau * penggunaan trait. * Maka kita perlu membuat dummy model (DummyPost, DummyUser) agar dapat mensimulasikan situasi tersebut, beserta table-tablenya. * Disini dilakukan schema creation untuk dummy-dummy model tersebut. * * Package Mural membutuhkan table db tersendiri (table Comment), maka kita perlu memigratekannya juga. */ protected function setUpDatabase() { file_put_contents(__DIR__ . '/database.sqlite', null); $this->app['db']->connection()->getSchemaBuilder()->create('dummy_posts', function (Blueprint $table) { $table->increments('id'); $table->string('content'); $table->timestamps(); }); $this->app['db']->connection()->getSchemaBuilder()->create('dummy_users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->integer('is_admin'); $table->timestamps(); }); $this->artisan('migrate', ['--database' => 'sqlite', '--realpath' => realpath(__DIR__ . '/../database/migrations')]); $post = DummyPost::create(['content' => 'My first post']); $user = DummyUser::create(['name' => 'Heru', 'is_admin' => 0]); $userAdmin = DummyUser::create(['name' => 'Toni', 'is_admin' => 1]); for ($i = 1; $i <= 2; $i++) { Comment::create(['author_id' => $user->id, 'commentable_id' => $post->id, 'commentable_type' => DummyPost::class, 'body' => 'My Comment ' . $i, 'room' => 'test-room']); } }
public function test_get_comments() { $post = DummyPost::find(1); $comments = \Mural::getComments($post, 'test-room'); $this->assertEquals($comments->count(), 2); }