Browse Source

in memory db for testing

Bubka 6 years ago
parent
commit
dcf3e6e1a0
5 changed files with 68 additions and 3 deletions
  1. 40 0
      .env.testing
  2. 1 1
      .env.travis
  3. 0 2
      .travis.yml
  4. 7 0
      config/database.php
  5. 20 0
      tests/Unit/APITest.php

+ 40 - 0
.env.testing

@@ -0,0 +1,40 @@
+APP_NAME=2FAuth
+APP_ENV=testing
+APP_KEY=base64:pdjaSqs7dDu8SdYCQzsayBAqeMC+85fmo3bpeBCCT94=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+
+DB_CONNECTION=testing
+DB_DATABASE=:memory:
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=array
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=array
+SESSION_LIFETIME=120
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_DRIVER=smtp
+MAIL_HOST=smtp.mailtrap.io
+MAIL_PORT=2525
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_APP_CLUSTER=mt1
+
+MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

+ 1 - 1
.env.travis

@@ -1,7 +1,7 @@
 APP_ENV=testing
 APP_KEY=
 
-DB_CONNECTION=sqlite
+DB_CONNECTION=testing
 DB_DATABASE=:memory:
 
 CACHE_DRIVER=array

+ 0 - 2
.travis.yml

@@ -8,8 +8,6 @@ before_script:
   - composer self-update
   - composer install --no-interaction
   - php artisan key:generate
-  - php artisan migrate --seed
-  - php artisan passport:install
 
 script:
 - vendor/bin/phpunit

+ 7 - 0
config/database.php

@@ -43,6 +43,13 @@ return [
             'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
         ],
 
+        'testing' => [
+            'driver' => 'sqlite',
+            'database' => ':memory:',
+            'prefix' => '',
+            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+        ],
+
         'mysql' => [
             'driver' => 'mysql',
             'url' => env('DATABASE_URL'),

+ 20 - 0
tests/Unit/APITest.php

@@ -3,12 +3,32 @@
 namespace Tests\Unit;
 
 use Tests\TestCase;
+use Illuminate\Support\Facades\Artisan;
 use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Foundation\Testing\DatabaseTransactions;
 use Illuminate\Auth\Authenticatable;
 
 class APITest extends TestCase
 {
 
+    /**
+     * Rollback and execute migrations for each test.
+     */
+    use DatabaseTransactions;
+
+
+    /**
+     * set up fresh db
+     */
+    public function setUp(): void
+    {
+        parent::setUp();
+        // Artisan::call('make:migrate', ['--force' => true]);
+        Artisan::call('migrate', ['--seed' => true]);
+        Artisan::call('passport:install',['--verbose' => 2]);
+    }
+
+
     /**
      * test User creation via API
      *