From c397bb817b9956351875422971bcd03a327f8b34 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 12 Aug 2026 14:27:54 +1200 Subject: [PATCH] (fix): normalize reader output --- src/Migration/Sources/Appwrite/Reader/API.php | 13 ++--- .../Unit/Sources/AppwriteReaderApiTest.php | 47 +++++++++++++++++++ 2 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 tests/Migration/Unit/Sources/AppwriteReaderApiTest.php diff --git a/src/Migration/Sources/Appwrite/Reader/API.php b/src/Migration/Sources/Appwrite/Reader/API.php index a187e8c9..8079798e 100644 --- a/src/Migration/Sources/Appwrite/Reader/API.php +++ b/src/Migration/Sources/Appwrite/Reader/API.php @@ -155,14 +155,11 @@ public function listTables(Database $resource, array $queries = []): array */ public function listColumns(Table $resource, array $queries = []): array { - return \array_map( - fn ($column) => $column->toArray(), - $this->database->listColumns( - $resource->getDatabase()->getId(), - $resource->getId(), - $queries - )->columns - ); + return $this->database->listColumns( + $resource->getDatabase()->getId(), + $resource->getId(), + $queries + )->toArray()['columns']; } /** diff --git a/tests/Migration/Unit/Sources/AppwriteReaderApiTest.php b/tests/Migration/Unit/Sources/AppwriteReaderApiTest.php new file mode 100644 index 00000000..384bad63 --- /dev/null +++ b/tests/Migration/Unit/Sources/AppwriteReaderApiTest.php @@ -0,0 +1,47 @@ + 'title', + 'type' => 'string', + 'status' => 'available', + 'error' => '', + 'required' => true, + 'array' => false, + '$createdAt' => '2026-08-12T00:00:00.000+00:00', + '$updatedAt' => '2026-08-12T00:00:00.000+00:00', + 'size' => 255, + 'default' => null, + 'encrypt' => false, + ], + ]; + + $database = new Database('database', 'Database'); + $table = new Table($database, 'Table', 'table'); + + $tables = $this->createMock(TablesDB::class); + $tables + ->expects($this->once()) + ->method('listColumns') + ->with('database', 'table', []) + ->willReturn(ColumnList::from([ + 'total' => 1, + 'columns' => $columns, + ])); + + $this->assertSame($columns, (new API($tables))->listColumns($table)); + } +}