mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2026-11-11 02:41:33 +00:00
[Web] API: complete the OpenAPI docs, add route tests for json_api.php
This commit is contained in:
47 files changed
+18848
-7491
No files matched your search
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Mailcow\Tests\Api\Mailboxes;
|
||||
|
||||
use Mailcow\Tests\Api\ApiTestCase;
|
||||
|
||||
/** Resources (rooms, equipment, groups) */
|
||||
class ResourceRoutesTest extends ApiTestCase
|
||||
{
|
||||
public function testAddResource(): void
|
||||
{
|
||||
$body = ['domain' => 'example.org', 'description' => 'Meeting Room 1', 'kind' => 'location', 'multiple_bookings' => 0, 'active' => 1];
|
||||
|
||||
$this->assertCalled($this->post('add/resource', $body), 'mailbox', ['add', 'resource', $body]);
|
||||
}
|
||||
|
||||
public function testGetAllResourcesWalksAllDomains(): void
|
||||
{
|
||||
$result = $this->get('get/resource/all', ['script' => [
|
||||
self::answer('mailbox', ['get', 'domains'], ['example.org', 'example.com']),
|
||||
self::answer('mailbox', ['get', 'resources', 'example.org'], ['room1@example.org', 'gone@example.org']),
|
||||
self::answer('mailbox', ['get', 'resource_details', 'room1@example.org'], ['name' => 'room1@example.org']),
|
||||
self::answer('mailbox', ['get', 'resource_details', 'gone@example.org'], false),
|
||||
]]);
|
||||
|
||||
$this->assertCalled($result, 'mailbox', ['get', 'resources', 'example.com']);
|
||||
$this->assertSame([['name' => 'room1@example.org']], $result->json());
|
||||
$this->assertSame('{}', $this->get('get/resource/all')->body);
|
||||
}
|
||||
|
||||
public function testGetOneResource(): void
|
||||
{
|
||||
$result = $this->get('get/resource/room1@example.org', ['script' => [self::answer('mailbox', ['get', 'resource_details'], ['name' => 'room1@example.org'])]]);
|
||||
|
||||
$this->assertSame([['get', 'resource_details', 'room1@example.org']], $result->callsTo('mailbox'));
|
||||
$this->assertSame(['name' => 'room1@example.org'], $result->json());
|
||||
}
|
||||
|
||||
public function testEditAndDeleteResources(): void
|
||||
{
|
||||
$edit = $this->post('edit/resource', ['items' => ['room1@example.org'], 'attr' => ['multiple_bookings' => -1]]);
|
||||
$this->assertCalled($edit, 'mailbox', ['edit', 'resource', ['name' => ['room1@example.org'], 'multiple_bookings' => -1]]);
|
||||
|
||||
$delete = $this->post('delete/resource', ['room1@example.org']);
|
||||
$this->assertCalled($delete, 'mailbox', ['delete', 'resource', ['name' => ['room1@example.org']]]);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user