Build package / php-lint (8.4) (push) Successful in 1m33s
Build package / php-lint (8.5) (push) Successful in 49s
Build package / xml-lint (push) Successful in 13s
Build package / unit-tests (push) Successful in 38s
Build package / package (push) Successful in 1m44s
Workflows now move every overdue card of their source stack. A new migration drops filter_user_ids and filter_label_ids; workflows that had a filter keep running unfiltered. The version goes to 35.1.0 so the migration runs on update. Removed along with the filters: the labels and participants endpoints and their Deck lookups, the dead-filter warnings and markers, and CardService::enrichCards() in the card read. enrichCards() only added labels, assignees and comment counts, and ran a permission check against Deck's frozen uid.
38 lines
1.5 KiB
PHP
38 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace OCA\WorkflowDeckAutomation\Tests\Unit\Service;
|
|
|
|
use DateTimeImmutable;
|
|
use OCA\WorkflowDeckAutomation\Service\WorkflowRunner;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class WorkflowRunnerTest extends TestCase {
|
|
public function testIsOverdueReturnsFalseWithoutDueDate(): void {
|
|
$this->assertFalse(WorkflowRunner::isOverdue(null, new DateTimeImmutable('2026-01-15 12:00:00')));
|
|
}
|
|
|
|
public function testIsOverdueReturnsFalseForFutureDueDate(): void {
|
|
$now = new DateTimeImmutable('2026-01-15 12:00:00');
|
|
$this->assertFalse(WorkflowRunner::isOverdue($now->modify('+1 hour'), $now));
|
|
$this->assertFalse(WorkflowRunner::isOverdue($now->modify('+3 days'), $now));
|
|
}
|
|
|
|
public function testIsOverdueReturnsTrueForPastDueDate(): void {
|
|
$now = new DateTimeImmutable('2026-01-15 12:00:00');
|
|
$this->assertTrue(WorkflowRunner::isOverdue($now->modify('-1 hour'), $now));
|
|
$this->assertTrue(WorkflowRunner::isOverdue($now->modify('-30 days'), $now));
|
|
}
|
|
|
|
public function testIsOverdueReturnsTrueForADueTimeEarlierTheSameDay(): void {
|
|
// Regression: comparing whole calendar days (as Deck's own
|
|
// Card::getDaysUntilDue() does) reports a card due earlier today as
|
|
// "0 days until due", not overdue, until the calendar date rolls
|
|
// over - holding every card back for up to 24h after it actually
|
|
// fell due. isOverdue() must compare the real timestamps instead.
|
|
$now = new DateTimeImmutable('2026-01-15 12:00:00');
|
|
$this->assertTrue(WorkflowRunner::isOverdue(new DateTimeImmutable('2026-01-15 06:00:00'), $now));
|
|
}
|
|
}
|