Added Tests and numerous fixes
This commit is contained in:
parent
9878e41397
commit
30362dcc16
|
|
@ -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');
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
]));
|
]));
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ return [
|
||||||
|
|
||||||
'sqlite' => [
|
'sqlite' => [
|
||||||
'driver' => 'sqlite',
|
'driver' => 'sqlite',
|
||||||
'database' => storage_path().'/database.sqlite',
|
'database' => ':memory:',
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -87,5 +87,4 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
|
||||||
public function tearDown(){
|
public function tearDown(){
|
||||||
parent::tearDown();
|
parent::tearDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ class UserTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A basic test example.
|
* Test sign up page is successful
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue