Skip to content
Permalink
Browse files

Use data provider for register validation tests

  • Loading branch information...
nafiesl committed Jun 6, 2019
1 parent e37a615 commit d59d94fa2754530aa32dac56d88030efe0496ce6
Showing with 28 additions and 83 deletions.
  1. +28 −83 tests/Feature/Auth/RegisterTest.php
@@ -46,60 +46,39 @@ public function user_can_register()
$this->assertTrue(app('hash')->check('secret', User::first()->password));
}
/** @test */
public function user_name_is_required()
{
// Submit form untuk register dengan field 'name' kosong.
$this->post('/register', $this->getRegisterFields(['name' => '']));
// Cek pada session apakah ada error untuk field 'name'.
$this->assertSessionHasErrors(['name']);
}
/** @test */
public function user_name_maximum_is_255_characters()
{
// Submit form untuk register dengan field 'name' 260 karakter.
$this->post('/register', $this->getRegisterFields([
'name' => str_repeat('John Thor ', 26),
]));
// Cek pada session apakah ada error untuk field 'name'.
$this->assertSessionHasErrors(['name']);
}
/** @test */
public function user_email_is_required()
{
// Submit form untuk register dengan field 'email' kosong.
$this->post('/register', $this->getRegisterFields(['email' => '']));
// Cek pada session apakah ada error untuk field 'email'.
$this->assertSessionHasErrors(['email']);
}
/** @test */
public function user_email_must_be_a_valid_email()
/**
* @test
* @dataProvider registrationDataProvider
*/
public function validate_user_register_form($errorField, $formFields)
{
// Submit form untuk register dengan field 'email' tidak valid.
$this->post('/register', $this->getRegisterFields([
'email' => 'username.example.net',
]));
$this->post('/register', $this->getRegisterFields($formFields));
// Cek pada session apakah ada error untuk field 'email'.
$this->assertSessionHasErrors(['email']);
$this->assertSessionHasErrors([$errorField]);
}
/** @test */
public function user_email_maximum_is_255_characters()
public function registrationDataProvider()
{
// Submit form untuk register dengan field 'email' 260 karakter.
$this->post('/register', $this->getRegisterFields([
'email' => str_repeat('username@example.net', 13),
]));
// Cek pada session apakah ada error untuk field 'email'.
$this->assertSessionHasErrors(['email']);
// Return array dari [kondisi] and [hasil yang diharapkan].
return [
// error pada field name, jika name kosong
['name', ['name' => '']],
// error pada field name, jika name panjang 260 karakter
['name', ['name' => str_repeat('John Thor ', 26)]],
// error pada field email, jika email kosong
['email', ['email' => '']],
// error pada field email, jika mengisi email yang tidak valid
['email', ['email' => 'username.example.net']],
// error pada field email, jika mengisi email yang terlalu panjang
['email', ['email' => str_repeat('username@example.net', 13)]],
// error pada field password, jika password kosong
['password', ['password' => '']],
// error pada field password, jika password kurang dari 6 karakter
['password', ['password' => 'ecret']],
// error pada field password, jika konfirmasi password tidak sama
['password', ['password' => 'secret', 'password_confirmation' => 'escret']],
];
}
/** @test */
@@ -117,38 +96,4 @@ public function user_email_must_be_unique_on_users_table()
// Cek pada session apakah ada error untuk field 'email'.
$this->assertSessionHasErrors(['email']);
}
/** @test */
public function user_password_is_required()
{
// Submit form untuk register dengan field 'password' kosong.
$this->post('/register', $this->getRegisterFields(['password' => '']));
// Cek pada session apakah ada error untuk field 'password'.
$this->assertSessionHasErrors(['password']);
}
/** @test */
public function user_password_minimum_is_6_characters()
{
// Submit form untuk register dengan field 'password' 5 karakter.
$this->post('/register', $this->getRegisterFields(['password' => 'ecret']));
// Cek pada session apakah ada error untuk field 'password'.
$this->assertSessionHasErrors(['password']);
}
/** @test */
public function user_password_must_be_same_with_password_confirmation_field()
{
// Submit form untuk register dengan field 'password'
// beda dengan 'password_confirmation'.
$this->post('/register', $this->getRegisterFields([
'password' => 'secret',
'password_confirmation' => 'escret',
]));
// Cek pada session apakah ada error untuk field 'password'.
$this->assertSessionHasErrors(['password']);
}
}

0 comments on commit d59d94f

Please sign in to comment.
You can’t perform that action at this time.