mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-27 10:49:45 +08:00
32 lines
1.1 KiB
PHP
32 lines
1.1 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Tests\Unit;
|
||
|
|
||
|
use BadMethodCallException;
|
||
|
use BookStack\Entities\Models\Page;
|
||
|
use Tests\TestCase;
|
||
|
|
||
|
/**
|
||
|
* This class tests assumptions we're relying upon in the framework.
|
||
|
* This is primarily to keep track of certain bits of functionality that
|
||
|
* may be used in important areas such as to enforce permissions.
|
||
|
*/
|
||
|
class FrameworkAssumptionTest extends TestCase
|
||
|
{
|
||
|
public function test_scopes_error_if_not_existing()
|
||
|
{
|
||
|
$this->expectException(BadMethodCallException::class);
|
||
|
$this->expectExceptionMessage('Call to undefined method BookStack\Entities\Models\Page::scopeNotfoundscope()');
|
||
|
Page::query()->scopes('notfoundscope');
|
||
|
}
|
||
|
|
||
|
public function test_scopes_applies_upon_existing()
|
||
|
{
|
||
|
// Page has SoftDeletes trait by default, so we apply our custom scope and ensure
|
||
|
// it stacks on the global scope to filter out deleted items.
|
||
|
$query = Page::query()->scopes('visible')->toSql();
|
||
|
$this->assertStringContainsString('joint_permissions', $query);
|
||
|
$this->assertStringContainsString('`deleted_at` is null', $query);
|
||
|
}
|
||
|
}
|