diff --git a/tests/json/test_json__integer.py b/tests/json/test_json__integer.py new file mode 100644 index 0000000..16833d1 --- /dev/null +++ b/tests/json/test_json__integer.py @@ -0,0 +1,42 @@ +from django.db import models +from django.test import TestCase +from viewflow import jsonstore + + +class IntegerFieldModel(models.Model): + data = models.JSONField(default=dict) + integer_field = jsonstore.IntegerField(null=True) + default_integer_field = jsonstore.IntegerField(default=42) + + +class Test(TestCase): + def test_crud(self): + model = IntegerFieldModel(integer_field=5) + self.assertIsInstance( + model._meta.get_field("integer_field"), models.IntegerField + ) + self.assertEqual( + model.data, + { + "integer_field": 5, + }, + ) + model.save() + + model = IntegerFieldModel.objects.get() + self.assertEqual( + model.data, + { + "integer_field": 5, + }, + ) + self.assertEqual(model.integer_field, 5) + + def test_null_value(self): + model = IntegerFieldModel() + self.assertEqual(model.integer_field, None) + self.assertEqual(model.data, {}) + + def test_default_value(self): + model = IntegerFieldModel() + self.assertEqual(model.default_integer_field, 42)