fixtures suck
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Migrations\AbstractMigration;
|
||||
|
||||
class AlterContactUsFormSubmissionsKeywords extends AbstractMigration {
|
||||
|
||||
/**
|
||||
* up Method.
|
||||
*
|
||||
* More information on this method is available here:
|
||||
* https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void {
|
||||
$table = $this->table('contact_us_form_submissions');
|
||||
if ($table->hasColumn('subject')) {
|
||||
$table->renameColumn('subject', 'contact_subject');
|
||||
}
|
||||
if ($table->hasColumn('name')) {
|
||||
$table->renameColumn('name', 'first_name');
|
||||
}
|
||||
$table->addColumn('last_name', 'string', [
|
||||
'limit' => 255,
|
||||
'default' => null,
|
||||
'null' => true,
|
||||
]);
|
||||
$table->update();
|
||||
}
|
||||
|
||||
/**
|
||||
* down Method.
|
||||
*
|
||||
* More information on this method is available here:
|
||||
* https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
|
||||
* @return void
|
||||
*/
|
||||
public function down(): void {
|
||||
$table = $this->table('contact_us_form_submissions');
|
||||
if ($table->hasColumn('contact_subject')) {
|
||||
$table->renameColumn('contact_subject', 'subject');
|
||||
}
|
||||
if ($table->hasColumn('fist_name')) {
|
||||
$table->renameColumn('fist_name', 'name');
|
||||
}
|
||||
$table->removeColumn('last_name');
|
||||
$table->update();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,11 +8,12 @@
|
||||
<php>
|
||||
<ini name="memory_limit" value="-1"/>
|
||||
<ini name="apc.enable_cli" value="1"/>
|
||||
<env name="FIXTURE_SCHEMA_METADATA" value="tests/schema.php"/>
|
||||
</php>
|
||||
|
||||
<!-- Add any additional test suites you want to run here -->
|
||||
<testsuites>
|
||||
<testsuite name="CakeContactUs">
|
||||
<testsuite name="CakeConctactUs">
|
||||
<directory>tests/TestCase/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
@@ -13,7 +13,7 @@ use Cake\ORM\Entity;
|
||||
* @property string $client_ip
|
||||
* @property string $name
|
||||
* @property string|null $email
|
||||
* @property string|null $subject
|
||||
* @property string|null $contact_subject
|
||||
* @property string $message
|
||||
* @property \Cake\I18n\DateTime|null $confirm_email_sent
|
||||
* @property \Cake\I18n\DateTime|null $backend_email_sent
|
||||
@@ -34,7 +34,7 @@ class ContactUsFormSubmission extends Entity {
|
||||
'client_ip' => true,
|
||||
'name' => true,
|
||||
'email' => true,
|
||||
'subject' => true,
|
||||
'contact_subject' => true,
|
||||
'message' => true,
|
||||
'confirm_email_sent' => true,
|
||||
'backend_email_sent' => true,
|
||||
|
||||
@@ -82,14 +82,14 @@ class ContactUsFormSubmissionsTable extends Table {
|
||||
$validator->allowEmptyString('email');
|
||||
}
|
||||
|
||||
// subject
|
||||
// contact_subject
|
||||
$validator
|
||||
->scalar('subject')
|
||||
->maxLength('subject', 255);
|
||||
->scalar('contact_subject')
|
||||
->maxLength('contact_subject', 255);
|
||||
if ($fields['subject'] ?? false) {
|
||||
$validator->notEmptyString('subject');
|
||||
$validator->notEmptyString('contact_subject');
|
||||
} else {
|
||||
$validator->allowEmptyString('subject');
|
||||
$validator->allowEmptyString('contact_subject');
|
||||
}
|
||||
|
||||
$validator
|
||||
|
||||
@@ -10,25 +10,15 @@ use Cake\TestSuite\Fixture\TestFixture;
|
||||
*/
|
||||
class ContactUsFormSubmissionsFixture extends TestFixture {
|
||||
|
||||
public string $table = 'contact_us_form_submissions';
|
||||
|
||||
/**
|
||||
* Init method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function init(): void {
|
||||
$this->records = [
|
||||
[
|
||||
'id' => '76fbe7fb-1949-4670-a3d2-c0b48eb98e8d',
|
||||
'submitted_at' => '2025-01-03 09:16:50',
|
||||
'client_ip' => 'Lorem ipsum dolor sit amet',
|
||||
'name' => 'Lorem ipsum dolor sit amet',
|
||||
'email' => 'Lorem ipsum dolor sit amet',
|
||||
'subject' => 'Lorem ipsum dolor sit amet',
|
||||
'message' => 'Lorem ipsum dolor sit amet, aliquet feugiat. Convallis morbi fringilla gravida, phasellus feugiat dapibus velit nunc, pulvinar eget sollicitudin venenatis cum nullam, vivamus ut a sed, mollitia lectus. Nulla vestibulum massa neque ut et, id hendrerit sit, feugiat in taciti enim proin nibh, tempor dignissim, rhoncus duis vestibulum nunc mattis convallis.',
|
||||
'confirm_email_sent' => '2025-01-03 09:16:50',
|
||||
'backend_email_sent' => '2025-01-03 09:16:50',
|
||||
],
|
||||
];
|
||||
$this->records = [];
|
||||
parent::init();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ use CakeContactUs\Model\Entity\ContactUsFormSubmission;
|
||||
class ContactUsComponentTest extends TestCase {
|
||||
|
||||
protected ContactUsComponent $component;
|
||||
|
||||
protected Controller $controller;
|
||||
|
||||
/**
|
||||
@@ -52,19 +53,25 @@ class ContactUsComponentTest extends TestCase {
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
public function testNewContactUsFormWithoutCaptcha()
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testNewContactUsFormWithoutCaptcha() {
|
||||
$this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
|
||||
}
|
||||
|
||||
public function testNewContactUsFormWithCaptcha()
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testNewContactUsFormWithCaptcha() {
|
||||
$this->component->setConfig('requireCaptcha', true);
|
||||
$this->assertInstanceOf(ContactUsFormSubmission::class, $this->component->newContactUsForm());
|
||||
}
|
||||
|
||||
public function testProcessContactUsFormSaved()
|
||||
{
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testProcessContactUsFormSaved() {
|
||||
$numSubmissionsBefore = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
|
||||
$result = $this->component->processContactUsForm($this->component->newContactUsForm(), [
|
||||
'name' => 'Jane Doe',
|
||||
@@ -74,4 +81,5 @@ class ContactUsComponentTest extends TestCase {
|
||||
$numSubmissionsAfter = $this->fetchTable('CakeContactUs/ContactUsFormSubmissions')->find()->count();
|
||||
$this->assertEquals($numSubmissionsBefore + 1, $numSubmissionsAfter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -141,6 +141,7 @@ ConnectionManager::setConfig('test', [
|
||||
'timezone' => 'UTC',
|
||||
'quoteIdentifiers' => false,
|
||||
'cacheMetadata' => true,
|
||||
'log' => true,
|
||||
]);
|
||||
|
||||
/**
|
||||
@@ -165,7 +166,11 @@ if (!defined('SECOND')) {
|
||||
define('YEAR', 31536000);
|
||||
}
|
||||
|
||||
|
||||
$migrator = new Migrator();
|
||||
$migrator->run(['plugin' => 'CakeContactUs']);
|
||||
$migrator->run(['plugin' => 'Captcha']);
|
||||
$migrator->runMany([
|
||||
// Run app migrations on test connection.
|
||||
['connection' => 'test'],
|
||||
// Run plugin migrations on test connection.
|
||||
['plugin' => 'CakeContactUs'],
|
||||
['plugin' => 'Captcha'],
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user