Adds the missing tests for the #67 guard: self-move and a destination inside the moved page's subtree both throw BadRequestException before updatePage; a legitimate move proceeds. Mocks pageRepo + spies getPageBreadCrumbs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>