@@ -102,6 +102,31 @@ public function testDropIndexDefaultNamesWhenPrefixSupplied()
102
102
$ this ->assertSame ('prefix_geo_coordinates_spatialindex ' , $ commands [0 ]->index );
103
103
}
104
104
105
+ public function testDefaultCurrentDate ()
106
+ {
107
+ $ getSql = function ($ grammar , $ mysql57 = false ) {
108
+ if ($ grammar == 'MySql ' ) {
109
+ $ connection = $ this ->getConnection ($ grammar );
110
+ $ mysql57 ? $ connection ->shouldReceive ('getServerVersion ' )->andReturn ('5.7 ' ) : $ connection ->shouldReceive ('getServerVersion ' )->andReturn ('8.0.13 ' );
111
+ $ connection ->shouldReceive ('isMaria ' )->andReturn (false );
112
+
113
+ return (new Blueprint ($ connection , 'users ' , function ($ table ) {
114
+ $ table ->date ('created ' )->useCurrent ();
115
+ }))->toSql ();
116
+ } else {
117
+ return $ this ->getBlueprint ($ grammar , 'users ' , function ($ table ) {
118
+ $ table ->date ('created ' )->useCurrent ();
119
+ })->toSql ();
120
+ }
121
+ };
122
+
123
+ $ this ->assertEquals (['alter table `users` add `created` date not null default (CURDATE()) ' ], $ getSql ('MySql ' ));
124
+ $ this ->assertEquals (['alter table `users` add `created` date not null ' ], $ getSql ('MySql ' , mysql57: true ));
125
+ $ this ->assertEquals (['alter table "users" add column "created" date not null default CURRENT_DATE ' ], $ getSql ('Postgres ' ));
126
+ $ this ->assertEquals (['alter table "users" add column "created" date not null default CURRENT_DATE ' ], $ getSql ('SQLite ' ));
127
+ $ this ->assertEquals (['alter table "users" add "created" date not null default CAST(GETDATE() AS DATE) ' ], $ getSql ('SqlServer ' ));
128
+ }
129
+
105
130
public function testDefaultCurrentDateTime ()
106
131
{
107
132
$ getSql = function ($ grammar ) {
@@ -130,6 +155,31 @@ public function testDefaultCurrentTimestamp()
130
155
$ this ->assertEquals (['alter table "users" add "created" datetime not null default CURRENT_TIMESTAMP ' ], $ getSql ('SqlServer ' ));
131
156
}
132
157
158
+ public function testDefaultCurrentYear ()
159
+ {
160
+ $ getSql = function ($ grammar , $ mysql57 = false ) {
161
+ if ($ grammar == 'MySql ' ) {
162
+ $ connection = $ this ->getConnection ($ grammar );
163
+ $ mysql57 ? $ connection ->shouldReceive ('getServerVersion ' )->andReturn ('5.7 ' ) : $ connection ->shouldReceive ('getServerVersion ' )->andReturn ('8.0.13 ' );
164
+ $ connection ->shouldReceive ('isMaria ' )->andReturn (false );
165
+
166
+ return (new Blueprint ($ connection , 'users ' , function ($ table ) {
167
+ $ table ->year ('birth_year ' )->useCurrent ();
168
+ }))->toSql ();
169
+ } else {
170
+ return $ this ->getBlueprint ($ grammar , 'users ' , function ($ table ) {
171
+ $ table ->year ('birth_year ' )->useCurrent ();
172
+ })->toSql ();
173
+ }
174
+ };
175
+
176
+ $ this ->assertEquals (['alter table `users` add `birth_year` year not null default (YEAR(CURDATE())) ' ], $ getSql (&
741A
#39;MySql ' ));
177
+ $ this ->assertEquals (['alter table `users` add `birth_year` year not null ' ], $ getSql ('MySql ' , mysql57: true ));
178
+ $ this ->assertEquals (['alter table "users" add column "birth_year" integer not null default EXTRACT(YEAR FROM CURRENT_DATE) ' ], $ getSql ('Postgres ' ));
179
+ $ this ->assertEquals (['alter table "users" add column "birth_year" integer not null default (CAST(strftime( \'%Y \', \'now \') AS INTEGER)) ' ], $ getSql ('SQLite ' ));
180
+ $ this ->assertEquals (['alter table "users" add "birth_year" int not null default CAST(YEAR(GETDATE()) AS INTEGER) ' ], $ getSql ('SqlServer ' ));
181
+ }
182
+
133
183
public function testRemoveColumn ()
134
184
{
135
185
$ getSql = function ($ grammar ) {
0 commit comments