artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $indexViewPath = resource_path("views/{$this->table_name}/index.blade.php"); $this->assertFileExists($indexViewPath); $indexViewContent = "@extends('layouts.app') @section('title', trans('{$this->lang_name}.list')) @section('content')

@can('create', new {$this->full_model_name}) {{ link_to_route('{$this->table_name}.create', trans('{$this->lang_name}.create'), [], ['class' => 'btn btn-success']) }} @endcan
{{ trans('{$this->lang_name}.list') }} {{ trans('app.total') }} : {{ \${$this->collection_model_var_name}->total() }} {{ trans('{$this->lang_name}.{$this->lang_name}') }}

{{ Form::open(['method' => 'get','class' => 'form-inline']) }} {!! FormField::text('q', ['value' => request('q'), 'label' => trans('{$this->lang_name}.search'), 'class' => 'input-sm']) !!} {{ Form::submit(trans('{$this->lang_name}.search'), ['class' => 'btn btn-sm']) }} {{ link_to_route('{$this->table_name}.index', trans('app.reset')) }} {{ Form::close() }}
@foreach(\${$this->collection_model_var_name} as \$key => \${$this->single_model_var_name}) @endforeach
{{ trans('app.table_no') }} {{ trans('{$this->lang_name}.name') }} {{ trans('{$this->lang_name}.description') }} {{ trans('app.action') }}
{{ \${$this->collection_model_var_name}->firstItem() + \$key }} {{ \${$this->single_model_var_name}->nameLink() }} {{ \${$this->single_model_var_name}->description }} @can('view', \${$this->single_model_var_name}) {!! link_to_route( '{$this->table_name}.show', trans('app.show'), [\${$this->single_model_var_name}], ['class' => 'btn btn-default btn-xs', 'id' => 'show-{$this->lang_name}-' . \${$this->single_model_var_name}->id] ) !!} @endcan
{{ \${$this->collection_model_var_name}->appends(Request::except('page'))->render() }}
@endsection "; $this->assertEquals($indexViewContent, file_get_contents($indexViewPath)); } /** @test */ public function it_creates_correct_show_view_content() { $this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $showFormViewPath = resource_path("views/{$this->table_name}/show.blade.php"); $this->assertFileExists($showFormViewPath); $showFormViewContent = "@extends('layouts.app') @section('title', trans('{$this->lang_name}.detail')) @section('content')

{{ trans('{$this->lang_name}.detail') }}

{{ trans('{$this->lang_name}.name') }} {{ \${$this->single_model_var_name}->name }}
{{ trans('{$this->lang_name}.description') }} {{ \${$this->single_model_var_name}->description }}
@can('update', \${$this->single_model_var_name}) {{ link_to_route('{$this->table_name}.edit', trans('{$this->lang_name}.edit'), [\${$this->single_model_var_name}], ['class' => 'btn btn-warning', 'id' => 'edit-{$this->lang_name}-'.\${$this->single_model_var_name}->id]) }} @endcan {{ link_to_route('{$this->table_name}.index', trans('{$this->lang_name}.back_to_index'), [], ['class' => 'btn btn-default']) }}
@endsection "; $this->assertEquals($showFormViewContent, file_get_contents($showFormViewPath)); } /** @test */ public function it_creates_correct_create_view_content() { $this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $createFormViewPath = resource_path("views/{$this->table_name}/create.blade.php"); $this->assertFileExists($createFormViewPath); $createFormViewContent = "@extends('layouts.app') @section('title', trans('{$this->lang_name}.create')) @section('content')

{{ trans('{$this->lang_name}.create') }}

