Explorar o código

Fix the TwoFAccount Export feature & add related tests

Bubka %!s(int64=2) %!d(string=hai) anos
pai
achega
823acde49d

+ 2 - 0
app/Services/TwoFAccountService.php

@@ -68,6 +68,8 @@ class TwoFAccountService
     public static function export($ids) : Collection
     public static function export($ids) : Collection
     {
     {
         $ids          = Helpers::commaSeparatedToArray($ids);
         $ids          = Helpers::commaSeparatedToArray($ids);
+        $ids = is_array($ids) ? $ids : func_get_args();
+        
         $twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
         $twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
 
 
         return $twofaccounts;
         return $twofaccounts;

+ 35 - 0
tests/Feature/Services/TwoFAccountServiceTest.php

@@ -230,6 +230,41 @@ class TwoFAccountServiceTest extends FeatureTestCase
         $twofaccounts = TwoFAccounts::migrate(MigrationTestData::GOOGLE_AUTH_MIGRATION_URI_WITH_INVALID_DATA);
         $twofaccounts = TwoFAccounts::migrate(MigrationTestData::GOOGLE_AUTH_MIGRATION_URI_WITH_INVALID_DATA);
     }
     }
 
 
+    /**
+     * @test
+     */
+    public function test_export_single_id_returns_collection()
+    {
+        $twofaccounts = TwoFAccounts::export($this->customTotpTwofaccount->id);
+
+        $this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
+        $this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
+    }
+
+    /**
+     * @test
+     */
+    public function test_export_comma_separated_ids_returns_collection()
+    {
+        $twofaccounts = TwoFAccounts::export($this->customTotpTwofaccount->id . ',' . $this->customHotpTwofaccount->id);
+
+        $this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
+        $this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
+        $this->assertObjectEquals($this->customHotpTwofaccount, $twofaccounts->last());
+    }
+
+    /**
+     * @test
+     */
+    public function test_export_array_of_ids_returns_collection()
+    {
+        $twofaccounts = TwoFAccounts::export([$this->customTotpTwofaccount->id, $this->customHotpTwofaccount->id]);
+
+        $this->assertContainsOnlyInstancesOf(TwoFAccount::class, $twofaccounts);
+        $this->assertObjectEquals($this->customTotpTwofaccount, $twofaccounts->first());
+        $this->assertObjectEquals($this->customHotpTwofaccount, $twofaccounts->last());
+    }
+
     /**
     /**
      * @test
      * @test
      */
      */