adds graphql test cases for provider endpoints
This commit is contained in:
parent
80a19f9862
commit
fb98d21ae5
5 changed files with 520 additions and 37 deletions
|
@ -445,7 +445,7 @@ App::post('/v1/messaging/providers/fcm')
|
|||
->label('scope', 'providers.write')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.namespace', 'messaging')
|
||||
->label('sdk.method', 'createFCMProvider')
|
||||
->label('sdk.method', 'createFcmProvider')
|
||||
->label('sdk.description', '/docs/references/messaging/create-fcm-provider.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
|
@ -501,7 +501,7 @@ App::post('/v1/messaging/providers/apns')
|
|||
->label('scope', 'providers.write')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.namespace', 'messaging')
|
||||
->label('sdk.method', 'createAPNSProvider')
|
||||
->label('sdk.method', 'createApnsProvider')
|
||||
->label('sdk.description', '/docs/references/messaging/create-apns-provider.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
|
@ -1048,7 +1048,7 @@ App::patch('/v1/messaging/providers/fcm/:id')
|
|||
->label('scope', 'providers.write')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.namespace', 'messaging')
|
||||
->label('sdk.method', 'updateFCMProvider')
|
||||
->label('sdk.method', 'updateFcmProvider')
|
||||
->label('sdk.description', '/docs/references/messaging/update-fcm-provider.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
|
@ -1099,7 +1099,7 @@ App::patch('/v1/messaging/providers/apns/:id')
|
|||
->label('scope', 'providers.write')
|
||||
->label('sdk.auth', [APP_AUTH_TYPE_ADMIN, APP_AUTH_TYPE_KEY])
|
||||
->label('sdk.namespace', 'messaging')
|
||||
->label('sdk.method', 'updateAPNSProvider')
|
||||
->label('sdk.method', 'updateApnsProvider')
|
||||
->label('sdk.description', '/docs/references/messaging/update-apns-provider.md')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_OK)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
|
|
|
@ -133,7 +133,7 @@ class AccountTest extends Scope
|
|||
}
|
||||
|
||||
$projectId = $this->getProject()['$id'];
|
||||
$query = $this->getQuery(self::$CREATE_PROVIDER);
|
||||
$query = $this->getQuery(self::$CREATE_MSG91_PROVIDER);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => [
|
||||
|
|
|
@ -197,6 +197,29 @@ trait Base
|
|||
public static string $GET_QRCODE = 'get_qrcode';
|
||||
public static string $GET_USER_INITIALS = 'get_user_initials';
|
||||
|
||||
// Providers
|
||||
public static string $CREATE_MAILGUN_PROVIDER = 'create_mailgun_provider';
|
||||
public static string $CREATE_SENDGRID_PROVIDER = 'create_sendgrid_provider';
|
||||
public static string $CREATE_TWILIO_PROVIDER = 'create_twilio_provider';
|
||||
public static string $CREATE_TELESIGN_PROVIDER = 'create_telesign_provider';
|
||||
public static string $CREATE_TEXTMAGIC_PROVIDER = 'create_textmagic_provider';
|
||||
public static string $CREATE_MSG91_PROVIDER = 'create_msg91_provider';
|
||||
public static string $CREATE_VONAGE_PROVIDER = 'create_vonage_provider';
|
||||
public static string $CREATE_FCM_PROVIDER = 'create_fcm_provider';
|
||||
public static string $CREATE_APNS_PROVIDER = 'create_apns_provider';
|
||||
public static string $LIST_PROVIDERS = 'list_providers';
|
||||
public static string $GET_PROVIDER = 'get_provider';
|
||||
public static string $UPDATE_MAILGUN_PROVIDER = 'update_mailgun_provider';
|
||||
public static string $UPDATE_SENDGRID_PROVIDER = 'update_sendgrid_provider';
|
||||
public static string $UPDATE_TWILIO_PROVIDER = 'update_twilio_provider';
|
||||
public static string $UPDATE_TELESIGN_PROVIDER = 'update_telesign_provider';
|
||||
public static string $UPDATE_TEXTMAGIC_PROVIDER = 'update_textmagic_provider';
|
||||
public static string $UPDATE_MSG91_PROVIDER = 'update_msg91_provider';
|
||||
public static string $UPDATE_VONAGE_PROVIDER = 'update_vonage_provider';
|
||||
public static string $UPDATE_FCM_PROVIDER = 'update_fcm_provider';
|
||||
public static string $UPDATE_APNS_PROVIDER = 'update_apns_provider';
|
||||
public static string $DELETE_PROVIDER = 'delete_provider';
|
||||
|
||||
// Complex queries
|
||||
public static string $COMPLEX_QUERY = 'complex_query';
|
||||
|
||||
|
@ -296,8 +319,6 @@ trait Base
|
|||
}
|
||||
';
|
||||
|
||||
public static string $CREATE_PROVIDER = 'create_provider';
|
||||
|
||||
public function getQuery(string $name): string
|
||||
{
|
||||
switch ($name) {
|
||||
|
@ -1688,6 +1709,235 @@ trait Base
|
|||
status
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_MAILGUN_PROVIDER:
|
||||
return 'mutation createMailgunProvider($providerId: String!, $name: String!, $domain: String!, $apiKey: String!, $from: String!) {
|
||||
messagingCreateMailgunProvider(providerId: $providerId, name: $name, domain: $domain, apiKey: $apiKey, from: $from) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_SENDGRID_PROVIDER:
|
||||
return 'mutation createSendgridProvider($providerId: String!, $name: String!, $apiKey: String!) {
|
||||
messagingCreateSendgridProvider(providerId: $providerId, name: $name, apiKey: $apiKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_TWILIO_PROVIDER:
|
||||
return 'mutation createTwilioProvider($providerId: String!, $name: String!, $accountSid: String!, $authToken: String!) {
|
||||
messagingCreateTwilioProvider(providerId: $providerId, name: $name, accountSid: $accountSid, authToken: $authToken) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_TELESIGN_PROVIDER:
|
||||
return 'mutation createTelesignProvider($providerId: String!, $name: String!, $username: String!, $password: String!) {
|
||||
messagingCreateTelesignProvider(providerId: $providerId, name: $name, username: $username, password: $password) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_TEXTMAGIC_PROVIDER:
|
||||
return 'mutation createTextmagicProvider($providerId: String!, $name: String!, $username: String!, $apiKey: String!) {
|
||||
messagingCreateTextmagicProvider(providerId: $providerId, name: $name, username: $username, apiKey: $apiKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_MSG91_PROVIDER:
|
||||
return 'mutation createMsg91Provider($providerId: String!, $name: String!, $from: String!, $senderId: String!, $authKey: String!, $default: Boolean, $enabled: Boolean) {
|
||||
messagingCreateMsg91Provider(providerId: $providerId, name: $name, from: $from, senderId: $senderId, authKey: $authKey, default: $default, enabled: $enabled) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_VONAGE_PROVIDER:
|
||||
return 'mutation createVonageProvider($providerId: String!, $name: String!, $apiKey: String!, $apiSecret: String!) {
|
||||
messagingCreateVonageProvider(providerId: $providerId, name: $name, apiKey: $apiKey, apiSecret: $apiSecret) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_FCM_PROVIDER:
|
||||
return 'mutation createFcmProvider($providerId: String!, $name: String!, $serverKey: String!) {
|
||||
messagingCreateFcmProvider(providerId: $providerId, name: $name, serverKey: $serverKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$CREATE_APNS_PROVIDER:
|
||||
return 'mutation createApnsProvider($providerId: String!, $name: String!, $authKey: String!, $authKeyId: String!, $teamId: String!, $bundleId: String!, $endpoint: String!) {
|
||||
messagingCreateApnsProvider(providerId: $providerId, name: $name, authKey: $authKey, authKeyId: $authKeyId, teamId: $teamId, bundleId: $bundleId, endpoint: $endpoint) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$LIST_PROVIDERS:
|
||||
return 'query listProviders {
|
||||
messagingListProviders {
|
||||
total
|
||||
providers {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}
|
||||
}';
|
||||
case self::$GET_PROVIDER:
|
||||
return 'query getProvider($id: String!) {
|
||||
messagingGetProvider(id: $id) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_MAILGUN_PROVIDER:
|
||||
return 'mutation updateMailgunProvider($id: String!, $name: String!, $domain: String!, $apiKey: String!, $isEuRegion: Boolean, $enabled: Boolean) {
|
||||
messagingUpdateMailgunProvider(id: $id, name: $name, domain: $domain, apiKey: $apiKey, isEuRegion: $isEuRegion, enabled: $enabled) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_SENDGRID_PROVIDER:
|
||||
return 'mutation messagingUpdateSendgridProvider($id: String!, $name: String!, $apiKey: String!) {
|
||||
messagingUpdateSendgridProvider(id: $id, name: $name, apiKey: $apiKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_TWILIO_PROVIDER:
|
||||
return 'mutation updateTwilioProvider($id: String!, $name: String!, $accountSid: String!, $authToken: String!) {
|
||||
messagingUpdateTwilioProvider(id: $id, name: $name, accountSid: $accountSid, authToken: $authToken) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_TELESIGN_PROVIDER:
|
||||
return 'mutation updateTelesignProvider($id: String!, $name: String!, $username: String!, $password: String!) {
|
||||
messagingUpdateTelesignProvider(id: $id, name: $name, username: $username, password: $password) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_TEXTMAGIC_PROVIDER:
|
||||
return 'mutation updateTextmagicProvider($id: String!, $name: String!, $username: String!, $apiKey: String!) {
|
||||
messagingUpdateTextmagicProvider(id: $id, name: $name, username: $username, apiKey: $apiKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_MSG91_PROVIDER:
|
||||
return 'mutation updateMsg91Provider($id: String!, $name: String!, $senderId: String!, $authKey: String!) {
|
||||
messagingUpdateMsg91Provider(id: $id, name: $name, senderId: $senderId, authKey: $authKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_VONAGE_PROVIDER:
|
||||
return 'mutation updateVonageProvider($id: String!, $name: String!, $apiKey: String!, $apiSecret: String!) {
|
||||
messagingUpdateVonageProvider(id: $id, name: $name, apiKey: $apiKey, apiSecret: $apiSecret) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_FCM_PROVIDER:
|
||||
return 'mutation updateFcmProvider($id: String!, $name: String!, $serverKey: String!) {
|
||||
messagingUpdateFcmProvider(id: $id, name: $name, serverKey: $serverKey) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$UPDATE_APNS_PROVIDER:
|
||||
return 'mutation updateApnsProvider($id: String!, $name: String!, $authKey: String!, $authKeyId: String!, $teamId: String!, $bundleId: String!, $endpoint: String!) {
|
||||
messagingUpdateApnsProvider(id: $id, name: $name, authKey: $authKey, authKeyId: $authKeyId, teamId: $teamId, bundleId: $bundleId, endpoint: $endpoint) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
case self::$DELETE_PROVIDER:
|
||||
return 'mutation deleteProvider($id: String!) {
|
||||
messagingDeleteProvider(id: $id) {
|
||||
status
|
||||
}
|
||||
}';
|
||||
case self::$COMPLEX_QUERY:
|
||||
return 'mutation complex($databaseId: String!, $databaseName: String!, $collectionId: String!, $collectionName: String!, $documentSecurity: Boolean!, $collectionPermissions: [String!]!) {
|
||||
databasesCreate(databaseId: $databaseId, name: $databaseName) {
|
||||
|
@ -1931,33 +2181,6 @@ trait Base
|
|||
}
|
||||
}
|
||||
}' . PHP_EOL . self::$FRAGMENT_ATTRIBUTES;
|
||||
case self::$CREATE_PROVIDER:
|
||||
return 'mutation createProviderMsg91(
|
||||
$providerId: String!,
|
||||
$name: String!,
|
||||
$from: String!,
|
||||
$senderId: String!,
|
||||
$authKey: String!
|
||||
$default: Boolean,
|
||||
$enabled: Boolean,
|
||||
) {
|
||||
messagingCreateProviderMsg91(
|
||||
providerId: $providerId,
|
||||
name: $name,
|
||||
from: $from,
|
||||
senderId: $senderId,
|
||||
authKey: $authKey
|
||||
default: $default,
|
||||
enabled: $enabled,
|
||||
) {
|
||||
_id
|
||||
name
|
||||
provider
|
||||
type
|
||||
default
|
||||
enabled
|
||||
}
|
||||
}';
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('Invalid query type');
|
||||
|
|
260
tests/e2e/Services/GraphQL/MessagingTest.php
Normal file
260
tests/e2e/Services/GraphQL/MessagingTest.php
Normal file
|
@ -0,0 +1,260 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\E2E\Services\GraphQL;
|
||||
|
||||
use Tests\E2E\Client;
|
||||
use Tests\E2E\Scopes\ProjectCustom;
|
||||
use Tests\E2E\Scopes\Scope;
|
||||
use Tests\E2E\Scopes\SideServer;
|
||||
use Utopia\Database\Helpers\ID;
|
||||
|
||||
class MessagingTest extends Scope
|
||||
{
|
||||
use ProjectCustom;
|
||||
use SideServer;
|
||||
use Base;
|
||||
|
||||
public function testCreateProviders()
|
||||
{
|
||||
$providersParams = [
|
||||
'Sendgrid' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Sengrid1',
|
||||
'apiKey' => 'my-apikey',
|
||||
],
|
||||
'Mailgun' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Mailgun1',
|
||||
'apiKey' => 'my-apikey',
|
||||
'domain' => 'my-domain',
|
||||
'from' => 'sender-email@my-domain',
|
||||
],
|
||||
'Twilio' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Twilio1',
|
||||
'accountSid' => 'my-accountSid',
|
||||
'authToken' => 'my-authToken',
|
||||
],
|
||||
'Telesign' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Telesign1',
|
||||
'username' => 'my-username',
|
||||
'password' => 'my-password',
|
||||
],
|
||||
'Textmagic' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Textmagic1',
|
||||
'username' => 'my-username',
|
||||
'apiKey' => 'my-apikey',
|
||||
],
|
||||
'Msg91' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Ms91-1',
|
||||
'senderId' => 'my-senderid',
|
||||
'authKey' => 'my-authkey',
|
||||
'from' => '+123456789'
|
||||
],
|
||||
'Vonage' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'Vonage1',
|
||||
'apiKey' => 'my-apikey',
|
||||
'apiSecret' => 'my-apisecret',
|
||||
],
|
||||
'Fcm' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'FCM1',
|
||||
'serverKey' => 'my-serverkey',
|
||||
],
|
||||
'Apns' => [
|
||||
'providerId' => ID::unique(),
|
||||
'name' => 'APNS1',
|
||||
'authKey' => 'my-authkey',
|
||||
'authKeyId' => 'my-authkeyid',
|
||||
'teamId' => 'my-teamid',
|
||||
'bundleId' => 'my-bundleid',
|
||||
'endpoint' => 'my-endpoint',
|
||||
],
|
||||
];
|
||||
|
||||
$providers = [];
|
||||
|
||||
foreach (\array_keys($providersParams) as $key) {
|
||||
$query = $this->getQuery('create_' . \strtolower($key) . '_provider');
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => $providersParams[$key],
|
||||
];
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', \array_merge([
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
]), $graphQLPayload);
|
||||
\array_push($providers, $response['body']['data']['messagingCreate' . $key . 'Provider']);
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($providersParams[$key]['name'], $response['body']['data']['messagingCreate' . $key . 'Provider']['name']);
|
||||
}
|
||||
|
||||
return $providers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testCreateProviders
|
||||
*/
|
||||
public function testUpdateProviders(array $providers): array
|
||||
{
|
||||
$providersParams = [
|
||||
'Sendgrid' => [
|
||||
'id' => $providers[0]['_id'],
|
||||
'name' => 'Sengrid2',
|
||||
'apiKey' => 'my-apikey',
|
||||
],
|
||||
'Mailgun' => [
|
||||
'id' => $providers[1]['_id'],
|
||||
'name' => 'Mailgun2',
|
||||
'apiKey' => 'my-apikey',
|
||||
'domain' => 'my-domain',
|
||||
],
|
||||
'Twilio' => [
|
||||
'id' => $providers[2]['_id'],
|
||||
'name' => 'Twilio2',
|
||||
'accountSid' => 'my-accountSid',
|
||||
'authToken' => 'my-authToken',
|
||||
],
|
||||
'Telesign' => [
|
||||
'id' => $providers[3]['_id'],
|
||||
'name' => 'Telesign2',
|
||||
'username' => 'my-username',
|
||||
'password' => 'my-password',
|
||||
],
|
||||
'Textmagic' => [
|
||||
'id' => $providers[4]['_id'],
|
||||
'name' => 'Textmagic2',
|
||||
'username' => 'my-username',
|
||||
'apiKey' => 'my-apikey',
|
||||
],
|
||||
'Msg91' => [
|
||||
'id' => $providers[5]['_id'],
|
||||
'name' => 'Ms91-2',
|
||||
'senderId' => 'my-senderid',
|
||||
'authKey' => 'my-authkey',
|
||||
],
|
||||
'Vonage' => [
|
||||
'id' => $providers[6]['_id'],
|
||||
'name' => 'Vonage2',
|
||||
'apiKey' => 'my-apikey',
|
||||
'apiSecret' => 'my-apisecret',
|
||||
],
|
||||
'Fcm' => [
|
||||
'id' => $providers[7]['_id'],
|
||||
'name' => 'FCM2',
|
||||
'serverKey' => 'my-serverkey',
|
||||
],
|
||||
'Apns' => [
|
||||
'id' => $providers[8]['_id'],
|
||||
'name' => 'APNS2',
|
||||
'authKey' => 'my-authkey',
|
||||
'authKeyId' => 'my-authkeyid',
|
||||
'teamId' => 'my-teamid',
|
||||
'bundleId' => 'my-bundleid',
|
||||
'endpoint' => 'my-endpoint',
|
||||
],
|
||||
];
|
||||
foreach (\array_keys($providersParams) as $index => $key) {
|
||||
$query = $this->getQuery('update_' . \strtolower($key) . '_provider');
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => $providersParams[$key],
|
||||
];
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $graphQLPayload);
|
||||
$providers[$index] = $response['body']['data']['messagingUpdate' . $key . 'Provider'];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($providersParams[$key]['name'], $response['body']['data']['messagingUpdate' . $key . 'Provider']['name']);
|
||||
}
|
||||
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], [
|
||||
'query' => $this->getQuery('update_mailgun_provider'),
|
||||
'variables' => [
|
||||
'id' => $providers[1]['_id'],
|
||||
'name' => 'Mailgun2',
|
||||
'apiKey' => 'my-apikey',
|
||||
'domain' => 'my-domain',
|
||||
'isEuRegion' => true,
|
||||
'enabled' => false,
|
||||
]
|
||||
]);
|
||||
$providers[1] = $response['body']['data']['messagingUpdateMailgunProvider'];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals('Mailgun2', $response['body']['data']['messagingUpdateMailgunProvider']['name']);
|
||||
$this->assertEquals(false, $response['body']['data']['messagingUpdateMailgunProvider']['enabled']);
|
||||
return $providers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testUpdateProviders
|
||||
*/
|
||||
public function testListProviders(array $providers)
|
||||
{
|
||||
$query = $this->getQuery(self::$LIST_PROVIDERS);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
];
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $graphQLPayload);
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals(\count($providers), \count($response['body']['data']['messagingListProviders']['providers']));
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testUpdateProviders
|
||||
*/
|
||||
public function testGetProvider(array $providers)
|
||||
{
|
||||
$query = $this->getQuery(self::$GET_PROVIDER);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => [
|
||||
'id' => $providers[0]['_id'],
|
||||
]
|
||||
];
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $graphQLPayload);
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($providers[0]['name'], $response['body']['data']['messagingGetProvider']['name']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends testUpdateProviders
|
||||
*/
|
||||
public function testDeleteProvider(array $providers)
|
||||
{
|
||||
foreach ($providers as $provider) {
|
||||
$query = $this->getQuery(self::$DELETE_PROVIDER);
|
||||
$graphQLPayload = [
|
||||
'query' => $query,
|
||||
'variables' => [
|
||||
'id' => $provider['_id'],
|
||||
]
|
||||
];
|
||||
$response = $this->client->call(Client::METHOD_POST, '/graphql', [
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $graphQLPayload);
|
||||
$this->assertEquals(204, $response['headers']['status-code']);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -76,9 +76,9 @@ trait MessagingBase
|
|||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
]), $providersParams[$key]);
|
||||
\array_push($providers, $response['body']);
|
||||
$this->assertEquals(201, $response['headers']['status-code']);
|
||||
$this->assertEquals($providersParams[$key]['name'], $response['body']['name']);
|
||||
\array_push($providers, $response['body']);
|
||||
}
|
||||
|
||||
return $providers;
|
||||
|
@ -143,9 +143,9 @@ trait MessagingBase
|
|||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], $providersParams[$key]);
|
||||
$providers[$index] = $response['body'];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals($providersParams[$key]['name'], $response['body']['name']);
|
||||
$providers[$index] = $response['body'];
|
||||
}
|
||||
|
||||
$response = $this->client->call(Client::METHOD_PATCH, '/messaging/providers/mailgun/' . $providers[1]['$id'], [
|
||||
|
@ -159,10 +159,10 @@ trait MessagingBase
|
|||
'isEuRegion' => true,
|
||||
'enabled' => false,
|
||||
]);
|
||||
$providers[1] = $response['body'];
|
||||
$this->assertEquals(200, $response['headers']['status-code']);
|
||||
$this->assertEquals('Mailgun2', $response['body']['name']);
|
||||
$this->assertEquals(false, $response['body']['enabled']);
|
||||
$providers[1] = $response['body'];
|
||||
return $providers;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue