Completed
Pull Request — master (#4037)
by Muhlis
02:52
created

OperationLogTest::testGenerateLogs()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 21
rs 9.584
c 0
b 0
f 0
1
<?php
2
3
use Encore\Admin\Auth\Database\Administrator;
4
use Encore\Admin\Auth\Database\OperationLog;
5
6
class OperationLogTest extends TestCase
7
{
8
    public function setUp()
9
    {
10
        parent::setUp();
11
12
        $this->be(Administrator::first(), 'admin');
13
    }
14
15
    public function testOperationLogIndex()
16
    {
17
        $this->visit('admin/auth/logs')
18
            ->see('Operation log')
19
            ->see('List')
20
            ->see('GET')
21
            ->see('admin/auth/logs');
22
    }
23
24
    public function testGenerateLogs()
25
    {
26
        $table = config('admin.database.operation_log_table');
27
28
        $this->visit('admin/auth/menu')
29
            ->seePageIs('admin/auth/menu')
30
            ->visit('admin/auth/users')
31
            ->seePageIs('admin/auth/users')
32
            ->visit('admin/auth/permissions')
33
            ->seePageIs('admin/auth/permissions')
34
            ->visit('admin/auth/roles')
35
            ->seePageIs('admin/auth/roles')
36
            ->visit('admin/auth/logs')
37
            ->seePageIs('admin/auth/logs')
38
            ->seeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
39
            ->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
40
            ->seeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
41
            ->seeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET']);
42
43
        $this->assertEquals(4, OperationLog::count());
44
    }
45
46
    public function testDeleteLogs()
47
    {
48
        $table = config('admin.database.operation_log_table');
49
50
        $this->visit('admin/auth/logs')
51
            ->seePageIs('admin/auth/logs')
52
            ->assertEquals(0, OperationLog::count());
53
54
        $this->visit('admin/auth/users');
55
56
        $this->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET']);
57
58
        $this->delete('admin/auth/logs/1')
59
            ->assertEquals(0, OperationLog::count());
60
    }
61
62
    public function testDeleteMultipleLogs()
63
    {
64
        $table = config('admin.database.operation_log_table');
65
66
        $this->visit('admin/auth/menu')
67
            ->visit('admin/auth/users')
68
            ->visit('admin/auth/permissions')
69
            ->visit('admin/auth/roles')
70
            ->seeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
71
            ->seeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
72
            ->seeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
73
            ->seeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET'])
74
            ->assertEquals(4, OperationLog::count());
75
76
        $this->delete('admin/auth/logs/1,2,3,4')
77
            ->notSeeInDatabase($table, ['path' => 'admin/auth/menu', 'method' => 'GET'])
78
            ->notSeeInDatabase($table, ['path' => 'admin/auth/users', 'method' => 'GET'])
79
            ->notSeeInDatabase($table, ['path' => 'admin/auth/permissions', 'method' => 'GET'])
80
            ->notSeeInDatabase($table, ['path' => 'admin/auth/roles', 'method' => 'GET'])
81
82
            ->assertEquals(0, OperationLog::count());
83
    }
84
}
85