admission = Admission::factory()->create(); $this->document = Document::factory()->create(); $this->data = Document::factory()->make()->only([ 'position', 'name', 'description', 'admission_id', ]); $this->user = User::factory()->create([ 'name' => 'admin', 'email' => 'test@example.com', 'password' => 123456 ]); } public function testIndexDocumentsPage(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->get(route('documents.index')); $response->assertOk(); } public function testCreateDocumentPage(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->get(route('documents.create')); $response->assertOk(); } public function testStoreDocument(): void { Storage::fake('fake'); $file = UploadedFile::fake()->create('fake.pdf', 100, 'application/pdf'); $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->post(route('documents.store'), [...$this->data, 'document' => $file]); $response->assertRedirect(route('documents.index')); $this->assertDatabaseHas('documents', $this->data); } public function testShowDocumentPage(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->get(route('documents.show', $this->document)); $response->assertOk(); } public function testEditDocumentPage(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->get(route('documents.edit', $this->document)); $response->assertOk(); } public function testUpdateDocument(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->patch(route('documents.update', $this->document), $this->data); $response->assertRedirect(route('documents.index')); $this->assertDatabaseHas('documents', $this->data); } public function testDestroyDocument(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->delete(route('documents.destroy', $this->document)); $response->assertRedirect(route('documents.index')); $this->assertDatabaseMissing('documents', $this->document->toArray()); } public function testCreateDocumentFromAdmissionPage(): void { $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->get(route('document_create_from_admission', $this->admission)); $response->assertOk(); } public function testStoreFromAdmissionDocument(): void { Storage::fake('fake'); $file = UploadedFile::fake()->create('fake.pdf', 100, 'application/pdf'); $response = $this->actingAs($this->user) ->withSession(['banned' => false]) ->post(route('document_store_from_admission'), [...$this->data, 'document' => $file]); $response->assertRedirect(route('admissions.index')); $this->assertDatabaseHas('documents', $this->data); } }