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 Image;
use Validator;
use Log;
class EventController extends MyBaseController
{
@ -43,8 +43,8 @@ class EventController extends MyBaseController
if (!$event->validate($request->all())) {
return response()->json([
'status' => 'error',
'messages' => $event->errors(),
'status' => 'error',
'messages' => $event->errors(),
]);
}
@ -101,7 +101,7 @@ class EventController extends MyBaseController
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return Response::json([
return response()->json([
'status' => 'error',
'messages' => $validator->messages()->toArray(),
]);
@ -118,13 +118,22 @@ class EventController extends MyBaseController
} elseif ($request->get('organiser_id')) {
$event->organiser_id = $request->get('organiser_id');
} else { /* Somethings gone horribly wrong */
return Response::json([
return response()->json([
'status' => 'error',
'messages' => 'There was an issue finding the organiser.',
]);
}
$event->save();
try {
$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')) {
$path = public_path().'/'.config('attendize.event_images_path');

View File

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

View File

@ -6,6 +6,7 @@ use App\Models\Organiser;
use Closure;
use Redirect;
use Request;
use DB;
class FirstRunMiddleware
{
@ -19,12 +20,13 @@ class FirstRunMiddleware
*/
public function handle($request, Closure $next)
{
DB::enableQueryLog();
/*
* If there are no organisers then redirect the user to create one
* 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')) {
dd(DB::getQueryLog());
return redirect(route('showCreateOrganiser', [
'first_run' => '1',
]));

View File

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

View File

@ -120,7 +120,7 @@ class MyBaseModel extends \Illuminate\Database\Eloquent\Model
*
* @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));
}

View File

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

View File

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

View File

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

View File

@ -38,7 +38,7 @@
<div class="form-group">
{!! 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',
'data-field' => 'datetime',
@ -55,7 +55,7 @@
[
'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',
'data-field' => 'datetime',

View File

@ -115,7 +115,7 @@
<div class="col-sm-6">
<div class="form-group">
{!! 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 ',
'data-field'=>'datetime',
@ -133,7 +133,7 @@
[
'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 ',
'data-field'=>'datetime',

View File

@ -3,16 +3,74 @@
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use App\Models\Organiser;
use App\Models\Event;
class EventTest extends TestCase
{
public function testCreateEvent()
public function test_event_is_created_successfully()
{
$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
{
public function testCreateOrganiser()
{
$this->actingAs($this->test_user)
->visit(route('showCreateOrganiser'))
->type($this->faker->name, 'name')
@ -23,13 +21,13 @@ class OrganiserTest extends TestCase
'status' => 'success'
]);
}
public function testEditOrganiser()
public function testEditOrganiser()
{
$organiser = factory(App\Models\Organiser::class)->create();
$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->email, 'email')
->type($this->faker->email, 'about')
@ -39,7 +37,5 @@ class OrganiserTest extends TestCase
->seeJson([
'status' => 'success'
]);
}
}

View File

@ -28,14 +28,14 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
/**
* Our test user
*
*
* @var
*/
protected $test_user;
/**
* Our faker instance
*
*
* @var
*/
protected $faker;
@ -87,5 +87,4 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
public function 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
*/
@ -24,7 +24,7 @@ class UserTest extends TestCase
->press('Sign Up')
->seePageIs(route('login'));
}
public function testLogin()
{
$this->visit(route('login'))