瀏覽代碼

Fix the TwoFAccount Export feature & add related tests

Bubka 2 年之前
父節點
當前提交
823acde49d
共有 2 個文件被更改,包括 37 次插入0 次删除
  1. 2 0
      app/Services/TwoFAccountService.php
  2. 35 0
      tests/Feature/Services/TwoFAccountServiceTest.php

+ 2 - 0
app/Services/TwoFAccountService.php

@@ -68,6 +68,8 @@ class TwoFAccountService
     public static function export($ids) : Collection
     {
         $ids          = Helpers::commaSeparatedToArray($ids);
+        $ids = is_array($ids) ? $ids : func_get_args();
+        
         $twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
 
         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);
     }
 
+    /**
+     * @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
      */