{!! Form::open(['route' => '{$this->table_name}.store']) !!}
{!! FormField::text('name', ['required' => true, 'label' => trans('{$this->lang_name}.name')]) !!} {!! FormField::textarea('description', ['label' => trans('{$this->lang_name}.description')]) !!}
{!! Form::submit(trans('{$this->lang_name}.create'), ['class' => 'btn btn-success']) !!} {{ link_to_route('{$this->table_name}.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }}
{!! Form::close() !!}
@endsection "; $this->assertEquals($createFormViewContent, file_get_contents($createFormViewPath)); } /** @test */ public function it_creates_correct_edit_view_content() { $this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $editFormViewPath = resource_path("views/{$this->table_name}/edit.blade.php"); $this->assertFileExists($editFormViewPath); $editFormViewContent = "@extends('layouts.app') @section('title', trans('{$this->lang_name}.edit')) @section('content')
@if (request('action') == 'delete' && \${$this->single_model_var_name}) @can('delete', \${$this->single_model_var_name})

{{ trans('{$this->lang_name}.delete') }}

{{ \${$this->single_model_var_name}->name }}

{{ \${$this->single_model_var_name}->description }}

{!! \$errors->first('{$this->lang_name}_id', ':message') !!}

{{ trans('app.delete_confirm') }}
{!! FormField::delete( ['route' => ['{$this->table_name}.destroy', \${$this->single_model_var_name}]], trans('app.delete_confirm_button'), ['class'=>'btn btn-danger'], [ '{$this->lang_name}_id' => \${$this->single_model_var_name}->id, 'page' => request('page'), 'q' => request('q'), ] ) !!} {{ link_to_route('{$this->table_name}.edit', trans('app.cancel'), [\${$this->single_model_var_name}], ['class' => 'btn btn-default']) }}
@endcan @else

{{ trans('{$this->lang_name}.edit') }}

{!! Form::model(\${$this->single_model_var_name}, ['route' => ['{$this->table_name}.update', \${$this->single_model_var_name}],'method' => 'patch']) !!}
{!! FormField::text('name', ['required' => true, 'label' => trans('{$this->lang_name}.name')]) !!} {!! FormField::textarea('description', ['label' => trans('{$this->lang_name}.description')]) !!}
{!! Form::submit(trans('{$this->lang_name}.update'), ['class' => 'btn btn-success']) !!} {{ link_to_route('{$this->table_name}.show', trans('app.cancel'), [\${$this->single_model_var_name}], ['class' => 'btn btn-default']) }} @can('delete', \${$this->single_model_var_name}) {{ link_to_route('{$this->table_name}.edit', trans('app.delete'), [\${$this->single_model_var_name}, 'action' => 'delete'], ['class' => 'btn btn-danger pull-right', 'id' => 'del-{$this->lang_name}-'.\${$this->single_model_var_name}->id]) }} @endcan
{!! Form::close() !!}
@endif @endsection "; $this->assertEquals($editFormViewContent, file_get_contents($editFormViewPath)); } /** @test */ public function it_not_gives_warning_message_if_default_layout_view_does_exists() { $defaultLayoutView = config('simple-crud.default_layout_view'); $this->generateDefaultLayoutView($defaultLayoutView); $this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $this->assertNotRegExp("/{$defaultLayoutView} view does not exists./", app(Kernel::class)->output()); } /** @test */ public function it_gives_warning_message_if_default_layout_view_does_not_exists() { $this->artisan('make:crud', ['name' => $this->model_name, '--no-interaction' => true]); $defaultLayoutView = config('simple-crud.default_layout_view'); $this->assertRegExp("/{$defaultLayoutView} view does not exists./", app(Kernel::class)->output()); } public function generateDefaultLayoutView($defaultLayoutView) { $dataViewPathArray = explode('.', $defaultLayoutView); $fileName = array_pop($dataViewPathArray); $defaultLayoutPath = resource_path('views/'.implode('/', $dataViewPathArray)); $files = app('Illuminate\Filesystem\Filesystem'); $files->makeDirectory($defaultLayoutPath); $files->put($defaultLayoutPath.'/'.$fileName.'.blade.php', ''); } }