Browse Source

Add create form validation test

tags/1.0.3
Nafies Luthfi 8 years ago
parent
commit
ea21376dac
  1. 46
      src/stubs/test-feature-full.stub
  2. 92
      tests/Generators/FeatureTestGeneratorTest.php

46
src/stubs/test-feature-full.stub

@ -13,13 +13,19 @@ class ManageMastersTest extends TestCase
/** @test */
public function user_can_see_master_list_in_master_index_page()
{
$singleMstr1 = factory(Master::class)->create(['name' => 'Testing name', 'description' => 'Testing 123']);
$singleMstr2 = factory(Master::class)->create(['name' => 'Testing name', 'description' => 'Testing 456']);
$singleMstr = factory(Master::class)->create();
$this->loginAsUser();
$this->visit(route('masters.index'));
$this->see($singleMstr1->name);
$this->see($singleMstr2->name);
$this->see($singleMstr->name);
}
private function getCreateFields(array $overrides = [])
{
return array_merge([
'name' => 'Master 1 name',
'description' => 'Master 1 description',
], $overrides);
}
/** @test */
@ -31,17 +37,33 @@ class ManageMastersTest extends TestCase
$this->click(trans('master.create'));
$this->seePageIs(route('masters.create'));
$this->submitForm(trans('master.create'), [
'name' => 'Master 1 name',
'description' => 'Master 1 description',
]);
$this->submitForm(trans('master.create'), $this->getCreateFields());
$this->seePageIs(route('masters.show', Master::first()));
$this->seeInDatabase('masters', [
'name' => 'Master 1 name',
'description' => 'Master 1 description',
]);
$this->seeInDatabase('masters', $this->getCreateFields());
}
/** @test */
public function create_master_action_must_pass_validations()
{
$this->loginAsUser();
// Name empty
$this->post(route('masters.store'), $this->getCreateFields(['name' => '']));
$this->assertSessionHasErrors('name');
// Name 70 characters
$this->post(route('masters.store'), $this->getCreateFields([
'name' => str_repeat('Test Title', 7),
]));
$this->assertSessionHasErrors('name');
// Description 256 characters
$this->post(route('masters.store'), $this->getCreateFields([
'description' => str_repeat('Long description', 16),
]));
$this->assertSessionHasErrors('description');
}
/** @test */

92
tests/Generators/FeatureTestGeneratorTest.php

@ -64,13 +64,19 @@ class Manage{$this->plural_model_name}Test extends TestCase
/** @test */
public function user_can_see_{$this->lang_name}_list_in_{$this->lang_name}_index_page()
{
\${$this->single_model_var_name}1 = factory({$this->model_name}::class)->create(['name' => 'Testing name', 'description' => 'Testing 123']);
\${$this->single_model_var_name}2 = factory({$this->model_name}::class)->create(['name' => 'Testing name', 'description' => 'Testing 456']);
\${$this->single_model_var_name} = factory({$this->model_name}::class)->create();
\$this->loginAsUser();
\$this->visit(route('{$this->table_name}.index'));
\$this->see(\${$this->single_model_var_name}1->name);
\$this->see(\${$this->single_model_var_name}2->name);
\$this->see(\${$this->single_model_var_name}->name);
}
private function getCreateFields(array \$overrides = [])
{
return array_merge([
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
], \$overrides);
}
/** @test */
@ -82,17 +88,33 @@ class Manage{$this->plural_model_name}Test extends TestCase
\$this->click(trans('{$this->lang_name}.create'));
\$this->seePageIs(route('{$this->table_name}.create'));
\$this->submitForm(trans('{$this->lang_name}.create'), [
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
]);
\$this->submitForm(trans('{$this->lang_name}.create'), \$this->getCreateFields());
\$this->seePageIs(route('{$this->table_name}.show', {$this->model_name}::first()));
\$this->seeInDatabase('{$this->table_name}', [
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
]);
\$this->seeInDatabase('{$this->table_name}', \$this->getCreateFields());
}
/** @test */
public function create_{$this->lang_name}_action_must_pass_validations()
{
\$this->loginAsUser();
// Name empty
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields(['name' => '']));
\$this->assertSessionHasErrors('name');
// Name 70 characters
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields([
'name' => str_repeat('Test Title', 7),
]));
\$this->assertSessionHasErrors('name');
// Description 256 characters
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields([
'description' => str_repeat('Long description', 16),
]));
\$this->assertSessionHasErrors('description');
}
/** @test */
@ -207,13 +229,19 @@ class Manage{$this->plural_model_name}Test extends TestCase
/** @test */
public function user_can_see_{$this->lang_name}_list_in_{$this->lang_name}_index_page()
{
\${$this->single_model_var_name}1 = factory({$this->model_name}::class)->create(['name' => 'Testing name', 'description' => 'Testing 123']);
\${$this->single_model_var_name}2 = factory({$this->model_name}::class)->create(['name' => 'Testing name', 'description' => 'Testing 456']);
\${$this->single_model_var_name} = factory({$this->model_name}::class)->create();
\$this->loginAsUser();
\$this->visit(route('{$this->table_name}.index'));
\$this->see(\${$this->single_model_var_name}1->name);
\$this->see(\${$this->single_model_var_name}2->name);
\$this->see(\${$this->single_model_var_name}->name);
}
private function getCreateFields(array \$overrides = [])
{
return array_merge([
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
], \$overrides);
}
/** @test */
@ -225,17 +253,33 @@ class Manage{$this->plural_model_name}Test extends TestCase
\$this->click(trans('{$this->lang_name}.create'));
\$this->seePageIs(route('{$this->table_name}.create'));
\$this->submitForm(trans('{$this->lang_name}.create'), [
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
]);
\$this->submitForm(trans('{$this->lang_name}.create'), \$this->getCreateFields());
\$this->seePageIs(route('{$this->table_name}.show', {$this->model_name}::first()));
\$this->seeInDatabase('{$this->table_name}', [
'name' => '{$this->model_name} 1 name',
'description' => '{$this->model_name} 1 description',
]);
\$this->seeInDatabase('{$this->table_name}', \$this->getCreateFields());
}
/** @test */
public function create_{$this->lang_name}_action_must_pass_validations()
{
\$this->loginAsUser();
// Name empty
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields(['name' => '']));
\$this->assertSessionHasErrors('name');
// Name 70 characters
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields([
'name' => str_repeat('Test Title', 7),
]));
\$this->assertSessionHasErrors('name');
// Description 256 characters
\$this->post(route('{$this->table_name}.store'), \$this->getCreateFields([
'description' => str_repeat('Long description', 16),
]));
\$this->assertSessionHasErrors('description');
}
/** @test */

Loading…
Cancel
Save