Commit af02a4a4 authored by cygnet's avatar cygnet

changes done for writting the testcases in laravel for page module

parent 0c8c4ff2
......@@ -7,12 +7,19 @@ use Faker\Generator as Faker;
$factory->define(Page::class, function (Faker $faker) {
$title = $faker->sentence;
$newestPage = Page::orderBy('id', 'desc')->first();
return [
"id" => $newestPage->id+1,
'title' => $title,
'page_slug' => str_slug($title),
'description' => $faker->paragraph,
'cannonical_link' => "http://localhost:8000/".str_slug($title),
'created_by' => function () {
return factory(User::class)->create()->id;
},
'status' => 1,
'created_at' => Carbon\Carbon::now(),
'updated_at' => Carbon\Carbon::now(),
];
});
<?php
namespace Tests\Feature\Api\V1;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\BrowserKitTestCase;
use App\Models\Access\User\User;
use App\Models\Page\Page;
use JWTAuth;
class PageTest extends TestCase
{
public $token='';
public $headers='';
public $user='';
public function setUp()
{
parent::setUp();
$this->user = User::find(1);
$this->token = JWTAuth::fromUser($this->user);
$this->headers = ['Authorization' => "Bearer ".$this->token];
}
/**
* A basic test example.
*
* @return void
*/
public function testExample()
{
$this->assertTrue(true);
}
/**
* A basic test to get response form pages api
*
* @return void
*/
/** @test */
public function Get_records_from_pages()
{
$payload = [];
$response = $this->json('GET', '/api/v1/pages',$payload, $this->headers);
$response
->assertStatus(200)
->assertJsonStructure([
'data'=>[
[
"id",
"title",
"status_label",
"status",
"created_at",
"created_by"
]
],
'links',
'meta'
]);
}
/**
* A basic test to get response form pages api
*
* @return void
*/
/** @test */
public function get_one_created_page_from_db()
{
$page = create(Page::class);
$payload = [];
$response = $this->json('GET', '/api/v1/pages/'.$page->id, $payload, $this->headers);
$response
->assertStatus(200)
->assertJson([
"data"=>[
"id" => $page->id,
"title" => $page->title,
"status_label" => $page->status_label,
"status" => ($page->isActive()) ? 'Active' :'InActive',
"created_by" => $page->created_by,
],
]);
}
/**
* A basic test to create a page from api
*
* @return void
*/
/** @test */
public function create_a_new_page_in_db_and_get_response()
{
$page = make(Page::class);
$payload = [
"title" => $page->title,
"description" => $page->description,
"cannonical_link" => $page->cannonical_link,
"seo_title" => "some tittle",
"seo_keyword" => "some keywords",
"seo_description" => "<p>&nbsp;</p>↵<h1>SEO Description</h1>↵<p>some seco desctription</p>↵<p>askdsaj;ldsjfd</p>",
"status" => "1",
];
$response = $this->json('POST', '/api/v1/pages', $payload, $this->headers);
$response
->assertStatus(200)
->assertJson([
"data"=>[
"id" => $page->id,
"title" => $page->title,
"status_label" => $page->status_label,
"status" => ($page->isActive()) ? 'Active' :'InActive',
"created_by" => "".$this->user->id,
],
]);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment