From c05b4a4fe7a645dbd3dc53d831aa3bd14f85e81d Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Mon, 28 Aug 2017 20:18:03 +0800 Subject: [PATCH] Added view generator test --- src/stubs/view-forms.stub | 2 +- src/stubs/view-index.stub | 2 +- tests/Generators/ViewsGeneratorTest.php | 103 ++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 tests/Generators/ViewsGeneratorTest.php diff --git a/src/stubs/view-forms.stub b/src/stubs/view-forms.stub index 6e03d78..865535e 100644 --- a/src/stubs/view-forms.stub +++ b/src/stubs/view-forms.stub @@ -30,4 +30,4 @@ {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} -@endif \ No newline at end of file +@endif diff --git a/src/stubs/view-index.stub b/src/stubs/view-index.stub index 703296b..6148dcd 100644 --- a/src/stubs/view-index.stub +++ b/src/stubs/view-index.stub @@ -37,4 +37,4 @@ @includeWhen(Request::has('action'), 'masters.forms') -@endsection \ No newline at end of file +@endsection diff --git a/tests/Generators/ViewsGeneratorTest.php b/tests/Generators/ViewsGeneratorTest.php new file mode 100644 index 0000000..d3565b6 --- /dev/null +++ b/tests/Generators/ViewsGeneratorTest.php @@ -0,0 +1,103 @@ +artisan('make:crud', ['name' => $this->modelName, '--no-interaction' => true]); + + $indexViewPath = resource_path("views/{$this->tableName}/index.blade.php"); + $this->assertFileExists($indexViewPath); + $indexViewContent = "@extends('layouts.app') + +@section('title', trans('master.list')) + +@section('content') +{{ link_to_route('masters.index', trans('master.create'), ['action' => 'create'], ['class' => 'btn btn-success pull-right']) }} +

{{ trans('master.list') }}

+
+
+
+ + + + + + + + + + + @foreach(\$masters as \$key => \$master) + + + + + + + @endforeach + +
{{ trans('app.table_no') }}{{ trans('master.name') }}{{ trans('master.description') }}{{ trans('app.action') }}
{{ 1 + \$key }}{{ \$master->name }}{{ \$master->description }} + {!! link_to_route('masters.index', trans('app.edit'), ['action' => 'edit', 'id' => \$master->id], ['id' => 'edit-master-' . \$master->id]) !!} | + {!! link_to_route('masters.index', trans('app.delete'), ['action' => 'delete', 'id' => \$master->id], ['id' => 'del-master-' . \$master->id]) !!} +
+
+
+
+ @includeWhen(Request::has('action'), 'masters.forms') +
+
+@endsection +"; + $this->assertEquals($indexViewContent, file_get_contents($indexViewPath)); + } + + /** @test */ + public function it_creates_correct_forms_view_content() + { + $this->artisan('make:crud', ['name' => $this->modelName, '--no-interaction' => true]); + + $formViewPath = resource_path("views/{$this->tableName}/forms.blade.php"); + $this->assertFileExists($formViewPath); + $formViewContent = "@if (Request::get('action') == 'create') + {!! Form::open(['route' => 'masters.store']) !!} + {!! FormField::text('name') !!} + {!! FormField::textarea('description') !!} + {!! Form::submit(trans('master.create'), ['class' => 'btn btn-success']) !!} + {!! Form::hidden('cat', 'master') !!} + {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} + {!! Form::close() !!} +@endif +@if (Request::get('action') == 'edit' && \$editableMaster) + {!! Form::model(\$editableMaster, ['route' => ['masters.update', \$editableMaster->id],'method' => 'patch']) !!} + {!! FormField::text('name') !!} + {!! FormField::textarea('description') !!} + {!! Form::submit(trans('master.update'), ['class' => 'btn btn-success']) !!} + {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} + {!! Form::close() !!} +@endif +@if (Request::get('action') == 'delete' && \$editableMaster) +
+

{{ trans('master.delete') }}

+
+ +

{{ \$editableMaster->name }}

+ {!! \$errors->first('master_id', ':message') !!} +
+
+
{{ trans('app.delete_confirm') }}
+
+ {!! FormField::delete(['route'=>['masters.destroy',\$editableMaster->id]], trans('app.delete_confirm_button'), ['class'=>'btn btn-danger'], ['master_id' => \$editableMaster->id]) !!} + {{ link_to_route('masters.index', trans('app.cancel'), [], ['class' => 'btn btn-default']) }} +
+
+@endif +"; + $this->assertEquals($formViewContent, file_get_contents($formViewPath)); + } +}