Skip to content

Commit a82513e

Browse files
committed
Add tests.
1 parent 065c01c commit a82513e

File tree

1 file changed

+117
-0
lines changed

1 file changed

+117
-0
lines changed

tests/AdvancedNumberTest.php

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?php
2+
3+
namespace SimpleSquid\Skeleton\Tests;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use SimpleSquid\Nova\Fields\AdvancedNumber\AdvancedNumber;
7+
8+
class AdvancedNumberTest extends TestCase
9+
{
10+
/** @var \SimpleSquid\Nova\Fields\AdvancedNumber\AdvancedNumber */
11+
private $field;
12+
13+
public function setUp(): void
14+
{
15+
parent::setUp();
16+
17+
$this->field = AdvancedNumber::make('Number Field');
18+
}
19+
20+
/** @test */
21+
public function field_defaults_to_right_alignment()
22+
{
23+
$this->assertEquals('right', $this->field->textAlign);
24+
}
25+
26+
/** @test */
27+
public function field_defaults_to_step_of_two_decimal_places()
28+
{
29+
$this->assertArrayHasKey('step', $this->field->meta);
30+
31+
$this->assertEquals('0.01', $this->field->meta['step']);
32+
}
33+
34+
/** @test */
35+
public function field_displays_number_correctly_using_defaults()
36+
{
37+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
38+
39+
$this->assertEquals('12 345.68', $this->field->value);
40+
}
41+
42+
/** @test */
43+
public function prefix_can_be_set_and_is_displayed()
44+
{
45+
$this->field->prefix('$');
46+
47+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
48+
49+
$this->assertEquals('$12 345.68', $this->field->value);
50+
}
51+
52+
/** @test */
53+
public function suffix_can_be_set_and_is_displayed()
54+
{
55+
$this->field->suffix('%');
56+
57+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
58+
59+
$this->assertEquals('12 345.68%', $this->field->value);
60+
}
61+
62+
/** @test */
63+
public function number_of_decimal_places_can_be_set_and_is_displayed()
64+
{
65+
$this->field->decimals(3);
66+
67+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
68+
69+
$this->assertEquals('12 345.678', $this->field->value);
70+
}
71+
72+
/** @test */
73+
public function decimal_point_can_be_set_and_is_displayed()
74+
{
75+
$this->field->decimalPoint(',');
76+
77+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
78+
79+
$this->assertEquals('12 345,68', $this->field->value);
80+
}
81+
82+
/** @test */
83+
public function thousands_separator_can_be_set_and_is_displayed()
84+
{
85+
$this->field->thousandsSeparator(',');
86+
87+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
88+
89+
$this->assertEquals('12,345.68', $this->field->value);
90+
}
91+
92+
/** @test */
93+
public function field_resolves_to_actual_value_for_edit_view()
94+
{
95+
$this->field->resolve(['number_field' => 12345.678]);
96+
97+
$this->assertEquals(12345.678, $this->field->value);
98+
}
99+
100+
/** @test */
101+
public function modifiers_can_be_used_together()
102+
{
103+
$this->field->prefix('$');
104+
$this->field->suffix('c');
105+
$this->field->decimals(2);
106+
$this->field->decimalPoint(' and ');
107+
$this->field->thousandsSeparator(',');
108+
109+
$this->field->resolveForDisplay(['number_field' => 12345.678]);
110+
111+
$this->assertEquals('$12,345 and 68c', $this->field->value);
112+
113+
$this->field->resolve(['number_field' => 12345.678]);
114+
115+
$this->assertEquals(12345.678, $this->field->value);
116+
}
117+
}

0 commit comments

Comments
 (0)