diff --git a/src/VirtualColumn.php b/src/VirtualColumn.php index a7d2829..768a07f 100644 --- a/src/VirtualColumn.php +++ b/src/VirtualColumn.php @@ -182,8 +182,6 @@ trait VirtualColumn { return [ 'id', - static::CREATED_AT, - static::UPDATED_AT, ]; } diff --git a/tests/VirtualColumnTest.php b/tests/VirtualColumnTest.php index 6547a7f..9808ad7 100644 --- a/tests/VirtualColumnTest.php +++ b/tests/VirtualColumnTest.php @@ -8,7 +8,6 @@ use Illuminate\Support\Facades\Crypt; use Illuminate\Database\Eloquent\Model; use Stancl\VirtualColumn\VirtualColumn; use Illuminate\Contracts\Database\Eloquent\CastsAttributes; -use PHPUnit\Framework\Attributes\Test; class VirtualColumnTest extends TestCase { @@ -19,7 +18,7 @@ class VirtualColumnTest extends TestCase $this->loadMigrationsFrom(__DIR__ . '/etc/migrations'); } - #[Test] + /** @test */ public function keys_which_dont_have_their_own_column_go_into_data_json_column() { $model = MyModel::create([ @@ -60,7 +59,7 @@ class VirtualColumnTest extends TestCase $this->assertSame(null, $model->data); } - #[Test] + /** @test */ public function model_is_always_decoded_when_accessed_by_user_event() { MyModel::retrieved(function (MyModel $model) { @@ -91,7 +90,7 @@ class VirtualColumnTest extends TestCase MyModel::first(); } - #[Test] + /** @test */ public function column_names_are_generated_correctly() { // FooModel's virtual data column name is 'virtual' @@ -108,7 +107,7 @@ class VirtualColumnTest extends TestCase $this->assertSame($virtualColumnName, $model->getColumnForQuery('foo')); } - #[Test] + /** @test */ public function models_extending_a_parent_model_using_virtualcolumn_get_encoded_correctly() { // Create a model that extends a parent model using VirtualColumn @@ -131,7 +130,7 @@ class VirtualColumnTest extends TestCase // maybe add an explicit test that the saving() and updating() listeners don't run twice? - #[Test] + /** @test */ public function encrypted_casts_work_with_virtual_column() { // Custom encrypted castables have to be specified in the $customEncryptedCastables static property MyModel::$customEncryptedCastables = [EncryptedCast::class]; @@ -147,14 +146,11 @@ class VirtualColumnTest extends TestCase 'null_value' => null, // 'encrypted' ]); - $databaseRecord = json_decode(DB::select('SELECT data FROM my_models')[0]->data); - foreach($encryptedAttributes as $key => $expectedValue) { $savedValue = $model->getAttributes()[$key]; // Encrypted if ($savedValue !== null) { $this->assertTrue($model->valueEncrypted($savedValue)); - $this->assertEquals($savedValue, $databaseRecord->$key); // Encrypted in DB $this->assertNotEquals($expectedValue, $savedValue); } @@ -166,29 +162,6 @@ class VirtualColumnTest extends TestCase // Reset static property MyModel::$customEncryptedCastables = []; } - - #[Test] - public function updating_model_does_not_store_timestamps_in_the_virtual_column() { - /** @var TimestampModel $model */ - $model = TimestampModel::create(); - $dbRecordDataColumn = fn () => DB::selectOne('select * from timestamp_models where id = ?', [$model->id])->data; - - $this->assertStringNotContainsString('created_at', $dbRecordDataColumn()); - $this->assertStringNotContainsString('updated_at', $dbRecordDataColumn()); - - $model->update(['data' => ['virtual' => 'bar']]); - - $this->assertStringNotContainsString('created_at', $dbRecordDataColumn()); - $this->assertStringNotContainsString('updated_at', $dbRecordDataColumn()); - } -} - -class TimestampModel extends Model -{ - use VirtualColumn; - - public $timestamps = true; - protected $guarded = []; } class ParentModel extends Model diff --git a/tests/etc/migrations/2020_05_11_000001_create_timestamp_models_table.php b/tests/etc/migrations/2020_05_11_000001_create_timestamp_models_table.php deleted file mode 100644 index 975f135..0000000 --- a/tests/etc/migrations/2020_05_11_000001_create_timestamp_models_table.php +++ /dev/null @@ -1,30 +0,0 @@ -increments('id'); - - $table->timestamps(); - $table->json('data'); - }); - } - - public function down() - { - Schema::dropIfExists('timestamp_models'); - } -}