Rostislav Wolny
bb7ab59ed5
Improve readability of scheduler code
...
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00
Rostislav Wolny
07221d9c68
Get rid of unnecessary parameter in the Scheduler
...
The fromTimestamp parameter was used only in tests.
This commit replaces the parameter in tests by mocks and removes it.
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00
Rostislav Wolny
506652bdc4
Fix scheduling post notifications
...
The user picks time in a select box, and we expect they pick a time
in the site's timezone so the saved cron expression is in the site's timezone.
When we calculate the next run date, we do it in the site's timezone and
to get UTC time, we convert it.
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00
Rostislav Wolny
5fdba0e170
Replace current_time usage in tests
...
[MAILPOET-6142]
2024-08-19 15:29:42 +02:00
Rostislav Wolny
e1f38f3b83
Address offset issue in time comparison in AutomationEmailScheduler
...
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
8a0bd75cb1
Limit scheduled tasks fetching by automation run createdAt
...
This is a performance optimization to avoid fetching too many scheduled task rows.
Run is always created before the scheduled task which is created in send action step.
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Rostislav Wolny
e5ab65f28e
Fix send action checkSendingStatus to support multiple emails per subscriber.
...
It is possible that one email (e.g., purchase in category) is sent multiple times
to the same subscriber.
AutomationEmailScheduler::getScheduledTaskSubscriber was selecting the task based on subscriber and newsletter.
In the case of multiple emails sent to one subscriber, the method failed to pick ScheduledTaskSubsrciberEntity because
the query was fetching multiple results, but getOneOrNullResult expects only one result.
This commit fixes it by adding additional filtering by $runId to get the ScheduledTaskSubsriberEntity associated
with the correct run.
I did the filtering in PHP because an alternative would be using LIKE %% in the query. The meta column is text.
[MAILPOET-6155]
2024-08-07 16:01:48 +02:00
Mike Jolley
0d6fe6e5eb
Apply rules to tests and tasks
2024-03-21 16:57:59 +01:00
Rodrigo Primo
6f5e22c54c
Refactor WelcomeTest to use Doctrine instead of Sending
...
[MAILPOET-5684]
2024-01-31 12:21:54 +01:00
Jan Lysý
f1ffc77bf3
Set SendingQueue default counts for welcome emails
...
After performance optimization in Sending::updateCount() there was a bug when the min function set processed count back to zero.
[MAILPOET-5719]
2023-12-04 16:04:11 +01:00
Jan Lysý
941abc328a
Set SendingQueue default counts for automatic emails
...
After performance optimization in Sending::updateCount() there was a bug when the min function set processed count back to zero.
[MAILPOET-5719]
2023-12-04 16:04:11 +01:00
Jan Jakes
b42d579b67
Remove usages of MailPoet\Tasks\Sending from welcome scheduler
...
[MAILPOET-4375]
2023-11-02 12:53:36 +01:00
Jan Jakes
bb29f25c40
Remove simple usages of MailPoet\Tasks\Sending from integration tests
...
[MAILPOET-4375]
2023-11-02 12:53:36 +01:00
Rodrigo Primo
eb8351f964
Replace verify()->equals() with verify->equalsWithDelta()
...
The second parameter of expect()->equals() could be a integer and in
this case it would be used as a delta when comparing the values.
verify()->equals() does not accept that and verify()->equalsWithDelta()
should be used.
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
a54e1f3c01
Replace expect()->greaterOrEquals() with verify()->greaterThanOrEqual()
...
codeception/verify 2.1 removed support for expect()->greaterOrEquals() so we need
to replace it with verify()->greaterThanOrEqual().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
525495409c
Replace expect()->notNull() with verify()->notNull()
...
codeception/verify 2.1 removed support for expect()->notNull() so we need
to replace it with verify()->notNull().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
9b56fdc688
Replace expect()->count() with verify()->arrayCount()
...
codeception/verify 2.1 removed support for expect()->count() so we need
to replace it with verify()->arrayCount().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
e4136fee8c
Replace expect()->isEmpty() with verify()->empty()
...
codeception/verify 2.1 removed support for expect()->isEmpty() so we need
to replace it with verify()->empty().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
709be1d541
Replace expect()->null() with verify()->null()
...
codeception/verify 2.1 removed support for expect()->null() so we need
to replace it with verify()->null().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
997f635d4a
Replace expect()->false() with verify()->false()
...
codeception/verify 2.1 removed support for expect()->false() so we need
to replace it with verify()->false().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
Rodrigo Primo
afe378ba22
Replace expect()->equals() with verify()->equals()
...
codeception/verify 2.1 removed support for expect()->equals() so we need
to replace it with verify()->equals().
[MAILPOET-5664]
2023-10-24 08:58:22 +03:00
John Oleksowicz
c09409e1de
Replace manual option field creation with factory
...
MAILPOET-5161
2023-10-23 17:40:54 +02:00
David Remer
47a604d2c5
Take into account that the newsletter is scheduled at 5:45 and not 5:00
...
[MAILPOET-5528]
2023-08-15 11:47:31 +02:00
Jan Lysý
f5a2088000
Add test cases for minute scheduling
...
[MAILPOET-5244]
2023-04-19 15:32:28 +02:00
Jan Jakes
b296e40077
Extract Carbon datetime reset to test bootstrap
...
MAILPOET-5145
2023-04-07 12:11:12 -05:00
John Oleksowicz
cd0b795ac8
Extract customer creation/cleanup
...
This also ensures that cleanup always runs after all integration tests
MAILPOET-5145
2023-04-07 12:11:12 -05:00
John Oleksowicz
c75bc388c9
Remove unnecessary cleanup code
...
MAILPOET-5145
2023-04-07 12:11:12 -05:00
Jan Jakes
82aeb89854
Use strict types in tests
...
[MAILPOET-2688]
2022-11-29 15:04:09 +01:00
David Remer
7db40b27b5
Fix errors automatically with phpcbf
...
[MAILPOET-4850]
2022-11-28 22:54:13 +03:00
Rostislav Wolny
11faf925cc
Refactor time assertions in AutomaticEmailTest to use assert with delta
...
Carbon:setTestNow was not working because we are instantiating the new Carbon instance with value.
This commit updates all DateTime assertions to use the new assertEqualDateTimes method
[MAILPOET-4867]
2022-11-28 14:19:30 +01:00
David Remer
d2ec7bba42
Replace instance_of asserts in integration tests
...
[MAILPOET-4258]
2022-11-25 14:32:34 +01:00
Rostislav Wolny
cd3652eaa6
Fix canceling multiple automatic emails
...
When we deleted sending queue using SQL it remained in the entity manager
and subsequent flush (not the first one) triggered the error, because it didn't know the ScheduledTask entity attached
to the orphaned SendingQueue entity.
This commit fixes this by refactoring deletion of sending queue using standard repository method.
After fixing the issue for sending queue there was another issue with SchedulesTaskSubscriberEntity that remained in memory.
I fixed that by detaching those. Theoretically there might be many SchedulesTaskSubscriberEntities for an Automatic email so
I consider still safer to delete using SQL and if there are some loaded (in this case there is one) detach them.
[MAILPOET-4741]
2022-10-24 14:03:54 +02:00
Jan Lysý
d2247a1c76
Refactor parameter from int to entity
...
[MAILPOET-4372]
2022-10-12 11:44:37 +02:00
Jan Lysý
c93c42518a
Add return value for backward compatibility in tests
...
[MAILPOET-4372]
2022-10-12 11:44:37 +02:00
Jan Lysý
09a54fdcd1
Fix dependencies in tests
...
[MAILPOET-4372]
2022-10-12 11:44:37 +02:00
Jan Lysý
745ff6af2a
Remove SendingTask usages from AutomaticEmailTest
...
[MAILPOET-4372]
2022-10-12 11:44:37 +02:00
Jan Lysý
d141f23bb4
Remove old model from AutomaticEmailTest
...
[MAILPOET-4372]
2022-10-12 11:44:37 +02:00
Sam Najian
b7cccdae95
Adjust tests, remove models and Tasks\Sending
...
[MAILPOET-4371]
2022-08-22 13:06:43 +02:00
Sam Najian
873c295e99
Remove Paris models and Tasks\Sending from PostNotificationScheduler
...
[MAILPOET-4371]
2022-08-22 13:06:43 +02:00
Rodrigo Primo
3684530056
Replace NewsletterOption and NewsletterOptionField models
...
This commit repleaces the old NewsletterOption and NewsletterOptionField
models with Doctrine code in several test classes.
[MAILPOET-4150]
2022-07-27 08:48:44 +02:00
Rodrigo Primo
81051e8295
Replace all Paris models with Doctrine code in SchedulerTest
...
[MAILPOET-4150]
2022-07-27 08:48:44 +02:00
Jan Lysý
586a5b8b8e
Fix typo in const name
...
[MAILPOET-4440]
2022-07-12 13:35:00 +02:00
Jan Lysý
d340909187
Replace repeating code with using factory
...
[MAILPOET-4141]
2022-06-20 12:00:47 +02:00
Jan Lysý
4ba5c6ce0c
Remove old model from Scheduler
...
[MAILPOET-4141]
2022-06-20 12:00:47 +02:00
David Remer
fce14358bf
Revert "Replace NewsletterOption and NewsletterOptionField models"
...
This reverts commit 9b087f719f
.
2022-05-17 12:27:46 +02:00
David Remer
46ebe847be
Revert "Replace all Paris models with Doctrine code in SchedulerTest"
...
This reverts commit 54e2d173c1
.
2022-05-17 12:27:46 +02:00
Rodrigo Primo
d89067854c
Replace NewsletterOption and NewsletterOptionField models
...
This commit repleaces the old NewsletterOption and NewsletterOptionField
models with Doctrine code in several test classes.
[MAILPOET-4150]
2022-05-16 13:18:21 +02:00
Rodrigo Primo
f48bb5758c
Replace all Paris models with Doctrine code in SchedulerTest
...
[MAILPOET-4150]
2022-05-16 13:18:21 +02:00
David Remer
c34356b99c
Remove optional $wp parameter in getScheduledTimeWithDelay method
...
[MAILPOET-4252]
2022-04-25 12:08:18 +02:00
David Remer
ca3f8bdc43
Make Scheduler non-static
...
[MAILPOET-4252]
2022-04-25 12:08:18 +02:00