Add more location tests, more travis CI fix attempts
This commit is contained in:
parent
579cc86910
commit
a527949939
5 changed files with 77 additions and 14 deletions
|
@ -1,10 +1,11 @@
|
||||||
APP_ENV=testing
|
APP_ENV=testing
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_KEY=SomeRandomString32SomeRandomString32
|
APP_KEY=aaaaabbbbbcccccdddddeeeeefffff12
|
||||||
|
|
||||||
DB_CONNECTION=tests
|
TEST_DB_CONNECTION=tests
|
||||||
DB_TEST_USERNAME=root
|
TEST_DB_TEST_USERNAME=root
|
||||||
DB_TEST_PASSWORD=
|
TEST_DB_TEST_PASSWORD=
|
||||||
|
TEST_DB_HOST=127.0.0.1
|
||||||
|
|
||||||
CACHE_DRIVER=array
|
CACHE_DRIVER=array
|
||||||
SESSION_DRIVER=array
|
SESSION_DRIVER=array
|
||||||
|
|
|
@ -3,8 +3,7 @@ dist: trusty
|
||||||
php:
|
php:
|
||||||
- '7.0'
|
- '7.0'
|
||||||
- '7.1'
|
- '7.1'
|
||||||
- nightly
|
sudo: false
|
||||||
sudo: required
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.composer/cache
|
- $HOME/.composer/cache
|
||||||
|
@ -15,9 +14,9 @@ before_install:
|
||||||
before_script:
|
before_script:
|
||||||
- phpenv config-rm xdebug.ini
|
- phpenv config-rm xdebug.ini
|
||||||
- cp .env.travis .env
|
- cp .env.travis .env
|
||||||
- composer install --no-interaction --no-scripts --prefer-dist --no-suggest
|
- composer install --no-interaction --prefer-dist --no-suggest --verbose
|
||||||
- php artisan migrate --force -v
|
- php artisan migrate -v
|
||||||
- php artisan db:seed --force -v
|
- php artisan db:seed -v
|
||||||
script:
|
script:
|
||||||
- vendor/bin/phpunit --coverage-clover=coverage.xml
|
- vendor/bin/phpunit --coverage-clover=coverage.xml
|
||||||
notifications:
|
notifications:
|
||||||
|
|
|
@ -47,11 +47,11 @@ return [
|
||||||
|
|
||||||
'tests' => [
|
'tests' => [
|
||||||
'driver' => 'mysql',
|
'driver' => 'mysql',
|
||||||
'host' => env('DB_HOST', 'localhost'),
|
'host' => env('TEST_DB_HOST', 'localhost'),
|
||||||
'port' => env('DB_PORT', '3306'),
|
'port' => env('TEST_DB_PORT', '3306'),
|
||||||
'database' => env('DB_DATABASE', 'travis'),
|
'database' => env('TEST_DB_DATABASE', 'travis'),
|
||||||
'username' => env('DB_USERNAME', 'root'),
|
'username' => env('TEST_DB_USERNAME', 'root'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('TEST_DB_PASSWORD', ''),
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8',
|
||||||
'collation' => 'utf8_unicode_ci',
|
'collation' => 'utf8_unicode_ci',
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
|
|
|
@ -38,3 +38,22 @@ $factory->define(Pterodactyl\Models\Location::class, function (Faker\Generator $
|
||||||
'long' => $faker->catchPhrase,
|
'long' => $faker->catchPhrase,
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$factory->define(Pterodactyl\Models\Node::class, function (Faker\Generator $faker) {
|
||||||
|
return [
|
||||||
|
'public' => true,
|
||||||
|
'name' => $faker->firstName,
|
||||||
|
'fqdn' => $faker->ipv4,
|
||||||
|
'scheme' => 'http',
|
||||||
|
'behind_proxy' => false,
|
||||||
|
'memory' => 1024,
|
||||||
|
'memory_overallocate' => 0,
|
||||||
|
'disk' => 10240,
|
||||||
|
'disk_overallocate' => 0,
|
||||||
|
'upload_size' => 100,
|
||||||
|
'daemonSecret' => $faker->uuid,
|
||||||
|
'daemonListen' => 8080,
|
||||||
|
'daemonSFTP' => 2022,
|
||||||
|
'daemonBase' => '/srv/daemon',
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
namespace Tests\Feature\Services;
|
namespace Tests\Feature\Services;
|
||||||
|
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
|
use Pterodactyl\Exceptions\DisplayException;
|
||||||
|
use Pterodactyl\Models\Node;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Pterodactyl\Models\Location;
|
use Pterodactyl\Models\Location;
|
||||||
use Pterodactyl\Services\LocationService;
|
use Pterodactyl\Services\LocationService;
|
||||||
|
@ -201,4 +203,46 @@ class LocationServiceTest extends TestCase
|
||||||
{
|
{
|
||||||
$this->service->update(0, []);
|
$this->service->update(0, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that a location can be deleted normally when no nodes are attached.
|
||||||
|
*/
|
||||||
|
public function testShouldDeleteExistingLocation()
|
||||||
|
{
|
||||||
|
$location = factory(Location::class)->create();
|
||||||
|
|
||||||
|
$this->assertDatabaseHas('locations', [
|
||||||
|
'id' => $location->id,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$model = $this->service->delete($location);
|
||||||
|
|
||||||
|
$this->assertTrue($model);
|
||||||
|
$this->assertDatabaseMissing('locations', [
|
||||||
|
'id' => $location->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that a location cannot be deleted if a node is attached to it.
|
||||||
|
*
|
||||||
|
* @expectedException \Pterodactyl\Exceptions\DisplayException
|
||||||
|
*/
|
||||||
|
public function testShouldFailToDeleteExistingLocationWithAttachedNodes()
|
||||||
|
{
|
||||||
|
$location = factory(Location::class)->create();
|
||||||
|
$node = factory(Node::class)->create(['location_id' => $location->id]);
|
||||||
|
|
||||||
|
$this->assertDatabaseHas('locations', ['id' => $location->id]);
|
||||||
|
$this->assertDatabaseHas('nodes', ['id' => $node->id]);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$this->service->delete($location->id);
|
||||||
|
} catch (\Exception $ex) {
|
||||||
|
$this->assertInstanceOf(DisplayException::class, $ex);
|
||||||
|
$this->assertNotEmpty($ex->getMessage());
|
||||||
|
|
||||||
|
throw $ex;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue