Added Tests and numerous fixes

This commit is contained in:
bretto36 2016-06-15 21:36:09 -04:00
parent 9878e41397
commit 30362dcc16
14 changed files with 106 additions and 47 deletions

View File

@ -10,7 +10,7 @@ use Auth;
use Carbon\Carbon; use Carbon\Carbon;
use Image; use Image;
use Validator; use Validator;
use Log;
class EventController extends MyBaseController class EventController extends MyBaseController
{ {
@ -101,7 +101,7 @@ class EventController extends MyBaseController
$validator = Validator::make($request->all(), $rules, $messages); $validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) { if ($validator->fails()) {
return Response::json([ return response()->json([
'status' => 'error', 'status' => 'error',
'messages' => $validator->messages()->toArray(), 'messages' => $validator->messages()->toArray(),
]); ]);
@ -118,13 +118,22 @@ class EventController extends MyBaseController
} elseif ($request->get('organiser_id')) { } elseif ($request->get('organiser_id')) {
$event->organiser_id = $request->get('organiser_id'); $event->organiser_id = $request->get('organiser_id');
} else { /* Somethings gone horribly wrong */ } else { /* Somethings gone horribly wrong */
return Response::json([ return response()->json([
'status' => 'error', 'status' => 'error',
'messages' => 'There was an issue finding the organiser.', 'messages' => 'There was an issue finding the organiser.',
]); ]);
} }
try {
$event->save(); $event->save();
} catch (\Exception $e) {
Log::error($e);
return response()->json([
'status' => 'error',
'messages' => 'Whoops! There was a problem creating your event. Please try again.',
]);
}
if ($request->hasFile('event_image')) { if ($request->hasFile('event_image')) {
$path = public_path().'/'.config('attendize.event_images_path'); $path = public_path().'/'.config('attendize.event_images_path');

View File

@ -13,7 +13,7 @@ class OrganiserController extends MyBaseController
* *
* @return \Illuminate\Contracts\View\View * @return \Illuminate\Contracts\View\View
*/ */
public function showSelectOragniser() public function showSelectOrganiser()
{ {
return view('ManageOrganiser.SelectOrganiser'); return view('ManageOrganiser.SelectOrganiser');
} }

View File

@ -6,6 +6,7 @@ use App\Models\Organiser;
use Closure; use Closure;
use Redirect; use Redirect;
use Request; use Request;
use DB;
class FirstRunMiddleware class FirstRunMiddleware
{ {
@ -19,12 +20,13 @@ class FirstRunMiddleware
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
DB::enableQueryLog();
/* /*
* If there are no organisers then redirect the user to create one * If there are no organisers then redirect the user to create one
* else - if there's only one organiser bring the user straight there. * else - if there's only one organiser bring the user straight there.
*/ */
if (Organiser::scope()->count() === 0 && !($request->route()->getName() == 'showCreateOrganiser') && !($request->route()->getName() == 'postCreateOrganiser')) { if (Organiser::scope()->count() === 0 && !($request->route()->getName() == 'showCreateOrganiser') && !($request->route()->getName() == 'postCreateOrganiser')) {
dd(DB::getQueryLog());
return redirect(route('showCreateOrganiser', [ return redirect(route('showCreateOrganiser', [
'first_run' => '1', 'first_run' => '1',
])); ]));

View File

@ -217,7 +217,7 @@ Route::group(['middleware' => ['auth', 'first.run']], function () {
Route::get('select_organiser', [ Route::get('select_organiser', [
'as' => 'showSelectOrganiser', 'as' => 'showSelectOrganiser',
'uses' => 'OrganiserController@showSelectOragniser', 'uses' => 'OrganiserController@showSelectOrganiser',
]); ]);
/* /*
@ -233,10 +233,16 @@ Route::group(['middleware' => ['auth', 'first.run']], function () {
'as' => 'showOrganiserEvents', 'as' => 'showOrganiserEvents',
'uses' => 'OrganiserEventsController@showEvents', 'uses' => 'OrganiserEventsController@showEvents',
]); ]);
Route::get('{organiser_id}/customize', [ Route::get('{organiser_id}/customize', [
'as' => 'showOrganiserCustomize', 'as' => 'showOrganiserCustomize',
'uses' => 'OrganiserCustomizeController@showCustomize', 'uses' => 'OrganiserCustomizeController@showCustomize',
]); ]);
Route::post('{organiser_id}/customize', [
'as' => 'postEditOrganiser',
'uses' => 'OrganiserCustomizeController@postEditOrganiser',
]);
Route::get('create', [ Route::get('create', [
'as' => 'showCreateOrganiser', 'as' => 'showCreateOrganiser',
'uses' => 'OrganiserController@showCreateOrganiser', 'uses' => 'OrganiserController@showCreateOrganiser',
@ -245,14 +251,6 @@ Route::group(['middleware' => ['auth', 'first.run']], function () {
'as' => 'postCreateOrganiser', 'as' => 'postCreateOrganiser',
'uses' => 'OrganiserController@postCreateOrganiser', 'uses' => 'OrganiserController@postCreateOrganiser',
]); ]);
Route::get('{organiser_id}/edit', [
'as' => 'showEditOrganiser',
'uses' => 'OrganiserController@showEditOrganiser',
]);
Route::post('{organiser_id}/edit', [
'as' => 'postEditOrganiser',
'uses' => 'OrganiserCustomizeController@postEditOrganiser',
]);
Route::post('{organiser_id}/page_design', [ Route::post('{organiser_id}/page_design', [
'as' => 'postEditOrganiserPageDesign', 'as' => 'postEditOrganiserPageDesign',

View File

@ -120,7 +120,7 @@ class MyBaseModel extends \Illuminate\Database\Eloquent\Model
* *
* @return bool|null|string * @return bool|null|string
*/ */
public function getFormatedDate($field, $format = 'd-m-Y H:i') public function getFormattedDate($field, $format = 'd-m-Y H:i')
{ {
return $this->$field === null ? null : date($format, strtotime($this->$field)); return $this->$field === null ? null : date($format, strtotime($this->$field));
} }

View File

@ -48,7 +48,7 @@ return [
'sqlite' => [ 'sqlite' => [
'driver' => 'sqlite', 'driver' => 'sqlite',
'database' => storage_path().'/database.sqlite', 'database' => ':memory:',
'prefix' => '', 'prefix' => '',
], ],

View File

@ -56,6 +56,7 @@ $factory->define(App\Models\DateFormat::class, function (Faker\Generator $faker)
$factory->define(App\Models\DateTimeFormat::class, function (Faker\Generator $faker) { $factory->define(App\Models\DateTimeFormat::class, function (Faker\Generator $faker) {
return [ return [
'format' => "Y-m-d H:i:s", 'format' => "Y-m-d H:i:s",
'picker_format' => "Y-m-d H:i:s",
'label' => "utc", 'label' => "utc",
]; ];
}); });
@ -132,6 +133,7 @@ $factory->define(App\Models\Organiser::class, function (Faker\Generator $faker)
'twitter' => 'https://twitter.com/organizer-profile', 'twitter' => 'https://twitter.com/organizer-profile',
'logo_path' => 'path/to/logo', 'logo_path' => 'path/to/logo',
'is_email_confirmed' => 0, 'is_email_confirmed' => 0,
'confirmation_key' => str_random(15),
]; ];
}); });

View File

@ -15,7 +15,7 @@ class AttendeeRefFix extends Migration
public function up() public function up()
{ {
Schema::table('attendees', function (Blueprint $table) { Schema::table('attendees', function (Blueprint $table) {
$table->integer('reference_index'); $table->integer('reference_index')->default(0);
}); });
$attendees = Attendee::all(); $attendees = Attendee::all();
@ -28,9 +28,6 @@ class AttendeeRefFix extends Migration
Schema::table('attendees', function (Blueprint $table) { Schema::table('attendees', function (Blueprint $table) {
$table->dropColumn('reference'); $table->dropColumn('reference');
}); });
} }
/** /**
@ -54,8 +51,6 @@ class AttendeeRefFix extends Migration
$attendee->reference = $order->order_reference. '-' . ++$attendee_count; $attendee->reference = $order->order_reference. '-' . ++$attendee_count;
$attendee->save(); $attendee->save();
} }
}
}
} }
} }

View File

@ -38,7 +38,7 @@
<div class="form-group"> <div class="form-group">
{!! Form::label('start_sale_date', 'Start Sale On', ['class'=>' control-label']) !!} {!! Form::label('start_sale_date', 'Start Sale On', ['class'=>' control-label']) !!}
{!! Form::text('start_sale_date', $ticket->getFormatedDate('start_sale_date'), {!! Form::text('start_sale_date', $ticket->getFormattedDate('start_sale_date'),
[ [
'class' => 'form-control start hasDatepicker', 'class' => 'form-control start hasDatepicker',
'data-field' => 'datetime', 'data-field' => 'datetime',
@ -55,7 +55,7 @@
[ [
'class'=>' control-label ' 'class'=>' control-label '
]) !!} ]) !!}
{!! Form::text('end_sale_date', $ticket->getFormatedDate('end_sale_date'), {!! Form::text('end_sale_date', $ticket->getFormattedDate('end_sale_date'),
[ [
'class' => 'form-control end hasDatepicker', 'class' => 'form-control end hasDatepicker',
'data-field' => 'datetime', 'data-field' => 'datetime',

View File

@ -115,7 +115,7 @@
<div class="col-sm-6"> <div class="col-sm-6">
<div class="form-group"> <div class="form-group">
{!! Form::label('start_date', 'Event Start Date', array('class'=>'required control-label')) !!} {!! Form::label('start_date', 'Event Start Date', array('class'=>'required control-label')) !!}
{!! Form::text('start_date', $event->getFormatedDate('start_date'), {!! Form::text('start_date', $event->getFormattedDate('start_date'),
[ [
'class'=>'form-control start hasDatepicker ', 'class'=>'form-control start hasDatepicker ',
'data-field'=>'datetime', 'data-field'=>'datetime',
@ -133,7 +133,7 @@
[ [
'class'=>'required control-label ' 'class'=>'required control-label '
]) !!} ]) !!}
{!! Form::text('end_date', $event->getFormatedDate('end_date'), {!! Form::text('end_date', $event->getFormattedDate('end_date'),
[ [
'class'=>'form-control end hasDatepicker ', 'class'=>'form-control end hasDatepicker ',
'data-field'=>'datetime', 'data-field'=>'datetime',

View File

@ -3,16 +3,74 @@
use Illuminate\Foundation\Testing\WithoutMiddleware; use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Foundation\Testing\DatabaseTransactions;
use App\Models\Organiser; use App\Models\Event;
class EventTest extends TestCase class EventTest extends TestCase
{ {
public function test_event_is_created_successfully()
public function testCreateEvent()
{ {
$this->actingAs($this->test_user);
$organiser = factory(App\Models\Organiser::class)->create(['account_id' => 1]);
$server = array('HTTP_X-Requested-With' => 'XMLHttpRequest');
$post = array(
'organiser_id' => $organiser->id,
'title' => $this->faker->text,
'description' => $this->faker->paragraph,
'location_venue_name' => $this->faker->company,
'location_address_line_1' => $this->faker->streetAddress,
'location_address_line_2' => '',
'location_state' => $this->faker->city,
'location_post_code' => $this->faker->postcode,
'start_date' => date('d-m-Y H:i', strtotime('+ 30 days')),
'end_date' => date('d-m-Y H:i', strtotime('+ 60 days')),
);
$this->call('post', route('postCreateEvent'), $post, $server);
$this->seeJson([
'status' => 'success',
'id' => 1,
]);
} }
public function test_event_is_not_created_and_validation_error_messages_show()
{
$this->actingAs($this->test_user);
$organiser = factory(App\Models\Organiser::class)->create(['account_id' => 1]);
$server = array('HTTP_X-Requested-With' => 'XMLHttpRequest');
$post = array(
'organiser_id' => $organiser->id,
);
$this->call('post', route('postCreateEvent'), $post, $server);
$this->seeJson([
'status' => 'error',
]);
}
public function test_event_can_be_edited()
{
$organiser = factory(App\Models\Organiser::class)->create(['account_id' => 1]);
$event = factory(App\Models\Event::class)->create([
'account_id' => $organiser->account_id,
'organiser_id' => $organiser->id,
'user_id' => $this->test_user->id,
]);
$this->actingAs($this->test_user)
->visit(route('showEventCustomize', ['event_id' => $event->id]))
->type($this->faker->text, 'title')
->type($this->faker->paragraph, 'description')
->press('Save Changes')
->seeJson([
'status' => 'success',
]);
}
} }

View File

@ -7,10 +7,8 @@ use App\Models\Organiser;
class OrganiserTest extends TestCase class OrganiserTest extends TestCase
{ {
public function testCreateOrganiser() public function testCreateOrganiser()
{ {
$this->actingAs($this->test_user) $this->actingAs($this->test_user)
->visit(route('showCreateOrganiser')) ->visit(route('showCreateOrganiser'))
->type($this->faker->name, 'name') ->type($this->faker->name, 'name')
@ -29,7 +27,7 @@ class OrganiserTest extends TestCase
$organiser = factory(App\Models\Organiser::class)->create(); $organiser = factory(App\Models\Organiser::class)->create();
$this->actingAs($this->test_user) $this->actingAs($this->test_user)
->visit(route('showEditOrganiser', ['organiser_id' => $organiser->id])) ->visit(route('showOrganiserCustomize', ['organiser_id' => $organiser->id]))
->type($this->faker->name, 'name') ->type($this->faker->name, 'name')
->type($this->faker->email, 'email') ->type($this->faker->email, 'email')
->type($this->faker->email, 'about') ->type($this->faker->email, 'about')
@ -39,7 +37,5 @@ class OrganiserTest extends TestCase
->seeJson([ ->seeJson([
'status' => 'success' 'status' => 'success'
]); ]);
} }
} }

View File

@ -87,5 +87,4 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
public function tearDown(){ public function tearDown(){
parent::tearDown(); parent::tearDown();
} }
} }

View File

@ -8,7 +8,7 @@ class UserTest extends TestCase
{ {
/** /**
* A basic test example. * Test sign up page is successful
* *
* @return void * @return void
*/ */