@@ -71,7 +71,7 @@ const TestEntity3 = new Entity({
71
71
describe ( 'put' , ( ) => {
72
72
73
73
it ( 'creates basic item' , ( ) => {
74
- let { TableName, Item } = TestEntity . putSync ( { pk : 'test-pk' , sk : 'test-sk' } )
74
+ let { TableName, Item } = TestEntity . generatePutParams ( { pk : 'test-pk' , sk : 'test-sk' } )
75
75
76
76
expect ( Item . pk ) . toBe ( 'test-pk' )
77
77
expect ( Item . sk ) . toBe ( 'test-sk' )
@@ -82,7 +82,7 @@ describe('put',()=>{
82
82
} )
83
83
84
84
it ( 'creates item with aliases' , ( ) => {
85
- let { Item } = TestEntity . putSync ( { email : 'test-pk' , sort : 'test-sk' , count : 5 } )
85
+ let { Item } = TestEntity . generatePutParams ( { email : 'test-pk' , sort : 'test-sk' , count : 5 } )
86
86
87
87
expect ( Item . pk ) . toBe ( 'test-pk' )
88
88
expect ( Item . sk ) . toBe ( 'test-sk' )
@@ -94,7 +94,7 @@ describe('put',()=>{
94
94
} )
95
95
96
96
it ( 'creates item with default override' , ( ) => {
97
- let { Item } = TestEntity . putSync ( { pk : 'test-pk' , sk : 'test-sk' , test_string : 'different value' } )
97
+ let { Item } = TestEntity . generatePutParams ( { pk : 'test-pk' , sk : 'test-sk' , test_string : 'different value' } )
98
98
expect ( Item . pk ) . toBe ( 'test-pk' )
99
99
expect ( Item . sk ) . toBe ( 'test-sk' )
100
100
expect ( Item . _tp ) . toBe ( 'TestEntity' )
@@ -104,7 +104,7 @@ describe('put',()=>{
104
104
} )
105
105
106
106
it ( 'creates item with saved composite field' , ( ) => {
107
- let { Item } = TestEntity2 . putSync ( {
107
+ let { Item } = TestEntity2 . generatePutParams ( {
108
108
pk : 'test-pk' ,
109
109
test_composite : 'test' ,
110
110
} )
@@ -113,17 +113,18 @@ describe('put',()=>{
113
113
} )
114
114
115
115
it ( 'creates item that ignores field with no value' , ( ) => {
116
- let { Item } = TestEntity2 . putSync ( {
116
+ let { Item } = TestEntity2 . generatePutParams ( {
117
117
pk : 'test-pk' ,
118
118
test_composite : undefined
119
119
} )
120
+
120
121
expect ( Item . pk ) . toBe ( 'test-pk' )
121
122
expect ( Item ) . not . toHaveProperty ( 'sk' )
122
123
expect ( Item ) . not . toHaveProperty ( 'test_composite' )
123
124
} )
124
125
125
126
it ( 'creates item that overrides composite key' , ( ) => {
126
- let { Item } = TestEntity2 . putSync ( {
127
+ let { Item } = TestEntity2 . generatePutParams ( {
127
128
pk : 'test-pk' ,
128
129
sk : 'override' ,
129
130
test_composite : 'test' ,
@@ -136,7 +137,7 @@ describe('put',()=>{
136
137
} )
137
138
138
139
it ( 'creates item that generates composite key' , ( ) => {
139
- let { Item } = TestEntity2 . putSync ( {
140
+ let { Item } = TestEntity2 . generatePutParams ( {
140
141
pk : 'test-pk' ,
141
142
test_composite : 'test' ,
142
143
test_composite2 : 'test2'
@@ -148,91 +149,91 @@ describe('put',()=>{
148
149
} )
149
150
150
151
it ( 'fails with undefined input' , ( ) => {
151
- expect ( ( ) => TestEntity . putSync ( ) ) . toThrow ( `'pk' or 'email' is required` )
152
+ expect ( ( ) => TestEntity . generatePutParams ( ) ) . toThrow ( `'pk' or 'email' is required` )
152
153
} )
153
154
154
155
it ( 'fails when using an undefined schema field' , ( ) => {
155
- expect ( ( ) => TestEntity . putSync ( {
156
+ expect ( ( ) => TestEntity . generatePutParams ( {
156
157
'pk' : 'test-pk' ,
157
158
'sk' : 'test-sk' ,
158
159
'unknown' : '?'
159
160
} ) ) . toThrow ( `Field 'unknown' does not have a mapping or alias` )
160
161
} )
161
162
162
163
it ( 'fails when invalid string provided with no coercion' , ( ) => {
163
- expect ( ( ) => TestEntity . putSync ( {
164
+ expect ( ( ) => TestEntity . generatePutParams ( {
164
165
'pk' : 'test-pk' ,
165
166
'sk' : 'test-sk' ,
166
167
'test_string' : 1
167
168
} ) ) . toThrow ( `'test_string' must be of type string` )
168
169
} )
169
170
170
171
it ( 'fails when invalid boolean provided with no coercion' , ( ) => {
171
- expect ( ( ) => TestEntity . putSync ( {
172
+ expect ( ( ) => TestEntity . generatePutParams ( {
172
173
'pk' : 'test-pk' ,
173
174
'sk' : 'test-sk' ,
174
175
'test_boolean' : 'x'
175
176
} ) ) . toThrow ( `'test_boolean' must be of type boolean` )
176
177
} )
177
178
178
179
it ( 'fails when invalid number provided with no coercion' , ( ) => {
179
- expect ( ( ) => TestEntity . putSync ( {
180
+ expect ( ( ) => TestEntity . generatePutParams ( {
180
181
'pk' : 'test-pk' ,
181
182
'sk' : 'test-sk' ,
182
183
'test_number' : 'x'
183
184
} ) ) . toThrow ( `'test_number' must be of type number` )
184
185
} )
185
186
186
187
it ( 'fails when invalid number cannot be coerced' , ( ) => {
187
- expect ( ( ) => TestEntity . putSync ( {
188
+ expect ( ( ) => TestEntity . generatePutParams ( {
188
189
'pk' : 'test-pk' ,
189
190
'sk' : 'test-sk' ,
190
191
'test_number_coerce' : 'x1'
191
192
} ) ) . toThrow ( `Could not convert 'x1' to a number for 'test_number_coerce'` )
192
193
} )
193
194
194
195
it ( 'fails when invalid array provided with no coercion' , ( ) => {
195
- expect ( ( ) => TestEntity . putSync ( {
196
+ expect ( ( ) => TestEntity . generatePutParams ( {
196
197
'pk' : 'test-pk' ,
197
198
'sk' : 'test-sk' ,
198
199
'test_list' : 'x'
199
200
} ) ) . toThrow ( `'test_list' must be a list (array)` )
200
201
} )
201
202
202
203
it ( 'fails when invalid map provided' , ( ) => {
203
- expect ( ( ) => TestEntity . putSync ( {
204
+ expect ( ( ) => TestEntity . generatePutParams ( {
204
205
'pk' : 'test-pk' ,
205
206
'sk' : 'test-sk' ,
206
207
'test_map' : 'x'
207
208
} ) ) . toThrow ( `'test_map' must be a map (object)` )
208
209
} )
209
210
210
211
it ( 'fails when set contains different types' , ( ) => {
211
- expect ( ( ) => TestEntity . putSync ( {
212
+ expect ( ( ) => TestEntity . generatePutParams ( {
212
213
'pk' : 'test-pk' ,
213
214
'sk' : 'test-sk' ,
214
215
'test_string_set_type' : [ 1 , 2 , 3 ]
215
216
} ) ) . toThrow ( `'test_string_set_type' must be a valid set (array) containing only string types` )
216
217
} )
217
218
218
219
it ( 'fails when set contains multiple types' , ( ) => {
219
- expect ( ( ) => TestEntity . putSync ( {
220
+ expect ( ( ) => TestEntity . generatePutParams ( {
220
221
'pk' : 'test-pk' ,
221
222
'sk' : 'test-sk' ,
222
223
'test_string_set' : [ 'test' , 1 ]
223
224
} ) ) . toThrow ( `String Set contains Number value` )
224
225
} )
225
226
226
227
it ( 'fails when set coerces array and doesn\'t match type' , ( ) => {
227
- expect ( ( ) => TestEntity . putSync ( {
228
+ expect ( ( ) => TestEntity . generatePutParams ( {
228
229
'pk' : 'test-pk' ,
229
230
'sk' : 'test-sk' ,
230
231
'test_number_set_type_coerce' : "1,2,3"
231
232
} ) ) . toThrow ( `'test_number_set_type_coerce' must be a valid set (array) of type number` )
232
233
} )
233
234
234
235
it ( 'coerces array into set' , ( ) => {
235
- let { Item } = TestEntity . putSync ( {
236
+ let { Item } = TestEntity . generatePutParams ( {
236
237
'pk' : 'test-pk' ,
237
238
'sk' : 'test-sk' ,
238
239
'test_string_set_type_coerce' : "1,2,3"
@@ -241,15 +242,15 @@ describe('put',()=>{
241
242
} )
242
243
243
244
it ( 'fails when set doesn\'t contain array with no coercion' , ( ) => {
244
- expect ( ( ) => TestEntity . putSync ( {
245
+ expect ( ( ) => TestEntity . generatePutParams ( {
245
246
'pk' : 'test-pk' ,
246
247
'sk' : 'test-sk' ,
247
248
'test_string_set' : 'test'
248
249
} ) ) . toThrow ( `'test_string_set' must be a valid set (array)` )
249
250
} )
250
251
251
252
it ( 'fails when missing a required field' , ( ) => {
252
- expect ( ( ) => TestEntity3 . putSync ( {
253
+ expect ( ( ) => TestEntity3 . generatePutParams ( {
253
254
'pk' : 'test-pk' ,
254
255
'test2' : 'test'
255
256
} ) ) . toThrow ( `'test' is a required field` )
0 commit comments