BookStack/tests/ErrorTest.php
Dan Brown 19bfc8ad37
Prevented entity "Not Found" events from being logged
- Added testing to cover, which was more hassle than thought
  since Laravel did not have built in log test helpers, so:
- Added Log testing helper.

Related to #2110
2020-05-23 11:28:59 +01:00

41 lines
1.3 KiB
PHP

<?php namespace Tests;
use BookStack\Entities\Book;
use Illuminate\Support\Facades\Log;
class ErrorTest extends TestCase
{
public function test_404_page_does_not_show_login()
{
// Due to middleware being handled differently this will not fail
// if our custom, middleware-loaded handler fails but this is here
// as a reminder and as a general check in the event of other issues.
$editor = $this->getEditor();
$editor->name = 'tester';
$editor->save();
$this->actingAs($editor);
$notFound = $this->get('/fgfdngldfnotfound');
$notFound->assertStatus(404);
$notFound->assertDontSeeText('Log in');
$notFound->assertSeeText('tester');
}
public function test_item_not_found_does_not_get_logged_to_file()
{
$this->actingAs($this->getViewer());
$handler = $this->withTestLogger();
$book = Book::query()->first();
// Ensure we're seeing errors
Log::error('cat');
$this->assertTrue($handler->hasErrorThatContains('cat'));
$this->get('/books/arandomnotfouindbook');
$this->get($book->getUrl('/chapter/arandomnotfouindchapter'));
$this->get($book->getUrl('/chapter/arandomnotfouindpages'));
$this->assertCount(1, $handler->getRecords());
}
}