Fix test to run with new bootstrapping

This commit is contained in:
Dane Everitt 2018-03-04 22:42:33 -06:00
parent e8ea218f20
commit ac9f83a8fe
No known key found for this signature in database
GPG Key ID: EEA66103B3D71F53
3 changed files with 10 additions and 38 deletions

View File

@ -9,19 +9,14 @@
namespace Pterodactyl\Services\Helpers;
use Ramsey\Uuid\Uuid;
use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Database\ConnectionInterface;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
class TemporaryPasswordService
{
const HMAC_ALGO = 'sha256';
/**
* @var \Illuminate\Contracts\Config\Repository
*/
protected $config;
/**
* @var \Illuminate\Database\ConnectionInterface
*/
@ -35,16 +30,11 @@ class TemporaryPasswordService
/**
* TemporaryPasswordService constructor.
*
* @param \Illuminate\Contracts\Config\Repository $config
* @param \Illuminate\Database\ConnectionInterface $connection
* @param \Illuminate\Contracts\Hashing\Hasher $hasher
*/
public function __construct(
ConfigRepository $config,
ConnectionInterface $connection,
Hasher $hasher
) {
$this->config = $config;
public function __construct(ConnectionInterface $connection, Hasher $hasher)
{
$this->connection = $connection;
$this->hasher = $hasher;
}
@ -57,7 +47,7 @@ class TemporaryPasswordService
*/
public function handle($email)
{
$token = hash_hmac(self::HMAC_ALGO, str_random(40), $this->config->get('app.key'));
$token = hash_hmac(self::HMAC_ALGO, Uuid::uuid4()->toString(), config('app.key'));
$this->connection->table('password_resets')->insert([
'email' => $email,

View File

@ -10,8 +10,8 @@
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
<testsuite name="Integration">
<directory suffix="Test.php">./tests/Integration</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>

View File

@ -1,30 +1,17 @@
<?php
/*
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Tests\Unit\Services\Helpers;
use Mockery as m;
use Tests\TestCase;
use phpmock\phpunit\PHPMock;
use Tests\Traits\MocksUuids;
use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Contracts\Config\Repository;
use Illuminate\Database\ConnectionInterface;
use Pterodactyl\Services\Helpers\TemporaryPasswordService;
class TemporaryPasswordServiceTest extends TestCase
{
use PHPMock;
/**
* @var \Illuminate\Contracts\Config\Repository|\Mockery\Mock
*/
protected $config;
use MocksUuids;
/**
* @var \Illuminate\Database\ConnectionInterface|\Mockery\Mock
@ -48,11 +35,10 @@ class TemporaryPasswordServiceTest extends TestCase
{
parent::setUp();
$this->config = m::mock(Repository::class);
$this->connection = m::mock(ConnectionInterface::class);
$this->hasher = m::mock(Hasher::class);
$this->service = new TemporaryPasswordService($this->config, $this->connection, $this->hasher);
$this->service = new TemporaryPasswordService($this->connection, $this->hasher);
}
/**
@ -60,11 +46,7 @@ class TemporaryPasswordServiceTest extends TestCase
*/
public function testTemporaryPasswordIsStored()
{
$this->getFunctionMock('\\Pterodactyl\\Services\\Helpers', 'str_random')
->expects($this->once())->with(40)->willReturn('random_string');
$this->config->shouldReceive('get')->with('app.key')->once()->andReturn('123456');
$token = hash_hmac(TemporaryPasswordService::HMAC_ALGO, 'random_string', '123456');
$token = hash_hmac(TemporaryPasswordService::HMAC_ALGO, $this->getKnownUuid(), config('app.key'));
$this->hasher->shouldReceive('make')->with($token)->once()->andReturn('hashed_token');
$this->connection->shouldReceive('table')->with('password_resets')->once()->andReturnSelf();