From 0fe357cda60ace623f4262c3f5dab627a18e96fc Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 29 May 2021 08:27:06 +1000 Subject: [PATCH] Import Company Test --- app/Jobs/Company/CompanyExport.php | 6 ++++- tests/Feature/Import/ImportCompanyTest.php | 27 +++++++++++++++++++-- tests/Feature/Import/backup.zip | Bin 12872 -> 12860 bytes 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/Jobs/Company/CompanyExport.php b/app/Jobs/Company/CompanyExport.php index 64fcbeccd8b1..f79f4c2f7bd6 100644 --- a/app/Jobs/Company/CompanyExport.php +++ b/app/Jobs/Company/CompanyExport.php @@ -260,7 +260,11 @@ class CompanyExport implements ShouldQueue $invoice = $this->transformBasicEntities($invoice); $invoice = $this->transformArrayOfKeys($invoice, ['recurring_id','client_id', 'vendor_id', 'project_id', 'design_id', 'subscription_id']); - return $invoice->makeVisible(['id']); + return $invoice->makeVisible(['id', + 'private_notes', + 'user_id', + 'client_id', + 'company_id',]); })->all(); diff --git a/tests/Feature/Import/ImportCompanyTest.php b/tests/Feature/Import/ImportCompanyTest.php index dd1b6fb687d7..c87e90140f42 100644 --- a/tests/Feature/Import/ImportCompanyTest.php +++ b/tests/Feature/Import/ImportCompanyTest.php @@ -530,8 +530,7 @@ class ImportCompanyTest extends TestCase // Recurring Invoice Invitations $this->assertEquals(2, count($this->backup_json_object->recurring_invoice_invitations)); -nlog($this->backup_json_object->recurring_invoice_invitations); -nlog($this->ids); + $this->genericImport(RecurringInvoiceInvitation::class, ['user_id', 'client_contact_id', 'company_id', 'id', 'hashed_id', 'recurring_invoice_id'], [ @@ -546,6 +545,30 @@ nlog($this->ids); // Recurring Invoice Invitations + + $this->assertEquals(2, count($this->backup_json_object->invoices)); + + $this->genericImport(Invoice::class, + ['user_id', 'client_id', 'company_id', 'id', 'hashed_id', 'recurring_id','status'], + [ + ['users' => 'user_id'], + ['users' => 'assigned_user_id'], + ['recurring_invoices' => 'recurring_id'], + ['clients' => 'client_id'], + ['subscriptions' => 'subscription_id'], + ['projects' => 'project_id'], + ['vendors' => 'vendor_id'], + ], + 'invoices', + 'number'); + + $this->assertEquals(2, Invoice::count()); + +// Invoices + + + +// Invoices } private function genericNewClassImport($class, $unset, $transforms, $object_property) diff --git a/tests/Feature/Import/backup.zip b/tests/Feature/Import/backup.zip index 5260bd4b4f6df3986fb80a129f27d370fa54640f..ca7d1808bc206dea162d0b842a09888f16f2bd1a 100644 GIT binary patch literal 12860 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 XAmg(P1mrsg*zZrn?_Woj_tF0Wb)A+8 literal 12872 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 pzqVuix8TQijDH;sej@)N{a