Unverified Commit 7000b869 authored by Viral Solani's avatar Viral Solani Committed by GitHub

Merge pull request #201 from indranshastri/develop

Created Page Test of CRUD
parents a8dfa718 4e0ca3d7
...@@ -57,14 +57,15 @@ class PagesController extends APIController ...@@ -57,14 +57,15 @@ class PagesController extends APIController
*/ */
public function store(Request $request) public function store(Request $request)
{ {
$validation = $this->validatePages($request); $validation = $this->validatePages($request);
if ($validation->fails()) { if ($validation->fails()) {
return $this->throwValidation($validation->messages()->first()); return $this->throwValidation($validation->messages()->first());
} }
$this->repository->create($request->all()); $page = $this->repository->create($request->all());
return new PagesResource(Page::orderBy('created_at', 'desc')->first()); return new PagesResource($page);
} }
/** /**
......
...@@ -30,7 +30,7 @@ class UsersController extends APIController ...@@ -30,7 +30,7 @@ class UsersController extends APIController
* *
* @return \Illuminate\Http\JsonResponse * @return \Illuminate\Http\JsonResponse
*/ */
public function index(ManageUserRequest $request) public function index(Request $request)
{ {
$limit = $request->get('paginate') ? $request->get('paginate') : 25; $limit = $request->get('paginate') ? $request->get('paginate') : 25;
......
...@@ -12,6 +12,6 @@ class VerifyCsrfToken extends BaseVerifier ...@@ -12,6 +12,6 @@ class VerifyCsrfToken extends BaseVerifier
* @var array * @var array
*/ */
protected $except = [ protected $except = [
// 'api/*'
]; ];
} }
...@@ -58,10 +58,13 @@ class PagesRepository extends BaseRepository ...@@ -58,10 +58,13 @@ class PagesRepository extends BaseRepository
if ($page = Page::create($input)) { if ($page = Page::create($input)) {
event(new PageCreated($page)); event(new PageCreated($page));
return true; return $page;
} }
throw new GeneralException(trans('exceptions.backend.pages.create_error')); throw new GeneralException(trans('exceptions.backend.pages.create_error'));
} }
/** /**
......
...@@ -7,12 +7,18 @@ use Faker\Generator as Faker; ...@@ -7,12 +7,18 @@ use Faker\Generator as Faker;
$factory->define(Page::class, function (Faker $faker) { $factory->define(Page::class, function (Faker $faker) {
$title = $faker->sentence; $title = $faker->sentence;
$newestPage = Page::orderBy('id', 'desc')->first();
return [ return [
'title' => $title, 'title' => $title,
'page_slug' => str_slug($title), 'page_slug' => str_slug($title),
'description' => $faker->paragraph, 'description' => $faker->paragraph,
'cannonical_link' => "http://localhost:8000/".str_slug($title),
'created_by' => function () { 'created_by' => function () {
return factory(User::class)->create()->id; 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,
],
]);
}
/**
* Author: Indra Shastri
* Date:03-03-2018
* A basic test to update a page from api
*
*
* @return void
*/
/** @test */
public function update_a_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 = "";
$response = $this->json('PUT', '/api/v1/pages/1', $payload, $this->headers);
$response->assertStatus(200);
$response->assertJson([
"data"=>[
"title" => $page->title,
"status_label" => $page->status_label,
"status" => ($page->isActive()) ? 'Active' :'InActive',
"created_by" => "".$this->user->id,
],
]);
}
/**
* Author: Indra Shastri
* Date:03-03-2018
* 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 = "";
$response = $this->json('POST', '/api/v1/pages', $payload, $this->headers);
$response->assertStatus(201);
$response->assertJson([
"data" => [
"title" => $page->title,
"status_label" => $page->status_label,
"status" => ($page->isActive()) ? 'Active' : 'InActive',
"created_by" => $this->user->first_name,
"created_at" => (\Carbon\Carbon::now())->toDateString()
],
]);
}
/**
* Author: Indra Shastri
* Date:03-03-2018
* A basic test to create a page from api
*
* @return void
*/
/** @test */
public function delete_page_in_db_and_get_response(){
$page = create(Page::class);
$payload=[];
$response = $this->json('DELETE', '/api/v1/pages/'.$page->id, $payload, $this->headers);
$response->assertStatus(200)
->assertJson([
"message"=> "The Page was successfully deleted."
]);
}
}
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