1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 17:24:03 +00:00

Add 5.8 support (#33)

This commit is contained in:
Samuel Štancl 2019-02-27 18:22:34 +01:00 committed by GitHub
parent 725b43ce8c
commit 78fd7d43f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 41 additions and 15 deletions

1
.gitignore vendored
View file

@ -3,3 +3,4 @@ composer.lock
vendor/ vendor/
.vscode/ .vscode/
psysh psysh
.phpunit.result.cache

View file

@ -1,9 +1,9 @@
env: env:
- DB_USERNAME=root DB_PASSWORD="" DB_DATABASE=travis_tenancy CODECOV_TOKEN="24382d15-84e7-4a55-bea4-c4df96a24a9b" - LARAVEL_VERSION="5.7.*" TESTBENCH_VERSION="~3.7"
- LARAVEL_VERSION="5.8.*" TESTBENCH_VERSION="~3.8"
language: php language: php
php: php:
- '7.2'
- '7.1' - '7.1'
services: services:
@ -14,10 +14,13 @@ before_install:
- echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
install: install:
- composer require "laravel/framework:$LARAVEL_VERSION" "orchestra/testbench:$TESTBENCH_VERSION"
- travis_retry composer install --no-interaction - travis_retry composer install --no-interaction
before_script: before_script:
- mysql -e 'CREATE DATABASE travis_tenancy;' - mysql -e 'CREATE DATABASE travis_tenancy;'
- export DB_USERNAME=root DB_PASSWORD="" DB_DATABASE=travis_tenancy CODECOV_TOKEN="24382d15-84e7-4a55-bea4-c4df96a24a9b"
- cat vendor/laravel/framework/src/Illuminate/Foundation/Application.php| grep 'const VERSION'
script: vendor/bin/phpunit -v --coverage-clover=coverage.xml script: vendor/bin/phpunit -v --coverage-clover=coverage.xml

View file

@ -1,6 +1,6 @@
# Tenancy # Tenancy
[![Laravel 5.7](https://img.shields.io/badge/laravel-5.7-red.svg)](https://laravel.com) [![Laravel 5.7+](https://img.shields.io/badge/laravel-5.7+-red.svg)](https://laravel.com)
[![Latest Stable Version](https://poser.pugx.org/stancl/tenancy/version)](https://packagist.org/packages/stancl/tenancy) [![Latest Stable Version](https://poser.pugx.org/stancl/tenancy/version)](https://packagist.org/packages/stancl/tenancy)
[![Travis CI build](https://travis-ci.com/stancl/tenancy.svg?branch=master)](https://travis-ci.com/stancl/tenancy) [![Travis CI build](https://travis-ci.com/stancl/tenancy.svg?branch=master)](https://travis-ci.com/stancl/tenancy)
[![codecov](https://codecov.io/gh/stancl/tenancy/branch/master/graph/badge.svg)](https://codecov.io/gh/stancl/tenancy) [![codecov](https://codecov.io/gh/stancl/tenancy/branch/master/graph/badge.svg)](https://codecov.io/gh/stancl/tenancy)
@ -25,6 +25,8 @@ composer require stancl/tenancy
This package follows [semantic versioning 2.0.0](https://semver.org). Each major release will have its own branch, so that bug fixes can be provided for older versions as well. This package follows [semantic versioning 2.0.0](https://semver.org). Each major release will have its own branch, so that bug fixes can be provided for older versions as well.
Both Laravel 5.7 and 5.8 are supported.
### Configuring the `InitializeTenancy` middleware ### Configuring the `InitializeTenancy` middleware
The `TenancyServiceProvider` automatically adds the `tenancy` middleware group which can be assigned to routes. You only need to make sure the middleware is top priority. The `TenancyServiceProvider` automatically adds the `tenancy` middleware group which can be assigned to routes. You only need to make sure the middleware is top priority.

View file

@ -10,14 +10,14 @@
} }
], ],
"require": { "require": {
"illuminate/support": "^5.7", "illuminate/support": "5.7.*||5.8.*",
"webpatser/laravel-uuid": "^3.0" "webpatser/laravel-uuid": "^3.0"
}, },
"require-dev": { "require-dev": {
"orchestra/testbench": "~3.0", "vlucas/phpdotenv": "^2.2||^3.3",
"laravel/framework": "5.7.*",
"vlucas/phpdotenv": "^2.2",
"psy/psysh": "@stable", "psy/psysh": "@stable",
"laravel/framework": "5.7.*||5.8.*",
"orchestra/testbench": "~3.7||~3.8",
"league/flysystem-aws-s3-v3": "~1.0" "league/flysystem-aws-s3-v3": "~1.0"
}, },
"autoload": { "autoload": {
@ -42,5 +42,7 @@
"Tenancy": "Stancl\\Tenancy\\TenancyFacade" "Tenancy": "Stancl\\Tenancy\\TenancyFacade"
} }
} }
} },
"minimum-stability": "dev",
"prefer-stable": true
} }

View file

