|
23 | 23 | CheckoutValidationResponseBuilder |
24 | 24 | ) |
25 | 25 | from enterprise_access.apps.bffs.checkout.serializers import CheckoutSuccessResponseSerializer |
| 26 | +from enterprise_access.apps.bffs.tests.utils import default_field_constraints |
26 | 27 | from test_utils import APITest |
27 | 28 |
|
28 | 29 |
|
@@ -68,14 +69,7 @@ def _create_minimal_valid_context(self): |
68 | 69 | 'default_by_lookup_key': 'subscription_licenses_yearly', |
69 | 70 | 'prices': [] |
70 | 71 | } |
71 | | - context.field_constraints = { |
72 | | - 'quantity': {'min': 5, 'max': 30}, |
73 | | - 'enterprise_slug': { |
74 | | - 'min_length': 3, |
75 | | - 'max_length': 30, |
76 | | - 'pattern': '^[a-z0-9-]+$' |
77 | | - } |
78 | | - } |
| 72 | + context.field_constraints = default_field_constraints |
79 | 73 | return context |
80 | 74 |
|
81 | 75 | def test_build_complete_context(self): |
@@ -108,15 +102,7 @@ def test_build_complete_context(self): |
108 | 102 | } |
109 | 103 | ] |
110 | 104 | } |
111 | | - context.field_constraints = { |
112 | | - 'quantity': {'min': 5, 'max': 30}, |
113 | | - 'enterprise_slug': { |
114 | | - 'min_length': 3, |
115 | | - 'max_length': 30, |
116 | | - 'pattern': '^[a-z0-9-]+$' |
117 | | - } |
118 | | - } |
119 | | - |
| 105 | + context.field_constraints = default_field_constraints |
120 | 106 | # Create and build response |
121 | 107 | builder = CheckoutContextResponseBuilder(context) |
122 | 108 | builder.build() |
@@ -155,9 +141,19 @@ def test_build_complete_context(self): |
155 | 141 | constraints = data['field_constraints'] |
156 | 142 | self.assertEqual(constraints['quantity']['min'], 5) |
157 | 143 | self.assertEqual(constraints['quantity']['max'], 30) |
158 | | - self.assertEqual(constraints['enterprise_slug']['min_length'], 3) |
159 | | - self.assertEqual(constraints['enterprise_slug']['max_length'], 30) |
| 144 | + self.assertEqual(constraints['enterprise_slug']['min_length'], 1) |
| 145 | + self.assertEqual(constraints['enterprise_slug']['max_length'], 255) |
160 | 146 | self.assertEqual(constraints['enterprise_slug']['pattern'], '^[a-z0-9-]+$') |
| 147 | + self.assertEqual(constraints['full_name']['min_length'], 1) |
| 148 | + self.assertEqual(constraints['full_name']['max_length'], 150) |
| 149 | + self.assertEqual(constraints['admin_email']['min_length'], 6) |
| 150 | + self.assertEqual(constraints['admin_email']['max_length'], 253) |
| 151 | + self.assertEqual(constraints['admin_email']['pattern'], '^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$') |
| 152 | + self.assertEqual(constraints['country']['min_length'], 2) |
| 153 | + self.assertEqual(constraints['country']['max_length'], 2) |
| 154 | + self.assertEqual(constraints['country']['pattern'], '^[A-Z]{2}$') |
| 155 | + self.assertEqual(constraints['company_name']['min_length'], 1) |
| 156 | + self.assertEqual(constraints['company_name']['max_length'], 255) |
161 | 157 |
|
162 | 158 | def test_build_minimal_context(self): |
163 | 159 | """ |
@@ -216,14 +212,7 @@ def test_serialize_response_data(self): |
216 | 212 | } |
217 | 213 | ] |
218 | 214 | } |
219 | | - context.field_constraints = { |
220 | | - 'quantity': {'min': 5, 'max': 30}, |
221 | | - 'enterprise_slug': { |
222 | | - 'min_length': 3, |
223 | | - 'max_length': 30, |
224 | | - 'pattern': '^[a-z0-9-]+$' |
225 | | - } |
226 | | - } |
| 215 | + context.field_constraints = default_field_constraints |
227 | 216 |
|
228 | 217 | # Build response |
229 | 218 | builder = CheckoutContextResponseBuilder(context) |
@@ -263,9 +252,19 @@ def test_serialize_response_data(self): |
263 | 252 | constraints = data['field_constraints'] |
264 | 253 | self.assertEqual(constraints['quantity']['min'], 5) |
265 | 254 | self.assertEqual(constraints['quantity']['max'], 30) |
266 | | - self.assertEqual(constraints['enterprise_slug']['min_length'], 3) |
267 | | - self.assertEqual(constraints['enterprise_slug']['max_length'], 30) |
| 255 | + self.assertEqual(constraints['enterprise_slug']['min_length'], 1) |
| 256 | + self.assertEqual(constraints['enterprise_slug']['max_length'], 255) |
268 | 257 | self.assertEqual(constraints['enterprise_slug']['pattern'], '^[a-z0-9-]+$') |
| 258 | + self.assertEqual(constraints['full_name']['min_length'], 1) |
| 259 | + self.assertEqual(constraints['full_name']['max_length'], 150) |
| 260 | + self.assertEqual(constraints['admin_email']['min_length'], 6) |
| 261 | + self.assertEqual(constraints['admin_email']['max_length'], 253) |
| 262 | + self.assertEqual(constraints['admin_email']['pattern'], '^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$') |
| 263 | + self.assertEqual(constraints['country']['min_length'], 2) |
| 264 | + self.assertEqual(constraints['country']['max_length'], 2) |
| 265 | + self.assertEqual(constraints['country']['pattern'], '^[A-Z]{2}$') |
| 266 | + self.assertEqual(constraints['company_name']['min_length'], 1) |
| 267 | + self.assertEqual(constraints['company_name']['max_length'], 255) |
269 | 268 |
|
270 | 269 | def test_serializer_validation_error(self): |
271 | 270 | """ |
|
0 commit comments