From b041a0387808bb90ffa56308c70665e1c8d01efd Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Sun, 21 Aug 2016 12:29:55 +0200 Subject: [PATCH 1/3] Use precomputed hash instead of bcrypt in ModelFactory --- database/factories/ModelFactory.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index f596d0b5..4f06a963 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -15,7 +15,12 @@ return [ 'name' => $faker->name, 'email' => $faker->safeEmail, - 'password' => bcrypt(str_random(10)), + + // Use a precomputed hash of the word "secret" instead of using bcrypt directly. + // Since bcrypt is intentionally slow, it can really slow down test suites in + // large applications that use factories to generate models in many tests. + 'password' => '$2y$10$oPCcCpaPQ69KQ1fdrAIL0eptYCcG/s/NmQZizJfVdB.QOXUn5mGE6', + 'remember_token' => str_random(10), ]; }); From 792dcd48c8ad9887f08db6ad9efd0890603ddd53 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Sun, 21 Aug 2016 14:23:50 +0200 Subject: [PATCH 2/3] Compute hash only once and store in static variable --- database/factories/ModelFactory.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index 4f06a963..a711af51 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -12,15 +12,12 @@ */ $factory->define(App\User::class, function (Faker\Generator $faker) { + static $password = null; + return [ 'name' => $faker->name, 'email' => $faker->safeEmail, - - // Use a precomputed hash of the word "secret" instead of using bcrypt directly. - // Since bcrypt is intentionally slow, it can really slow down test suites in - // large applications that use factories to generate models in many tests. - 'password' => '$2y$10$oPCcCpaPQ69KQ1fdrAIL0eptYCcG/s/NmQZizJfVdB.QOXUn5mGE6', - + 'password' => $password ?: $password = bcrypt('secret'), 'remember_token' => str_random(10), ]; }); From 3435710575ad1aa9a302cbd3ac7b7a93946bb8c0 Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Sun, 21 Aug 2016 14:29:10 +0200 Subject: [PATCH 3/3] Use implicit null instead of explicit --- database/factories/ModelFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index a711af51..59951643 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -12,7 +12,7 @@ */ $factory->define(App\User::class, function (Faker\Generator $faker) { - static $password = null; + static $password; return [ 'name' => $faker->name,