create(); $translation = $doc->translations()->first(); $this->assertInstanceOf(Document::class, $translation->document); $this->assertSame($doc->id, $translation->document->id); } public function test_unique_document_locale_constraint(): void { $doc = Document::factory()->create(['default_locale' => 'en']); $this->expectException(QueryException::class); DocumentTranslation::create([ 'document_id' => $doc->id, 'locale' => 'en', 'title' => 'Duplicate', 'content' => 'x', 'rendered_html' => '

x

', ]); } public function test_cascade_delete_when_document_deleted(): void { $doc = Document::factory()->create(); $translationId = $doc->translations()->first()->id; $doc->forceDelete(); $this->assertNull(DocumentTranslation::find($translationId)); } public function test_render_markdown_converts_basic_markdown(): void { $html = DocumentTranslation::renderMarkdown('# Hello'); $this->assertStringContainsString('

', $html); $this->assertStringContainsString('Hello', $html); } }