fix: global library edits check private and scheduled pages, name the backup on failure (P8a, P14)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -96,4 +96,29 @@ final class WriteFailedTest extends TestCase
|
||||
self::assertSame([7, 811], [$partial->postId, $partial->revisionId]);
|
||||
self::assertArrayNotHasKey('post_id', $clean->toError()->get_error_data());
|
||||
}
|
||||
|
||||
/** Ruling P14: details (and hint/state) added after the fact, everything else kept. */
|
||||
public function testWithDetailsAddsDetailsAndKeepsTheRest(): void
|
||||
{
|
||||
$cause = new RuntimeException('hook');
|
||||
$failure = WriteFailed::rolledBack('x', $cause, 'intern', details: ['a' => 1], postId: 5, revisionId: 811);
|
||||
|
||||
$extended = $failure->withDetails(['backup_id' => 9], 'Sicherung 9 liegt im Papierkorb.', 'Bleibt.');
|
||||
|
||||
self::assertNotSame($failure, $extended);
|
||||
self::assertTrue($extended->rolledBack);
|
||||
self::assertSame($cause, $extended->getPrevious());
|
||||
self::assertSame($failure->getMessage(), $extended->getMessage());
|
||||
self::assertSame([5, 811], [$extended->postId, $extended->revisionId]);
|
||||
$data = $extended->toError()->get_error_data();
|
||||
self::assertSame(1, $data['a']);
|
||||
self::assertSame(9, $data['backup_id']);
|
||||
self::assertSame('Sicherung 9 liegt im Papierkorb.', $data['hint']);
|
||||
self::assertStringContainsString('Bleibt.', $extended->toError()->get_error_message());
|
||||
|
||||
$partial = WriteFailed::partial('x', postId: 5)->withDetails(['backup_id' => 9]);
|
||||
self::assertFalse($partial->rolledBack);
|
||||
self::assertSame(9, $partial->toError()->get_error_data()['backup_id']);
|
||||
self::assertSame(5, $partial->toError()->get_error_data()['post_id']);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user