Add template integration tests

MAILPOET-6043
This commit is contained in:
Oluwaseun Olorunsola
2024-11-28 14:30:56 +01:00
committed by Rostislav Wolný
parent 0a87464b42
commit 5d6d7eba57
2 changed files with 144 additions and 0 deletions

View File

@ -0,0 +1,48 @@
<?php
/**
* This file is part of the MailPoet plugin.
*
* @package MailPoet\EmailEditor
*/
declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Templates;
/**
* Integration test for the Template Preview class
*/
class Template_Preview_Test extends \MailPoetTest {
/**
* Template preview.
*
* @var Template_Preview
*/
private Template_Preview $template_preview;
/**
* Set up before each test
*/
public function _before() {
parent::_before();
$this->template_preview = $this->di_container->get( Template_Preview::class );
}
/**
* Test it Generates CSS for preview of email theme
*
* @return void
*/
public function testItCanGetThemePreviewCss(): void {
$template_id = 'mailpoet/mailpoet//simple-light';
$result = $this->template_preview->get_email_theme_preview_css(
array(
'id' => $template_id,
'wp_id' => null,
)
);
verify( $result )->stringContainsString( 'Styles for the email editor.' );
verify( $result )->stringContainsString( 'is-layout-email-flex' );
verify( $result )->stringContainsString( '.is-root-container { width: 660px; margin: 0 auto; }' ); // Styles for both the email editor and renderer.
}
}

View File

@ -0,0 +1,96 @@
<?php
/**
* This file is part of the MailPoet plugin.
*
* @package MailPoet\EmailEditor
*/
declare(strict_types = 1);
namespace MailPoet\EmailEditor\Engine\Templates;
/**
* Integration test for the Templates class
*/
class Templates_Test extends \MailPoetTest {
/**
* Templates.
*
* @var Templates
*/
private Templates $templates;
/**
* Set up before each test
*/
public function _before() {
parent::_before();
$this->templates = $this->di_container->get( Templates::class );
$this->templates->initialize();
}
/**
* Test it can fetch block template
*
* @return void
*/
public function testItCanFetchBlockTemplate(): void {
$template_id = 'mailpoet/mailpoet//email-general';
$template = $this->templates->get_block_template( $template_id );
verify( $template->slug )->equals( 'email-general' );
verify( $template->id )->equals( 'mailpoet/mailpoet//email-general' );
verify( $template->title )->equals( 'General Email' );
verify( $template->description )->equals( 'A general template for emails.' );
}
/**
* Test is can fetch template theme
*
* @return void
*/
public function testItCanFetchTemplateTheme(): void {
$template_id = 'mailpoet/mailpoet//simple-light';
$theme = $this->templates->get_block_template_theme( $template_id );
verify( $theme )->arrayCount( 2 );
verify( $theme['styles'] )->isArray();
verify( $theme['styles']['spacing'] )->isArray();
verify( $theme['styles']['spacing']['blockGap'] )->equals( '10px' );
}
/**
* Test it can add block templates
*
* @return void
*/
public function testItCanAddBlockTemplates(): void {
$result = $this->templates->add_block_templates( array(), array( 'post_type' => 'mailpoet_email' ), 'wp_template' );
verify( $result )->arrayCount( 2 );
verify( $result[0]->content )->notEmpty();
verify( $result[1]->content )->notEmpty();
}
/**
* Test it can add and update block template details.
*
* @return void
*/
public function testItCanAddBlockTemplateDetails(): void {
// add_block_template_details.
$basic_template = new \WP_Block_Template();
$basic_template->slug = 'simple-light';
// confirm it has no title or description.
verify( $basic_template->title )->equals( '' );
verify( $basic_template->description )->equals( '' );
$result = $this->templates->add_block_template_details( $basic_template );
// confirm template was updated.
verify( $basic_template->title )->equals( 'Simple Light' );
verify( $basic_template->description )->equals( 'A basic template with header and footer.' );
verify( $result )->equals( $basic_template );
}
}