diff --git a/.env.ci b/.env.ci index f5e7b3aa22bc..87976de27699 100644 --- a/.env.ci +++ b/.env.ci @@ -16,6 +16,6 @@ DB_DATABASE=ninja DB_USERNAME=root DB_PASSWORD=ninja DB_HOST=127.0.0.1 -NINJA_ENVIRONMENT=development +NINJA_ENVIRONMENT=hosted COMPOSER_AUTH='{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' TRAVIS=true diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index d2df65f91d4f..20182ab2720d 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -20,7 +20,7 @@ jobs: CACHE_DRIVER: file QUEUE_CONNECTION: sync SESSION_DRIVER: file - NINJA_ENVIRONMENT: development + NINJA_ENVIRONMENT: hosted MULTI_DB_ENABLED: false NINJA_LICENSE: 123456 TRAVIS: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5076e834fb30..39b49cf203e4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: Install composer dependencies run: | composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} - composer install + composer install --no-dev - name: Prepare Laravel Application run: | diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php index ba2ca4b67564..d2804c94343b 100644 --- a/app/Http/Controllers/BaseController.php +++ b/app/Http/Controllers/BaseController.php @@ -264,8 +264,9 @@ class BaseController extends Controller 'company.payments.paymentables', 'company.quotes.invitations.contact', 'company.quotes.invitations.company', - 'company.credits.invitations.contact', - 'company.credits.invitations.company', + 'company.credits', + //'company.credits.invitations.contact', + //'company.credits.invitations.company', 'company.vendors.contacts', 'company.expenses', 'company.tasks', diff --git a/app/Listeners/Invoice/InvoiceEmailedNotification.php b/app/Listeners/Invoice/InvoiceEmailedNotification.php index 93b2e191e8c2..28700b09b751 100644 --- a/app/Listeners/Invoice/InvoiceEmailedNotification.php +++ b/app/Listeners/Invoice/InvoiceEmailedNotification.php @@ -43,20 +43,26 @@ class InvoiceEmailedNotification implements ShouldQueue $invitation = $event->invitation; foreach ($invitation->company->company_users as $company_user) { + $user = $company_user->user; $notification = new EntitySentNotification($invitation, 'invoice'); - $notification->method = $this->findUserNotificationTypes($invitation, $company_user, 'invoice', ['all_notifications', 'invoice_sent']); + $methods = $this->findUserNotificationTypes($invitation, $company_user, 'invoice', ['all_notifications', 'invoice_sent']); + + if (($key = array_search('mail', $methods)) !== false) { + unset($methods[$key]); + + //Fire mail notification here!!! + //This allows us better control of how we + //handle the mailer + } + + $notification->method = $methods; $user->notify($notification); } - // if(isset($invitation->company->slack_webhook_url)){ - // Notification::route('slack', $invitation->company->slack_webhook_url) - // ->notify(new EntitySentNotification($invitation, $invitation->company, true)); - - // } } } diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 760b6a9726be..5565a316bf2c 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -18,6 +18,7 @@ use App\Models\Company; use App\Models\CompanyGateway; use App\Models\CompanyLedger; use App\Models\CompanyUser; +use App\Models\Credit; use App\Models\Design; use App\Models\Expense; use App\Models\GroupSetting; @@ -29,6 +30,7 @@ use App\Models\Task; use App\Models\TaxRate; use App\Models\User; use App\Transformers\CompanyLedgerTransformer; +use App\Transformers\CreditTransformer; use App\Transformers\TaskTransformer; use App\Utils\Traits\MakesHash; @@ -68,6 +70,7 @@ class CompanyTransformer extends EntityTransformer 'company_gateways', 'activities', 'quotes', + 'credits', 'projects', 'tasks', 'ledger', @@ -202,6 +205,13 @@ class CompanyTransformer extends EntityTransformer return $this->includeCollection($company->quotes, $transformer, Quote::class); } + public function includeCredits(Company $company) + { + $transformer = new CreditTransformer($this->serializer); + + return $this->includeCollection($company->credits, $transformer, Credit::class); + } + public function includeAccount(Company $company) { $transformer = new AccountTransformer($this->serializer); diff --git a/app/Utils/Traits/Notifications/UserNotifies.php b/app/Utils/Traits/Notifications/UserNotifies.php index 8e5ce3a7cf30..a97d35c6370a 100644 --- a/app/Utils/Traits/Notifications/UserNotifies.php +++ b/app/Utils/Traits/Notifications/UserNotifies.php @@ -58,9 +58,6 @@ trait UserNotifies array_push($notifiable_methods, 'mail'); } - // if(count(array_intersect($required_permissions, $notifications->slack)) >=1) - // array_push($notifiable_methods, 'slack'); - return $notifiable_methods; } diff --git a/tests/Feature/AccountTest.php b/tests/Feature/AccountTest.php index 23a84343705d..3b7423c55625 100644 --- a/tests/Feature/AccountTest.php +++ b/tests/Feature/AccountTest.php @@ -42,6 +42,12 @@ class AccountTest extends TestCase public function testApiAccountCreation() { + + Account::all()->each(function($account) { + $account->delete(); + }); + + $data = [ 'first_name' => $this->faker->firstName, 'last_name' => $this->faker->lastName, diff --git a/tests/Feature/ClientTest.php b/tests/Feature/ClientTest.php index 899fcaba71b4..95612ce11906 100644 --- a/tests/Feature/ClientTest.php +++ b/tests/Feature/ClientTest.php @@ -20,8 +20,9 @@ use Illuminate\Http\Request; use Illuminate\Routing\Middleware\ThrottleRequests; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Session; -use Illuminate\Validation\ValidationException; use Illuminate\Support\Str; +use Illuminate\Validation\ValidationException; +use Tests\MockAccountData; use Tests\TestCase; /** @@ -32,6 +33,7 @@ class ClientTest extends TestCase { use MakesHash; use DatabaseTransactions; + use MockAccountData; public function setUp() :void { @@ -51,38 +53,41 @@ class ClientTest extends TestCase $this->withoutMiddleware( ThrottleRequests::class ); + + $this->makeTestData(); + } public function testClientList() { - $data = [ - 'first_name' => $this->faker->firstName, - 'last_name' => $this->faker->lastName, - 'name' => $this->faker->company, - 'email' => $this->faker->unique()->safeEmail, - 'password' => 'ALongAndBrilliantPassword123', - '_token' => csrf_token(), - 'privacy_policy' => 1, - 'terms_of_service' => 1 - ]; + // $data = [ + // 'first_name' => $this->faker->firstName, + // 'last_name' => $this->faker->lastName, + // 'name' => $this->faker->company, + // 'email' => $this->faker->unique()->safeEmail, + // 'password' => 'ALongAndBrilliantPassword123', + // '_token' => csrf_token(), + // 'privacy_policy' => 1, + // 'terms_of_service' => 1 + // ]; - $response = $this->withHeaders([ - 'X-API-SECRET' => config('ninja.api_secret'), - ])->post('/api/v1/signup?include=account', $data); + // $response = $this->withHeaders([ + // 'X-API-SECRET' => config('ninja.api_secret'), + // ])->post('/api/v1/signup?include=account', $data); - $response->assertStatus(200); + // $response->assertStatus(200); - $acc = $response->json(); + // $acc = $response->json(); - $account = Account::find($this->decodePrimaryKey($acc['data'][0]['account']['id'])); + // $account = Account::find($this->decodePrimaryKey($acc['data'][0]['account']['id'])); - $token = $account->default_company->tokens->first()->token; + // $this->token = $account->default_company->tokens->first()->token; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->get('/api/v1/clients'); $response->assertStatus(200); @@ -93,72 +98,34 @@ class ClientTest extends TestCase */ public function testClientRestEndPoints() { - $data = [ - 'first_name' => $this->faker->firstName, - 'last_name' => $this->faker->lastName, - 'name' => $this->faker->company, - 'email' => $this->faker->unique()->safeEmail, - 'password' => 'ALongAndBrilliantPassword123', - '_token' => csrf_token(), - 'privacy_policy' => 1, - 'terms_of_service' => 1 - ]; - $response = $this->withHeaders([ - 'X-API-SECRET' => config('ninja.api_secret'), - ])->post('/api/v1/signup?include=account', $data); - - $acc = $response->json(); - - $account = Account::find($this->decodePrimaryKey($acc['data'][0]['account']['id'])); - - $company_token = $account->default_company->tokens()->first(); - - $token = $company_token->token; - $company = $company_token->company; - - $user = $company_token->user; - - //$company_user = $company->company_users()->first(); - - //$user = User::find($company_user->user_id); - $this->assertNotNull($company_token); - $this->assertNotNull($token); - $this->assertNotNull($user); - $this->assertNotNull($company); - //$this->assertNotNull($user->token->company); - - factory(\App\Models\Client::class, 3)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company) { + factory(\App\Models\Client::class, 3)->create(['user_id' => $this->user->id, 'company_id' => $this->company->id])->each(function ($c){ factory(\App\Models\ClientContact::class, 1)->create([ - 'user_id' => $user->id, + 'user_id' => $this->user->id, 'client_id' => $c->id, - 'company_id' => $company->id, + 'company_id' => $this->company->id, 'is_primary' => 1 ]); factory(\App\Models\ClientContact::class, 2)->create([ - 'user_id' => $user->id, + 'user_id' => $this->user->id, 'client_id' => $c->id, - 'company_id' => $company->id + 'company_id' => $this->company->id ]); }); - $client = $account->default_company->clients()->first(); - $client->load('contacts'); - - $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->get('/api/v1/clients/'.$this->encodePrimaryKey($client->id)); + 'X-API-TOKEN' => $this->token, + ])->get('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id)); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->get('/api/v1/clients/'.$this->encodePrimaryKey($client->id).'/edit'); + 'X-API-TOKEN' => $this->token, + ])->get('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id).'/edit'); $response->assertStatus(200); @@ -168,29 +135,29 @@ class ClientTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->put('/api/v1/clients/'.$this->encodePrimaryKey($client->id), $client_update) + 'X-API-TOKEN' => $this->token, + ])->put('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id), $client_update) ->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->delete('/api/v1/clients/'.$this->encodePrimaryKey($client->id)); + 'X-API-TOKEN' => $this->token, + ])->delete('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id)); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', ['name' => 'New Client']) ->assertStatus(200); $response->assertStatus(200); - $client->is_deleted = true; - $client->save(); + $this->client->is_deleted = true; + $this->client->save(); $client_update = [ @@ -199,8 +166,8 @@ class ClientTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->put('/api/v1/clients/'.$this->encodePrimaryKey($client->id), $client_update) + 'X-API-TOKEN' => $this->token, + ])->put('/api/v1/clients/'.$this->encodePrimaryKey($this->client->id), $client_update) ->assertStatus(400); } @@ -216,7 +183,8 @@ class ClientTest extends TestCase $user = factory(\App\Models\User::class)->create([ 'account_id' => $account->id, - 'confirmation_code' => $this->createDbHash(config('database.default')) + 'confirmation_code' => $this->createDbHash(config('database.default')), + 'email' => 'whiz@gmail.com' ]); @@ -256,18 +224,18 @@ class ClientTest extends TestCase ]); }); - $client = Client::whereUserId($user->id)->whereCompanyId($company->id)->first(); + $this->client = Client::whereUserId($user->id)->whereCompanyId($company->id)->first(); - $this->assertNotNull($client); + $this->assertNotNull($this->client); /* Make sure we have a valid settings object*/ - $this->assertEquals($client->getSetting('timezone_id'), 1); + $this->assertEquals($this->client->getSetting('timezone_id'), 1); /* Make sure we are harvesting valid data */ - $this->assertEquals($client->timezone()->name, 'Pacific/Midway'); + $this->assertEquals($this->client->timezone()->name, 'Pacific/Midway'); /* Make sure NULL settings return the correct count (0) instead of throwing an exception*/ - $this->assertEquals($client->contacts->count(), 3); + $this->assertEquals($this->client->contacts->count(), 3); } @@ -283,7 +251,9 @@ class ClientTest extends TestCase $user = factory(\App\Models\User::class)->create([ 'account_id' => $account->id, - 'confirmation_code' => $this->createDbHash(config('database.default')) + 'confirmation_code' => $this->createDbHash(config('database.default')), + 'email' => 'whiz@gmail.com' + ]); $user->companies()->attach($company->id, [ @@ -305,7 +275,7 @@ class ClientTest extends TestCase $company_token->save(); - $token = $company_token->token; + $this->token = $company_token->token; $data = [ 'name' => 'A loyal Client', @@ -317,7 +287,7 @@ class ClientTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data) ->assertStatus(200); @@ -336,7 +306,7 @@ class ClientTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data) ->assertStatus(200); @@ -356,7 +326,7 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); @@ -378,7 +348,7 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); @@ -405,7 +375,7 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); @@ -417,12 +387,12 @@ class ClientTest extends TestCase $arr = $response->json(); - $client_id = $arr['data']['id']; + $this->client_id = $arr['data']['id']; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->put('/api/v1/clients/' . $client_id, $data)->assertStatus(200); + 'X-API-TOKEN' => $this->token, + ])->put('/api/v1/clients/' . $this->client_id, $data)->assertStatus(200); $arr = $response->json(); @@ -443,7 +413,7 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); @@ -454,9 +424,9 @@ class ClientTest extends TestCase $arr = $response->json(); - $client = Client::find($this->decodePrimaryKey($arr['data']['id'])); + $this->client = Client::find($this->decodePrimaryKey($arr['data']['id'])); - $contact = $client->contacts()->whereEmail($safe_email)->first(); + $contact = $this->client->contacts()->whereEmail($safe_email)->first(); $this->assertEquals(0, strlen($contact->password)); @@ -477,7 +447,7 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post('/api/v1/clients/', $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); @@ -488,9 +458,9 @@ class ClientTest extends TestCase $arr = $response->json(); - $client = Client::find($this->decodePrimaryKey($arr['data']['id'])); + $this->client = Client::find($this->decodePrimaryKey($arr['data']['id'])); - $contact = $client->contacts()->whereEmail($safe_email)->first(); + $contact = $this->client->contacts()->whereEmail($safe_email)->first(); $this->assertGreaterThan(1, strlen($contact->password)); @@ -512,8 +482,8 @@ class ClientTest extends TestCase try { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, - ])->put('/api/v1/clients/' . $client->hashed_id, $data); + 'X-API-TOKEN' => $this->token, + ])->put('/api/v1/clients/' . $this->client->hashed_id, $data); } catch (ValidationException $e) { $message = json_decode($e->validator->getMessageBag(), 1); $this->assertNotNull($message); @@ -523,58 +493,13 @@ class ClientTest extends TestCase $arr = $response->json(); - $client = Client::find($this->decodePrimaryKey($arr['data']['id'])); - $client->fresh(); + $this->client = Client::find($this->decodePrimaryKey($arr['data']['id'])); + $this->client->fresh(); - $contact = $client->contacts()->whereEmail($safe_email)->first(); + $contact = $this->client->contacts()->whereEmail($safe_email)->first(); $this->assertEquals($password, $contact->password); } - /** @test */ - // public function testMassivelyCreatingClients() - // { - // $data = [ - // 'first_name' => $this->faker->firstName, - // 'last_name' => $this->faker->lastName, - // 'name' => $this->faker->company, - // 'email' => $this->faker->unique()->safeEmail, - // 'password' => 'ALongAndBrilliantPassword123', - // '_token' => csrf_token(), - // 'privacy_policy' => 1, - // 'terms_of_service' => 1 - // ]; - // $response = $this->withHeaders([ - // 'X-API-SECRET' => config('ninja.api_secret'), - // ])->post('/api/v1/signup?include=account', $data); - - // $response->assertStatus(200); - - // $acc = $response->json(); - - // $account = Account::find($this->decodePrimaryKey($acc['data'][0]['account']['id'])); - - // $token = $account->default_company->tokens->first()->token; - - // $body = [ - // 'action' => 'create', - // 'clients' => [ - // ['name' => $this->faker->firstName, 'website' => 'my-awesome-website-1.com'], - // ['name' => $this->faker->firstName, 'website' => 'my-awesome-website-2.com'], - // ], - // ]; - - // $response = $this->withHeaders([ - // 'X-API-SECRET' => config('ninja.api_secret'), - // 'X-API-TOKEN' => $token, - // ])->post(route('clients.bulk'), $body); - - // $response->assertStatus(200); - - // $first_record = Client::where('website', 'my-awesome-website-1.com')->first(); - // $second_record = Client::where('website', 'my-awesome-website-2.com')->first(); - - // $this->assertNotNull($first_record); - // $this->assertNotNull($second_record); - // } + } diff --git a/tests/Feature/CompanyTest.php b/tests/Feature/CompanyTest.php index c9a731223337..b1e114bc7883 100644 --- a/tests/Feature/CompanyTest.php +++ b/tests/Feature/CompanyTest.php @@ -19,6 +19,7 @@ use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Session; use Illuminate\Validation\ValidationException; +use Tests\MockAccountData; use Tests\TestCase; /** @@ -28,6 +29,7 @@ use Tests\TestCase; class CompanyTest extends TestCase { use MakesHash; + use MockAccountData; use DatabaseTransactions; @@ -40,38 +42,17 @@ class CompanyTest extends TestCase $this->faker = \Faker\Factory::create(); Model::reguard(); + + $this->makeTestData(); + } public function testCompanyList() { - $data = [ - 'first_name' => $this->faker->firstName, - 'last_name' => $this->faker->lastName, - 'name' => $this->faker->company, - 'email' => $this->faker->unique()->safeEmail, - 'password' => 'ALongAndBrilliantPassword123', - '_token' => csrf_token(), - 'privacy_policy' => 1, - 'terms_of_service' => 1 - ]; - $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - ])->post('/api/v1/signup?include=account', $data); - - - $response->assertStatus(200); - - $acc = $response->json(); - - $account = Account::find($this->decodePrimaryKey($acc['data'][0]['account']['id'])); - - $token = $account->default_company->tokens->first()->token; - - $response = $this->withHeaders([ - 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->get('/api/v1/companies'); $response->assertStatus(200); @@ -79,7 +60,7 @@ class CompanyTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post( '/api/v1/companies?include=company', [ @@ -93,7 +74,7 @@ class CompanyTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->post( '/api/v1/companies/', [ @@ -105,7 +86,7 @@ class CompanyTest extends TestCase // Log::error($company); - $token = CompanyToken::whereCompanyId($company->id)->first()->token; + $this->token = CompanyToken::whereCompanyId($company->id)->first()->token; $company_update = [ 'name' => 'CHANGE NAME', @@ -114,7 +95,7 @@ class CompanyTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->put('/api/v1/companies/'.$this->encodePrimaryKey($company->id), $company_update) ->assertStatus(200); @@ -128,19 +109,19 @@ class CompanyTest extends TestCase $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->put('/api/v1/companies/'.$this->encodePrimaryKey($company->id), $company->toArray()) ->assertStatus(200)->decodeResponseJson(); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->get('/api/v1/companies/'.$this->encodePrimaryKey($company->id)) ->assertStatus(200)->decodeResponseJson(); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), - 'X-API-TOKEN' => $token, + 'X-API-TOKEN' => $this->token, ])->delete('/api/v1/companies/'.$this->encodePrimaryKey($company->id)) ->assertStatus(200); } diff --git a/tests/Feature/CreditTest.php b/tests/Feature/CreditTest.php index 6acc056f8fd1..4b06c5c18607 100644 --- a/tests/Feature/CreditTest.php +++ b/tests/Feature/CreditTest.php @@ -33,6 +33,11 @@ class CreditTest extends TestCase public function testCreditsList() { + + Account::all()->each(function($account) { + $account->delete(); + }); + $data = [ 'first_name' => $this->faker->firstName, 'last_name' => $this->faker->lastName, diff --git a/tests/Feature/InvoiceTest.php b/tests/Feature/InvoiceTest.php index f1107a825792..1b0246084ffd 100644 --- a/tests/Feature/InvoiceTest.php +++ b/tests/Feature/InvoiceTest.php @@ -44,6 +44,10 @@ class InvoiceTest extends TestCase public function testInvoiceList() { + Account::all()->each(function($account) { + $account->delete(); + }); + $data = [ 'first_name' => $this->faker->firstName, 'last_name' => $this->faker->lastName, diff --git a/tests/Feature/PreviewTest.php b/tests/Feature/PreviewTest.php index 4d6d10e15583..e2ecafe9dd90 100644 --- a/tests/Feature/PreviewTest.php +++ b/tests/Feature/PreviewTest.php @@ -56,13 +56,11 @@ class PreviewTest extends TestCase ]; + $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token - ])->post('/api/v1/preview', $data); - - - $response->assertStatus(200); + ])->post('/api/v1/preview/', $data)->assertStatus(200); } diff --git a/tests/Feature/ProductTest.php b/tests/Feature/ProductTest.php index 63006411f3d3..3be9fb3f337a 100644 --- a/tests/Feature/ProductTest.php +++ b/tests/Feature/ProductTest.php @@ -44,6 +44,12 @@ class ProductTest extends TestCase public function testProductList() { + + Account::all()->each(function($account) { + $account->delete(); + }); + + $data = [ 'first_name' => $this->faker->firstName, 'last_name' => $this->faker->lastName,