@ -7,7 +7,7 @@ class CacheManagerTest extends TestCase
/** @test */ /** @test */
public function default_tag_is_automatically_applied() public function default_tag_is_automatically_applied()
{ {
$this->assertArraySubset([config('tenancy.cache.tag_base') . tenant('uuid')], cache()->tags('foo')->getTags()->getNames()); $this->assertArrayIsSubset([config('tenancy.cache.tag_base') . tenant('uuid')], cache()->tags('foo')->getTags()->getNames());
} }
/** @test */ /** @test */

View file

@ -9,7 +9,7 @@ class CommandsTest extends TestCase
{ {
public $autoInitTenancy = false; public $autoInitTenancy = false;
public function setUp() public function setUp(): void
{ {
parent::setUp(); parent::setUp();
@ -19,10 +19,13 @@ class CommandsTest extends TestCase
/** @test */ /** @test */
public function migrate_command_doesnt_change_the_db_connection() public function migrate_command_doesnt_change_the_db_connection()
{ {
$this->assertFalse(Schema::hasTable('users'));
$old_connection_name = app(\Illuminate\Database\DatabaseManager::class)->connection()->getName(); $old_connection_name = app(\Illuminate\Database\DatabaseManager::class)->connection()->getName();
Artisan::call('tenants:migrate'); Artisan::call('tenants:migrate');
$new_connection_name = app(\Illuminate\Database\DatabaseManager::class)->connection()->getName(); $new_connection_name = app(\Illuminate\Database\DatabaseManager::class)->connection()->getName();
$this->assertFalse(Schema::hasTable('users'));
$this->assertEquals($old_connection_name, $new_connection_name); $this->assertEquals($old_connection_name, $new_connection_name);
$this->assertNotEquals('tenant', $new_connection_name); $this->assertNotEquals('tenant', $new_connection_name);
} }
@ -30,9 +33,10 @@ class CommandsTest extends TestCase
/** @test */ /** @test */
public function migrate_command_works_without_options() public function migrate_command_works_without_options()
{ {
$this->assertFalse(Schema::hasTable('users'));
Artisan::call('tenants:migrate'); Artisan::call('tenants:migrate');
$this->assertFalse(Schema::hasTable('users')); $this->assertFalse(Schema::hasTable('users'));
tenancy()->init(); tenancy()->init('localhost');
$this->assertTrue(Schema::hasTable('users')); $this->assertTrue(Schema::hasTable('users'));
} }
@ -45,7 +49,7 @@ class CommandsTest extends TestCase
]); ]);
$this->assertFalse(Schema::hasTable('users')); $this->assertFalse(Schema::hasTable('users'));
tenancy()->init(); tenancy()->init('localhost');
$this->assertFalse(Schema::hasTable('users')); $this->assertFalse(Schema::hasTable('users'));
tenancy()->init('test.localhost'); tenancy()->init('test.localhost');
@ -57,7 +61,7 @@ class CommandsTest extends TestCase
{ {
Artisan::call('tenants:migrate'); Artisan::call('tenants:migrate');
$this->assertFalse(Schema::hasTable('users')); $this->assertFalse(Schema::hasTable('users'));
tenancy()->init(); tenancy()->init('localhost');
$this->assertTrue(Schema::hasTable('users')); $this->assertTrue(Schema::hasTable('users'));
Artisan::call('tenants:rollback'); Artisan::call('tenants:rollback');
$this->assertFalse(Schema::hasTable('users')); $this->assertFalse(Schema::hasTable('users'));

View file

@ -14,7 +14,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
* *
* @return void * @return void
*/ */
protected function setUp() protected function setUp(): void
{ {
parent::setUp(); parent::setUp();
@ -48,7 +48,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
protected function getEnvironmentSetUp($app) protected function getEnvironmentSetUp($app)
{ {
if (file_exists(__DIR__ . '/../.env')) { if (file_exists(__DIR__ . '/../.env')) {
(new \Dotenv\Dotenv(__DIR__ . '/..'))->load(); $this->loadDotEnv();
} }
$app['config']->set([ $app['config']->set([
@ -75,6 +75,15 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
]); ]);
} }
protected function loadDotEnv()
{
if (app()::VERSION > '5.8.0') {
\Dotenv\Dotenv::create(__DIR__ . '/..')->load();
} else {
(new \Dotenv\Dotenv(__DIR__ . '/..'))->load();
}
}
protected function getPackageProviders($app) protected function getPackageProviders($app)
{ {
return [\Stancl\Tenancy\TenancyServiceProvider::class]; return [\Stancl\Tenancy\TenancyServiceProvider::class];
@ -102,4 +111,9 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
// set one of these environment vars on their computer. // set one of these environment vars on their computer.
return env('CI') && env('TRAVIS') && env('CONTINUOUS_INTEGRATION'); return env('CI') && env('TRAVIS') && env('CONTINUOUS_INTEGRATION');
} }
public function assertArrayIsSubset($subset, $array, string $message = ''): void
{
parent::assertTrue(array_intersect($subset, $array) == $subset, $message);
}
} }