faker = \Faker\Factory::create(); Model::reguard(); $this->makeTestData(); } public function testCompanyLogoInline() { $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->postJson("/api/v1/companies/{$this->company->hashed_id}/logo"); $response->assertStatus(200); $response->streamedContent(); } public function testUpdateCompanyPropertyInvoiceTaskHours() { $company_update = [ 'invoice_task_hours' => true ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->putJson('/api/v1/companies/'.$this->encodePrimaryKey($this->company->id), $company_update); $response->assertStatus(200); $arr = $response->json(); $this->assertTrue($arr['data']['invoice_task_hours']); $company_update = [ 'invoice_task_hours' => false ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->putJson('/api/v1/companies/'.$this->encodePrimaryKey($this->company->id), $company_update) ->assertStatus(200); $arr = $response->json(); $this->assertFalse($arr['data']['invoice_task_hours']); } public function testCompanyList() { $this->withoutMiddleware(PasswordProtection::class); // $cc = Company::first(); // $cc->delete(); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->get('/api/v1/companies'); $response->assertStatus(200); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post( '/api/v1/companies?include=company', [ 'name' => 'A New Company', 'logo' => UploadedFile::fake()->image('avatar.jpg'), ] ) ->assertStatus(200)->decodeResponseJson(); $company = Company::find($this->decodePrimaryKey($response['data'][0]['company']['id'])); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->post( '/api/v1/companies/', [ 'name' => 'A New Company', 'company_logo' => UploadedFile::fake()->create('avatar.pdf', 100), ] ) ->assertStatus(302); // Log::error($company); $this->token = CompanyToken::whereCompanyId($company->id)->first()->token; $company_update = [ 'name' => 'CHANGE NAME', // 'logo' => UploadedFile::fake()->image('avatar.jpg') ]; $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->putJson('/api/v1/companies/'.$this->encodePrimaryKey($company->id), $company_update) ->assertStatus(200); $settings = CompanySettings::defaults(); $settings->custom_value1 = 'test'; $settings->invoice_design_id = '2'; $settings->quote_design_id = '1'; $company->settings = $settings; // nlog($company->toArray()); $response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token, ])->putJson('/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' => $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' => $this->token, 'X-API-PASSWORD' => 'ALongAndBriliantPassword', ])->delete('/api/v1/companies/'.$this->encodePrimaryKey($company->id)) ->assertStatus(200); } }