|
2 | 2 |
|
3 | 3 | namespace SingleStore\Laravel\Tests\Hybrid\Json; |
4 | 4 |
|
| 5 | +use Illuminate\Foundation\Application; |
5 | 6 | use Illuminate\Support\Facades\DB; |
6 | 7 | use SingleStore\Laravel\Tests\BaseTest; |
7 | 8 | use SingleStore\Laravel\Tests\Hybrid\HybridTestHelpers; |
@@ -49,16 +50,29 @@ public function set_boolean_execution() |
49 | 50 | /** @test */ |
50 | 51 | public function set_string_syntax() |
51 | 52 | { |
| 53 | + if (! $this->runHybridIntegrations()) { |
| 54 | + return; |
| 55 | + } |
| 56 | + |
52 | 57 | [$logs] = DB::pretend(function ($database) { |
53 | 58 | $database->table('test')->update([ |
54 | 59 | 'data->value1' => 'foo', |
55 | 60 | ]); |
56 | 61 | }); |
57 | 62 |
|
58 | | - $this->assertEquals( |
59 | | - "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
60 | | - $logs['query'] |
61 | | - ); |
| 63 | + if (version_compare(Application::VERSION, '10.30.0', '>=')) { |
| 64 | + // Laravel version >= 10.30.0 |
| 65 | + $this->assertEquals( |
| 66 | + "update `test` set data = JSON_SET_JSON(data, 'value1', '\\\"foo\\\"')", |
| 67 | + $logs['query'] |
| 68 | + ); |
| 69 | + } else { |
| 70 | + // Laravel version < 10.30.0 |
| 71 | + $this->assertEquals( |
| 72 | + "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
| 73 | + $logs['query'] |
| 74 | + ); |
| 75 | + } |
62 | 76 |
|
63 | 77 | $this->assertSame('"foo"', $logs['bindings'][0]); |
64 | 78 | } |
@@ -93,10 +107,19 @@ public function set_double_syntax() |
93 | 107 | ]); |
94 | 108 | }); |
95 | 109 |
|
96 | | - $this->assertEquals( |
97 | | - "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
98 | | - $logs['query'] |
99 | | - ); |
| 110 | + if (version_compare(Application::VERSION, '10.30.0', '>=')) { |
| 111 | + // Laravel version >= 10.30.0 |
| 112 | + $this->assertEquals( |
| 113 | + "update `test` set data = JSON_SET_JSON(data, 'value1', 1.3)", |
| 114 | + $logs['query'] |
| 115 | + ); |
| 116 | + } else { |
| 117 | + // Laravel version < 10.30.0 |
| 118 | + $this->assertEquals( |
| 119 | + "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
| 120 | + $logs['query'] |
| 121 | + ); |
| 122 | + } |
100 | 123 |
|
101 | 124 | $this->assertSame(1.3, $logs['bindings'][0]); |
102 | 125 | } |
@@ -125,16 +148,29 @@ public function set_double_execution() |
125 | 148 | /** @test */ |
126 | 149 | public function set_json_syntax() |
127 | 150 | { |
| 151 | + if (! $this->runHybridIntegrations()) { |
| 152 | + return; |
| 153 | + } |
| 154 | + |
128 | 155 | [$logs] = DB::pretend(function ($database) { |
129 | 156 | $database->table('test')->update([ |
130 | 157 | 'data->value1' => ['foo' => 'bar'], |
131 | 158 | ]); |
132 | 159 | }); |
133 | 160 |
|
134 | | - $this->assertEquals( |
135 | | - "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
136 | | - $logs['query'] |
137 | | - ); |
| 161 | + if (version_compare(Application::VERSION, '10.30.0', '>=')) { |
| 162 | + // Laravel version >= 10.30.0 |
| 163 | + $this->assertEquals( |
| 164 | + "update `test` set data = JSON_SET_JSON(data, 'value1', '{\\\"foo\\\":\\\"bar\\\"}')", |
| 165 | + $logs['query'] |
| 166 | + ); |
| 167 | + } else { |
| 168 | + // Laravel version < 10.30.0 |
| 169 | + $this->assertEquals( |
| 170 | + "update `test` set data = JSON_SET_JSON(data, 'value1', ?)", |
| 171 | + $logs['query'] |
| 172 | + ); |
| 173 | + } |
138 | 174 |
|
139 | 175 | $this->assertSame('{"foo":"bar"}', $logs['bindings'][0]); |
140 | 176 | } |
|
0 commit comments