@@ -174,6 +174,66 @@ public function testWhereRawSql()
174174 $ this ->assertSame ($ expectedBinds , $ builder ->getBinds ());
175175 }
176176
177+ public function testWhereValueRawSql ()
178+ {
179+ $ sql = $ this ->db ->table ('auth_bearer ' )
180+ ->select ('* ' )
181+ ->where ('expires ' , new RawSql ('DATE_ADD(NOW(), INTERVAL 2 HOUR) ' ))
182+ ->getCompiledSelect (true );
183+
184+ $ expected = <<<'SQL'
185+ SELECT *
186+ FROM "auth_bearer"
187+ WHERE "expires" = DATE_ADD(NOW(), INTERVAL 2 HOUR)
188+ SQL;
189+ $ this ->assertSame ($ expected , $ sql );
190+ }
191+
192+ public function testWhereKeyOnlyRawSql ()
193+ {
194+ $ sql = $ this ->db ->table ('auth_bearer ' )
195+ ->select ('* ' )
196+ ->where (new RawSql ('DATE_ADD(NOW(), INTERVAL 2 HOUR) ' ), '2023-01-01 ' )
197+ ->getCompiledSelect (true );
198+
199+ $ expected = <<<'SQL'
200+ SELECT *
201+ FROM "auth_bearer"
202+ WHERE DATE_ADD(NOW(), INTERVAL 2 HOUR) = '2023-01-01'
203+ SQL;
204+ $ this ->assertSame ($ expected , $ sql );
205+ }
206+
207+ public function testWhereKeyAndValueRawSql ()
208+ {
209+ $ sql = $ this ->db ->table ('auth_bearer ' )
210+ ->select ('* ' )
211+ ->where (new RawSql ('CURRENT_TIMESTAMP() ' ), new RawSql ('DATE_ADD(column, INTERVAL 2 HOUR) ' ))
212+ ->getCompiledSelect (true );
213+
214+ $ expected = <<<'SQL'
215+ SELECT *
216+ FROM "auth_bearer"
217+ WHERE CURRENT_TIMESTAMP() = DATE_ADD(column, INTERVAL 2 HOUR)
218+ SQL;
219+ $ this ->assertSame ($ expected , $ sql );
220+ }
221+
222+ public function testWhereKeyAndValueRawSqlWithOperator ()
223+ {
224+ $ sql = $ this ->db ->table ('auth_bearer ' )
225+ ->select ('* ' )
226+ ->where (new RawSql ('CURRENT_TIMESTAMP() >= ' ), new RawSql ('DATE_ADD(column, INTERVAL 2 HOUR) ' ))
227+ ->getCompiledSelect (true );
228+
229+ $ expected = <<<'SQL'
230+ SELECT *
231+ FROM "auth_bearer"
232+ WHERE CURRENT_TIMESTAMP() >= DATE_ADD(column, INTERVAL 2 HOUR)
233+ SQL;
234+ $ this ->assertSame ($ expected , $ sql );
235+ }
236+
177237 public function testWhereValueSubQuery ()
178238 {
179239 $ expectedSQL = 'SELECT * FROM "neworder" WHERE "advance_amount" < (SELECT MAX(advance_amount) FROM "orders" WHERE "id" > 2) ' ;
0 commit comments