artisan('make:crud-simple', ['name' => $this->model_name, '--formfield' => true]); $this->assertStringNotContainsString("{$this->model_name} model already exists.", app(Kernel::class)->output()); $this->assertFileExists(app_path('Models/'.$this->model_name.'.php')); $this->assertFileExists(app_path("Http/Controllers/{$this->model_name}Controller.php")); $migrationFilePath = database_path('migrations/'.date('Y_m_d_His').'_create_'.$this->table_name.'_table.php'); $this->assertFileExists($migrationFilePath); $this->assertFileExists(resource_path("views/{$this->table_name}/index.blade.php")); $this->assertFileExists(resource_path("views/{$this->table_name}/forms.blade.php")); $localeConfig = config('app.locale'); $this->assertFileExists(resource_path("lang/{$localeConfig}/{$this->lang_name}.php")); $this->assertFileExists(base_path("routes/web.php")); $this->assertFileExists(app_path("Policies/{$this->model_name}Policy.php")); $this->assertFileExists(database_path("factories/{$this->model_name}Factory.php")); $this->assertFileExists(base_path("tests/Unit/Models/{$this->model_name}Test.php")); $this->assertFileExists(base_path("tests/Feature/Manage{$this->model_name}Test.php")); } /** @test */ public function it_creates_correct_index_view_content_with_formfield() { $this->artisan('make:crud-simple', ['name' => $this->model_name, '--formfield' => true]); $indexViewPath = resource_path("views/{$this->table_name}/index.blade.php"); $this->assertFileExists($indexViewPath); $indexViewContent = "@extends('layouts.app') @section('title', __('{$this->lang_name}.list')) @section('content')
@can('create', new {$this->full_model_name}) {{ link_to_route('{$this->table_name}.index', __('{$this->lang_name}.create'), ['action' => 'create'], ['class' => 'btn btn-success']) }} @endcan

{{ __('{$this->lang_name}.list') }} {{ __('app.total') }} : {{ \${$this->collection_model_var_name}->total() }} {{ __('{$this->lang_name}.{$this->lang_name}') }}

{{ Form::open(['method' => 'get', 'class' => 'form-inline']) }} {!! FormField::text('q', ['label' => __('{$this->lang_name}.search'), 'placeholder' => __('{$this->lang_name}.search_text'), 'class' => 'mx-sm-2']) !!} {{ Form::submit(__('{$this->lang_name}.search'), ['class' => 'btn btn-secondary']) }} {{ link_to_route('{$this->table_name}.index', __('app.reset'), [], ['class' => 'btn btn-link']) }} {{ Form::close() }}
@foreach(\${$this->collection_model_var_name} as \$key => \${$this->single_model_var_name}) @endforeach
{{ __('app.table_no') }} {{ __('{$this->lang_name}.title') }} {{ __('{$this->lang_name}.description') }} {{ __('app.action') }}
{{ \${$this->collection_model_var_name}->firstItem() + \$key }} {{ \${$this->single_model_var_name}->title }} {{ \${$this->single_model_var_name}->description }} @can('update', \${$this->single_model_var_name}) {{ link_to_route( '{$this->table_name}.index', __('app.edit'), ['action' => 'edit', 'id' => \${$this->single_model_var_name}->id] + Request::only('page', 'q'), ['id' => 'edit-{$this->lang_name}-'.\${$this->single_model_var_name}->id] ) }} @endcan
{{ \${$this->collection_model_var_name}->appends(Request::except('page'))->render() }}
@if(Request::has('action')) @include('{$this->table_name}.forms') @endif
@endsection "; $this->assertEquals($indexViewContent, file_get_contents($indexViewPath)); } /** @test */ public function it_creates_correct_forms_view_content_with_formfield() { $this->artisan('make:crud-simple', ['name' => $this->model_name, '--formfield' => true]); $formViewPath = resource_path("views/{$this->table_name}/forms.blade.php"); $this->assertFileExists($formViewPath); $formViewContent = "@if (Request::get('action') == 'create') @can('create', new {$this->full_model_name}) {{ Form::open(['route' => '{$this->table_name}.store']) }} {!! FormField::text('title', ['required' => true, 'label' => __('{$this->lang_name}.title')]) !!} {!! FormField::textarea('description', ['label' => __('{$this->lang_name}.description')]) !!} {{ Form::submit(__('app.create'), ['class' => 'btn btn-success']) }} {{ link_to_route('{$this->table_name}.index', __('app.cancel'), [], ['class' => 'btn btn-link']) }} {{ Form::close() }} @endcan @endif @if (Request::get('action') == 'edit' && \$editable{$this->model_name}) @can('update', \$editable{$this->model_name}) {{ Form::model(\$editable{$this->model_name}, ['route' => ['{$this->table_name}.update', \$editable{$this->model_name}], 'method' => 'patch']) }} {!! FormField::text('title', ['required' => true, 'label' => __('{$this->lang_name}.title')]) !!} {!! FormField::textarea('description', ['label' => __('{$this->lang_name}.description')]) !!} @if (request('q')) {{ Form::hidden('q', request('q')) }} @endif @if (request('page')) {{ Form::hidden('page', request('page')) }} @endif {{ Form::submit(__('{$this->lang_name}.update'), ['class' => 'btn btn-success']) }} {{ link_to_route('{$this->table_name}.index', __('app.cancel'), Request::only('page', 'q'), ['class' => 'btn btn-link']) }} @can('delete', \$editable{$this->model_name}) {{ link_to_route( '{$this->table_name}.index', __('app.delete'), ['action' => 'delete', 'id' => \$editable{$this->model_name}->id] + Request::only('page', 'q'), ['id' => 'del-{$this->lang_name}-'.\$editable{$this->model_name}->id, 'class' => 'btn btn-danger float-right'] ) }} @endcan {{ Form::close() }} @endcan @endif @if (Request::get('action') == 'delete' && \$editable{$this->model_name}) @can('delete', \$editable{$this->model_name})
{{ __('{$this->lang_name}.delete') }}

{{ \$editable{$this->model_name}->title }}

{{ \$editable{$this->model_name}->description }}

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

{{ __('{$this->lang_name}.delete_confirm') }}
{!! FormField::delete( ['route' => ['{$this->table_name}.destroy', \$editable{$this->model_name}]], __('app.delete_confirm_button'), ['class' => 'btn btn-danger'], [ '{$this->lang_name}_id' => \$editable{$this->model_name}->id, 'page' => request('page'), 'q' => request('q'), ] ) !!} {{ link_to_route('{$this->table_name}.index', __('app.cancel'), Request::only('page', 'q'), ['class' => 'btn btn-link']) }}
@endcan @endif "; $this->assertEquals($formViewContent, file_get_contents($formViewPath)); } }