1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

Tests for adding vendors to quotes, credits and invoices

This commit is contained in:
David Bomba 2022-02-08 21:39:59 +11:00
parent f6686c7df5
commit dd2fba48cd
5 changed files with 119 additions and 0 deletions

View File

@ -78,6 +78,7 @@ class Credit extends BaseModel
'assigned_user_id',
'exchange_rate',
'subscription_id',
'vendor_id',
];
protected $casts = [
@ -123,6 +124,11 @@ class Credit extends BaseModel
return $this->belongsTo(User::class, 'assigned_user_id', 'id')->withTrashed();
}
public function vendor()
{
return $this->belongsTo(Vendor::class);
}
public function history()
{
return $this->hasManyThrough(Backup::class, Activity::class);

View File

@ -76,6 +76,7 @@ class Quote extends BaseModel
'exchange_rate',
'subscription_id',
'uses_inclusive_taxes',
'vendor_id',
];
protected $casts = [
@ -133,6 +134,11 @@ class Quote extends BaseModel
return $this->belongsTo(Company::class);
}
public function vendor()
{
return $this->belongsTo(Vendor::class);
}
public function history()
{
return $this->hasManyThrough(Backup::class, Activity::class);

View File

@ -89,6 +89,7 @@ class CreditTransformer extends EntityTransformer
'user_id' => $this->encodePrimaryKey($credit->user_id),
'project_id' => $this->encodePrimaryKey($credit->project_id),
'assigned_user_id' => $this->encodePrimaryKey($credit->assigned_user_id),
'vendor_id' => (string) $this->encodePrimaryKey($credit->vendor_id),
'amount' => (float) $credit->amount,
'balance' => (float) $credit->balance,
'client_id' => (string) $this->encodePrimaryKey($credit->client_id),

View File

@ -95,6 +95,7 @@ class QuoteTransformer extends EntityTransformer
'status_id' => (string) $quote->status_id,
'design_id' => (string) $this->encodePrimaryKey($quote->design_id),
'invoice_id' => (string) $this->encodePrimaryKey($quote->invoice_id),
'vendor_id' => (string) $this->encodePrimaryKey($quote->vendor_id),
'updated_at' => (int) $quote->updated_at,
'archived_at' => (int) $quote->deleted_at,
'created_at' => (int) $quote->created_at,

View File

@ -41,6 +41,111 @@ class VendorApiTest extends TestCase
Model::reguard();
}
public function testAddVendorToInvoice()
{
$data = [
'name' => $this->faker->firstName,
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/vendors', $data);
$response->assertStatus(200);
$arr = $response->json();
$vendor_id =$arr['data']['id'];
$data = [
'vendor_id' => $vendor_id,
'client_id' => $this->client->hashed_id
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/invoices', $data);
$response->assertStatus(200);
$arr = $response->json();
$this->assertEquals($arr['data']['vendor_id'], $vendor_id);
}
public function testAddVendorToQuote()
{
$data = [
'name' => $this->faker->firstName,
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/vendors', $data);
$response->assertStatus(200);
$arr = $response->json();
$vendor_id =$arr['data']['id'];
$data = [
'vendor_id' => $vendor_id,
'client_id' => $this->client->hashed_id
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/quotes', $data);
$response->assertStatus(200);
$arr = $response->json();
$this->assertEquals($arr['data']['vendor_id'], $vendor_id);
}
public function testAddVendorToCredit()
{
$data = [
'name' => $this->faker->firstName,
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/vendors', $data);
$response->assertStatus(200);
$arr = $response->json();
$vendor_id =$arr['data']['id'];
$data = [
'vendor_id' => $vendor_id,
'client_id' => $this->client->hashed_id
];
$response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token,
])->post('/api/v1/credits', $data);
$response->assertStatus(200);
$arr = $response->json();
$this->assertEquals($arr['data']['vendor_id'], $vendor_id);
}
public function testVendorPost()
{
$data = [