1
0
Fork 0
mirror of synced 2024-10-03 19:53:33 +13:00

tests and fixes

This commit is contained in:
Damodar Lohani 2023-03-14 07:21:56 +00:00
parent 16c708cd74
commit ae549a1e9a
6 changed files with 87 additions and 8 deletions

View file

@ -1800,9 +1800,10 @@ App::get('/v1/projects/:projectId/templates/email/:type/:locale')
$template = $templates['email.' . $type . '-' . $locale] ?? null; $template = $templates['email.' . $type . '-' . $locale] ?? null;
if (is_null($template)) { if (is_null($template)) {
$localeFormated = substr($locale, 0, 2);
$template = [ $template = [
'message' => Template::fromFile(__DIR__ . '/../../config/locale/templates/email-base.tpl'), 'message' => Template::fromFile(__DIR__ . '/../../config/locale/templates/email-base.tpl')->render(),
'subject' => (new Locale($locale))->getText('emails.' . $type . '.subject'), 'subject' => (new Locale($localeFormated))->getText('emails.' . $type . '.subject'),
'senderEmail' => App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', ''), 'senderEmail' => App::getEnv('_APP_SYSTEM_EMAIL_ADDRESS', ''),
'senderName' => App::getEnv('_APP_SYSTEM_EMAIL_NAME', '') 'senderName' => App::getEnv('_APP_SYSTEM_EMAIL_NAME', '')
]; ];

View file

@ -74,7 +74,7 @@ use Appwrite\Utopia\Response\Model\HealthVersion;
use Appwrite\Utopia\Response\Model\Mock; // Keep last use Appwrite\Utopia\Response\Model\Mock; // Keep last
use Appwrite\Utopia\Response\Model\Provider; use Appwrite\Utopia\Response\Model\Provider;
use Appwrite\Utopia\Response\Model\Runtime; use Appwrite\Utopia\Response\Model\Runtime;
use Appwrite\Utopia\Response\Model\Template; use Appwrite\Utopia\Response\Model\SmsTemplate;
use Appwrite\Utopia\Response\Model\UsageBuckets; use Appwrite\Utopia\Response\Model\UsageBuckets;
use Appwrite\Utopia\Response\Model\UsageCollection; use Appwrite\Utopia\Response\Model\UsageCollection;
use Appwrite\Utopia\Response\Model\UsageDatabase; use Appwrite\Utopia\Response\Model\UsageDatabase;
@ -345,7 +345,7 @@ class Response extends SwooleResponse
->setModel(new UsageFunctions()) ->setModel(new UsageFunctions())
->setModel(new UsageFunction()) ->setModel(new UsageFunction())
->setModel(new UsageProject()) ->setModel(new UsageProject())
->setModel(new Template()) ->setModel(new SmsTemplate())
->setModel(new EmailTemplate()) ->setModel(new EmailTemplate())
// Verification // Verification
// Recovery // Recovery

View file

@ -3,12 +3,12 @@
namespace Appwrite\Utopia\Response\Model; namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
class EmailTemplate extends Template class EmailTemplate extends Template
{ {
public function __construct() public function __construct()
{ {
parent::__construct();
$this $this
->addRule('senderName', [ ->addRule('senderName', [
'type' => self::TYPE_STRING, 'type' => self::TYPE_STRING,

View file

@ -3,10 +3,13 @@
namespace Appwrite\Utopia\Response\Model; namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response; use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model;
class SmsTemplate extends Model class SmsTemplate extends Template
{ {
public function __construct()
{
parent::__construct();
}
/** /**
* Get Name * Get Name
* *

View file

@ -2,7 +2,6 @@
namespace Appwrite\Utopia\Response\Model; namespace Appwrite\Utopia\Response\Model;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Model; use Appwrite\Utopia\Response\Model;
abstract class Template extends Model abstract class Template extends Model

View file

@ -18,6 +18,9 @@ class ProjectsConsoleClientTest extends Scope
use ProjectConsole; use ProjectConsole;
use SideClient; use SideClient;
/**
* @group smtpAndTemplates
*/
public function testCreateProject(): array public function testCreateProject(): array
{ {
/** /**
@ -430,6 +433,7 @@ class ProjectsConsoleClientTest extends Scope
} }
/** /**
* @group smtpAndTemplates
* @depends testCreateProject * @depends testCreateProject
*/ */
public function testUpdateProjectSMTP($data): array public function testUpdateProjectSMTP($data): array
@ -455,6 +459,78 @@ class ProjectsConsoleClientTest extends Scope
$this->assertEquals('emailuser', $response['body']['smtpUsername']); $this->assertEquals('emailuser', $response['body']['smtpUsername']);
$this->assertEquals('securepassword', $response['body']['smtpPassword']); $this->assertEquals('securepassword', $response['body']['smtpPassword']);
$this->assertEquals('', $response['body']['smtpSecure']); $this->assertEquals('', $response['body']['smtpSecure']);
/** Test Reading Project */
$response = $this->client->call(Client::METHOD_GET, '/projects/' . $id, array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()));
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertTrue($response['body']['smtpEnabled']);
$this->assertEquals('mailer@appwrite.io', $response['body']['smtpSender']);
$this->assertEquals('mail.appwrite.io', $response['body']['smtpHost']);
$this->assertEquals(25, $response['body']['smtpPort']);
$this->assertEquals('emailuser', $response['body']['smtpUsername']);
$this->assertEquals('securepassword', $response['body']['smtpPassword']);
$this->assertEquals('', $response['body']['smtpSecure']);
return $data;
}
/**
* @group smtpAndTemplates
* @depends testCreateProject */
public function testUpdateTemplates($data): array
{
$id = $data['projectId'];
/** Get Default Template */
$response = $this->client->call(Client::METHOD_GET, '/projects/' . $id . '/templates/email/verification/en_us', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()));
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals('Account Verification', $response['body']['subject']);
$this->assertEquals('Appwrite', $response['body']['senderName']);
$this->assertEquals('team@appwrite.io', $response['body']['senderEmail']);
$this->assertEquals('verification', $response['body']['type']);
$this->assertEquals('en_us', $response['body']['locale']);
$this->assertMatchesRegularExpression('/<!doctype html>/', $response['body']['message']);
/** Update template */
$response = $this->client->call(Client::METHOD_PATCH, '/projects/' . $id . '/templates/email/verification/en_us', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'subject' => 'Please verify your email',
'message' => 'Please verify your email {{url}}',
'senderName' => 'Appwrite Custom',
'senderEmail' => 'custom@appwrite.io',
]);
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals('Please verify your email', $response['body']['subject']);
$this->assertEquals('Appwrite Custom', $response['body']['senderName']);
$this->assertEquals('custom@appwrite.io', $response['body']['senderEmail']);
$this->assertEquals('verification', $response['body']['type']);
$this->assertEquals('en_us', $response['body']['locale']);
$this->assertEquals('Please verify your email {{url}}', $response['body']['message']);
/** Get Updated Template */
$response = $this->client->call(Client::METHOD_GET, '/projects/' . $id . '/templates/email/verification/en_us', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()));
$this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals('Please verify your email', $response['body']['subject']);
$this->assertEquals('Appwrite Custom', $response['body']['senderName']);
$this->assertEquals('custom@appwrite.io', $response['body']['senderEmail']);
$this->assertEquals('verification', $response['body']['type']);
$this->assertEquals('en_us', $response['body']['locale']);
$this->assertEquals('Please verify your email {{url}}', $response['body']['message']);
return $data; return $data;
} }