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

OperationLogTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 79
rs 10
c 0
b 0
f 0
wmc 5
lcom 1
cbo 1

5 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A testOperationLogIndex() 0 8 1
A testGenerateLogs() 0 21 1
A testDeleteLogs() 0 15 1
A testDeleteMultipleLogs() 0 22 1
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