Skip to content

Commit 46e49e2

Browse files
Mike-Hermansschlesserajanw-medanielbachhuber
authored
Add --all flag to cron event delete (#98)
* Reapply earlier changes * Add support for --exclude * Minor comments fixes * Do not log every deleted cron event * Restore punctuation in test * Remove punctuation * Synced changes. Now behat passes. * Fixed a undefined variable. * Regenerate README --------- Co-authored-by: Alain Schlesser <alain.schlesser@gmail.com> Co-authored-by: Janw Oostendorp <webmaster@janw.me> Co-authored-by: Daniel Bachhuber <daniel.bachhuber@automattic.com>
1 parent bc7e4bd commit 46e49e2

File tree

3 files changed

+254
-101
lines changed

3 files changed

+254
-101
lines changed

README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,22 @@ wp cron event
8686
Deletes all scheduled cron events for the given hook.
8787

8888
~~~
89-
wp cron event delete <hook>
89+
wp cron event delete [<hook>...] [--due-now] [--exclude=<hooks>] [--all]
9090
~~~
9191

9292
**OPTIONS**
9393

94-
<hook>
95-
The hook name.
94+
[<hook>...]
95+
One or more hooks to delete.
96+
97+
[--due-now]
98+
Delete all hooks due right now.
99+
100+
[--exclude=<hooks>]
101+
Comma-separated list of hooks to exclude.
102+
103+
[--all]
104+
Delete all hooks.
96105

97106
**EXAMPLES**
98107

features/cron.feature

Lines changed: 121 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Feature: Manage WP-Cron events and schedules
3737
When I run `wp cron event delete wp_cli_test_event_1`
3838
Then STDOUT should contain:
3939
"""
40-
Success: Deleted the cron event 'wp_cli_test_event_1'
40+
Success: Deleted a total of 1 cron event.
4141
"""
4242

4343
When I run `wp cron event list`
@@ -123,7 +123,7 @@ Feature: Manage WP-Cron events and schedules
123123
When I run `wp cron event delete wp_cli_test_event_5`
124124
Then STDOUT should be:
125125
"""
126-
Success: Deleted 2 instances of the cron event 'wp_cli_test_event_5'.
126+
Success: Deleted a total of 2 cron events.
127127
"""
128128

129129
When I run `wp cron event list`
@@ -135,7 +135,7 @@ Feature: Manage WP-Cron events and schedules
135135
When I try `wp cron event delete wp_cli_test_event_5`
136136
Then STDERR should be:
137137
"""
138-
Error: Invalid cron event 'wp_cli_test_event_5'.
138+
Error: Invalid cron event 'wp_cli_test_event_5'
139139
"""
140140
Scenario: Cron event with missing recurrence should be non-repeating.
141141
Given a wp-content/mu-plugins/schedule.php file:
@@ -208,7 +208,7 @@ Feature: Manage WP-Cron events and schedules
208208
When I run `wp cron event delete wp_cli_test_event_2`
209209
Then STDOUT should contain:
210210
"""
211-
Success: Deleted the cron event 'wp_cli_test_event_2'
211+
Success: Deleted a total of 1 cron event.
212212
"""
213213

214214
When I run `wp cron event list`
@@ -432,3 +432,120 @@ Feature: Manage WP-Cron events and schedules
432432
"""
433433
Warning: Ignoring incorrectly registered cron event "wp_batch_split_terms".
434434
"""
435+
436+
Scenario: Delete multiple cron events
437+
When I run `wp cron event schedule wp_cli_test_event_1 '+1 hour 5 minutes' hourly`
438+
Then STDOUT should not be empty
439+
440+
When I run `wp cron event schedule wp_cli_test_event_2 '+1 hour 5 minutes' hourly`
441+
Then STDOUT should not be empty
442+
443+
When I try `wp cron event delete`
444+
Then STDERR should be:
445+
"""
446+
Error: Please specify one or more cron events, or use --due-now/--all.
447+
"""
448+
449+
# WP throws a notice here for older versions of core.
450+
When I try `wp cron event delete --all`
451+
Then STDOUT should contain:
452+
"""
453+
Success: Deleted a total of
454+
"""
455+
456+
When I try `wp cron event list`
457+
Then STDOUT should not contain:
458+
"""
459+
wp_cli_test_event_1
460+
"""
461+
And STDOUT should not contain:
462+
"""
463+
wp_cli_test_event_2
464+
"""
465+
466+
When I run `wp cron event schedule wp_cli_test_event_1 now hourly`
467+
Then STDOUT should contain:
468+
"""
469+
Success: Scheduled event with hook 'wp_cli_test_event_1'
470+
"""
471+
472+
When I run `wp cron event schedule wp_cli_test_event_2 now hourly`
473+
Then STDOUT should contain:
474+
"""
475+
Success: Scheduled event with hook 'wp_cli_test_event_2'
476+
"""
477+
478+
When I run `wp cron event schedule wp_cli_test_event_2 '+1 hour 5 minutes' hourly`
479+
Then STDOUT should contain:
480+
"""
481+
Success: Scheduled event with hook 'wp_cli_test_event_2'
482+
"""
483+
484+
When I run `wp cron event delete wp_cli_test_event_2 --due-now`
485+
Then STDOUT should contain:
486+
"""
487+
Deleted a total of 1 cron event
488+
"""
489+
490+
When I try `wp cron event list`
491+
Then STDOUT should contain:
492+
"""
493+
wp_cli_test_event_2
494+
"""
495+
496+
When I run `wp cron event list --hook=wp_cli_test_event_2 --format=count`
497+
Then STDOUT should be:
498+
"""
499+
1
500+
"""
501+
502+
When I run `wp cron event delete --due-now`
503+
Then STDOUT should contain:
504+
"""
505+
Success: Deleted a total of
506+
"""
507+
508+
When I try `wp cron event list`
509+
Then STDOUT should not contain:
510+
"""
511+
wp_cli_test_event_1
512+
"""
513+
And STDOUT should contain:
514+
"""
515+
wp_cli_test_event_2
516+
"""
517+
518+
When I run `wp cron event schedule wp_cli_test_event_1 '+1 hour 5 minutes' hourly`
519+
Then STDOUT should not be empty
520+
521+
When I run `wp cron event schedule wp_cli_test_event_2 '+1 hour 5 minutes' hourly`
522+
Then STDOUT should not be empty
523+
524+
When I run `wp cron event delete --all --exclude=wp_cli_test_event_1`
525+
Then STDOUT should contain:
526+
"""
527+
Success: Deleted a total of
528+
"""
529+
530+
When I try `wp cron event list`
531+
Then STDOUT should not contain:
532+
"""
533+
wp_cli_test_event_2
534+
"""
535+
And STDOUT should contain:
536+
"""
537+
wp_cli_test_event_1
538+
"""
539+
540+
Scenario: A valid combination of parameters should be present
541+
When I try `wp cron event delete --due-now --all`
542+
Then STDERR should be:
543+
"""
544+
Error: Please use either --due-now or --all.
545+
"""
546+
547+
When I try `wp cron event delete wp_cli_test_event_1 --all`
548+
Then STDERR should be:
549+
"""
550+
Error: Please either specify cron events, or use --all.
551+
"""

0 commit comments

Comments
 (0)