Skip to content

Commit 86e2065

Browse files
committed
Add column test
1 parent 65adb0a commit 86e2065

File tree

2 files changed

+169
-0
lines changed

2 files changed

+169
-0
lines changed

src/Html/Column.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,17 @@
1818
* @property string $exportable
1919
* @property array|string $footer
2020
* @property array $attributes
21+
* @property string $render
22+
* @property string $className
23+
* @property string $editField
24+
* @property int|array $orderData
25+
* @property string $orderDataType
26+
* @property string $orderSequence
27+
* @property string $cellType
28+
* @property string $type
29+
* @property string $contentPadding
30+
* @property string $createdCell
31+
* @property string $exportFormat
2132
* @see https://datatables.net/reference/option/#columns
2233
*/
2334
class Column extends Fluent

tests/ColumnTest.php

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<?php
2+
3+
namespace Yajra\DataTables\Html\Tests;
4+
5+
use Yajra\DataTables\Html\Column;
6+
7+
class ColumnTest extends TestCase
8+
{
9+
/** @test */
10+
public function it_can_create_column()
11+
{
12+
$column = Column::make('name');
13+
14+
$this->assertInstanceOf(Column::class, $column);
15+
}
16+
17+
/** @test */
18+
public function it_has_default_properties()
19+
{
20+
$column = Column::make('name');
21+
22+
$this->assertEquals('name', $column->name);
23+
$this->assertEquals('name', $column->data);
24+
$this->assertEquals('Name', $column->title);
25+
$this->assertEquals('', $column->render);
26+
$this->assertEquals(true, $column->exportable);
27+
$this->assertEquals(true, $column->printable);
28+
$this->assertEquals(true, $column->orderable);
29+
$this->assertEquals(true, $column->searchable);
30+
$this->assertEquals([], $column->attributes);
31+
$this->assertEquals('', $column->footer);
32+
}
33+
34+
/** @test */
35+
public function it_can_format_title()
36+
{
37+
$this->assertEquals('Title', Column::titleFormat('title'));
38+
}
39+
40+
/** @test */
41+
public function it_can_make_computed_column()
42+
{
43+
$column = Column::computed('name');
44+
45+
$this->assertEquals('name', $column->name);
46+
$this->assertEquals('name', $column->data);
47+
$this->assertEquals('Name', $column->title);
48+
$this->assertEquals('', $column->render);
49+
$this->assertEquals(true, $column->exportable);
50+
$this->assertEquals(true, $column->printable);
51+
$this->assertEquals(false, $column->orderable);
52+
$this->assertEquals(false, $column->searchable);
53+
$this->assertEquals([], $column->attributes);
54+
$this->assertEquals('', $column->footer);
55+
}
56+
57+
58+
/** @test */
59+
public function it_can_make_formatted_column()
60+
{
61+
$column = Column::formatted('name');
62+
63+
$this->assertEquals('name', $column->name);
64+
$this->assertEquals('name', $column->data);
65+
$this->assertEquals('Name', $column->title);
66+
$this->assertEquals('function(data,type,full,meta){return full.name_formatted;}', $column->render);
67+
$this->assertEquals(true, $column->exportable);
68+
$this->assertEquals(true, $column->printable);
69+
$this->assertEquals(true, $column->orderable);
70+
$this->assertEquals(true, $column->searchable);
71+
$this->assertEquals([], $column->attributes);
72+
$this->assertEquals('', $column->footer);
73+
}
74+
75+
/** @test */
76+
public function it_can_make_a_checkbox()
77+
{
78+
$column = Column::checkbox('name');
79+
80+
$this->assertEquals('', $column->name);
81+
$this->assertEquals('', $column->data);
82+
$this->assertEquals('name', $column->title);
83+
$this->assertEquals('', $column->render);
84+
$this->assertEquals(true, $column->printable);
85+
$this->assertEquals(false, $column->exportable);
86+
$this->assertEquals(false, $column->orderable);
87+
$this->assertEquals(false, $column->searchable);
88+
$this->assertEquals('select-checkbox', $column->className);
89+
$this->assertEquals([], $column->attributes);
90+
$this->assertEquals('', $column->footer);
91+
}
92+
93+
/** @test */
94+
public function it_has_property_setters()
95+
{
96+
$column = Column::checkbox('name');
97+
98+
$column->name('test');
99+
$this->assertEquals('test', $column->name);
100+
101+
$column->data('test');
102+
$this->assertEquals('test', $column->data);
103+
104+
$column->title('test');
105+
$this->assertEquals('test', $column->title);
106+
107+
$column->editField('test');
108+
$this->assertEquals('test', $column->editField);
109+
110+
$column->orderData(1);
111+
$this->assertEquals(1, $column->orderData);
112+
113+
$column->orderData([1]);
114+
$this->assertEquals([1], $column->orderData);
115+
116+
$column->orderDataType('test');
117+
$this->assertEquals('test', $column->orderDataType);
118+
119+
$column->orderSequence(['test']);
120+
$this->assertEquals(['test'], $column->orderSequence);
121+
122+
$column->cellType('test');
123+
$this->assertEquals('test', $column->cellType);
124+
125+
$column->type('test');
126+
$this->assertEquals('test', $column->type);
127+
128+
$column->contentPadding('test');
129+
$this->assertEquals('test', $column->contentPadding);
130+
131+
$column->createdCell('test');
132+
$this->assertEquals('test', $column->createdCell);
133+
134+
$column->titleAttr('test');
135+
$this->assertEquals('test', $column->titleAttr);
136+
137+
$column->exportFormat('test');
138+
$this->assertEquals('test', $column->exportFormat);
139+
}
140+
141+
/** @test */
142+
public function it_can_render_scripts()
143+
{
144+
$column = Column::make('name');
145+
146+
$column->render('test');
147+
$this->assertEquals('function(data,type,full,meta){return test;}', $column->render);
148+
149+
$column->render('$.fn.dataTable.render.test');
150+
$this->assertEquals('$.fn.dataTable.render.test', $column->render);
151+
152+
$column->renderJs('test');
153+
$this->assertEquals('$.fn.dataTable.render.test', $column->render);
154+
155+
$column->renderRaw('test');
156+
$this->assertEquals('test', $column->render);
157+
}
158+
}

0 commit comments

Comments
 (0)