Skip to content

Commit 2b31a38

Browse files
replace expect.any(Object) with specific properties
1 parent 813d41e commit 2b31a38

File tree

6 files changed

+281
-36
lines changed

6 files changed

+281
-36
lines changed

__tests__/BankAccountsApi.spec.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ describe("BankAccountsApi", () => {
8686
const created = await bankApi.create(bankAccount);
8787
return created.id;
8888
} catch (error) {
89-
console.log(`Failed to create bank account: ${error}`);
9089
return null;
9190
}
9291
}
@@ -98,19 +97,31 @@ describe("BankAccountsApi", () => {
9897
...createdIds.filter((id): id is string => id !== null)
9998
);
10099
} catch (error) {
101-
console.log(`Error during bank account creation: ${error}`);
100+
// Continue without created bank accounts if creation fails
102101
}
103102

104-
// Wait a moment for API processing
105-
await new Promise((resolve) => setTimeout(resolve, 1000));
106-
107103
// Get pagination data with a small limit to force pagination
108104
const response = await bankApi.list(3);
109105

110106
// Verify we have pagination data
111107
expect(response).toEqual(
112108
expect.objectContaining({
113-
data: expect.arrayContaining([expect.any(Object)]),
109+
data: expect.arrayContaining([
110+
expect.objectContaining({
111+
id: expect.stringMatching(/^bank_[a-zA-Z0-9]+$/),
112+
routing_number: expect.any(String),
113+
account_number: expect.any(String),
114+
account_type: expect.stringMatching(/^(company|individual)$/),
115+
signatory: expect.any(String),
116+
date_created: expect.stringMatching(
117+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
118+
),
119+
date_modified: expect.stringMatching(
120+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
121+
),
122+
object: "bank_account",
123+
}),
124+
]),
114125
})
115126
);
116127

__tests__/CampaignsApi.spec.ts

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,20 @@ describe("CampaignsApi", () => {
149149
const response = await new CampaignsApi(CONFIG_FOR_INTEGRATION).list();
150150
expect(response).toEqual(
151151
expect.objectContaining({
152-
data: expect.arrayContaining([expect.any(Object)]),
152+
data: expect.arrayContaining([
153+
expect.objectContaining({
154+
id: expect.stringMatching(/^cmp_[a-zA-Z0-9]+$/),
155+
name: expect.any(String),
156+
schedule_type: expect.stringMatching(/^(immediate|scheduled)$/),
157+
date_created: expect.stringMatching(
158+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
159+
),
160+
date_modified: expect.stringMatching(
161+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
162+
),
163+
object: "campaign",
164+
}),
165+
]),
153166
})
154167
);
155168
});
@@ -161,7 +174,20 @@ describe("CampaignsApi", () => {
161174
);
162175
expect(response).toEqual(
163176
expect.objectContaining({
164-
data: expect.arrayContaining([expect.any(Object)]),
177+
data: expect.arrayContaining([
178+
expect.objectContaining({
179+
id: expect.stringMatching(/^cmp_[a-zA-Z0-9]+$/),
180+
name: expect.any(String),
181+
schedule_type: expect.stringMatching(/^(immediate|scheduled)$/),
182+
date_created: expect.stringMatching(
183+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
184+
),
185+
date_modified: expect.stringMatching(
186+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
187+
),
188+
object: "campaign",
189+
}),
190+
]),
165191
total_count: expect.any(Number),
166192
})
167193
);
@@ -172,7 +198,20 @@ describe("CampaignsApi", () => {
172198
const response = await campaignsApi.list();
173199
expect(response).toEqual(
174200
expect.objectContaining({
175-
data: expect.arrayContaining([expect.any(Object)]),
201+
data: expect.arrayContaining([
202+
expect.objectContaining({
203+
id: expect.stringMatching(/^cmp_[a-zA-Z0-9]+$/),
204+
name: expect.any(String),
205+
schedule_type: expect.stringMatching(/^(immediate|scheduled)$/),
206+
date_created: expect.stringMatching(
207+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
208+
),
209+
date_modified: expect.stringMatching(
210+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
211+
),
212+
object: "campaign",
213+
}),
214+
]),
176215
})
177216
);
178217

@@ -189,7 +228,20 @@ describe("CampaignsApi", () => {
189228
);
190229
expect(responseAfter).toEqual(
191230
expect.objectContaining({
192-
data: expect.arrayContaining([expect.any(Object)]),
231+
data: expect.arrayContaining([
232+
expect.objectContaining({
233+
id: expect.stringMatching(/^cmp_[a-zA-Z0-9]+$/),
234+
name: expect.any(String),
235+
schedule_type: expect.stringMatching(/^(immediate|scheduled)$/),
236+
date_created: expect.stringMatching(
237+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
238+
),
239+
date_modified: expect.stringMatching(
240+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
241+
),
242+
object: "campaign",
243+
}),
244+
]),
193245
previous_url: expect.any(String),
194246
})
195247
);
@@ -204,7 +256,22 @@ describe("CampaignsApi", () => {
204256
const responseBefore = await campaignsApi.list(3, undefined, before);
205257
expect(responseBefore).toEqual(
206258
expect.objectContaining({
207-
data: expect.arrayContaining([expect.any(Object)]),
259+
data: expect.arrayContaining([
260+
expect.objectContaining({
261+
id: expect.stringMatching(/^cmp_[a-zA-Z0-9]+$/),
262+
name: expect.any(String),
263+
schedule_type: expect.stringMatching(
264+
/^(immediate|scheduled)$/
265+
),
266+
date_created: expect.stringMatching(
267+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
268+
),
269+
date_modified: expect.stringMatching(
270+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
271+
),
272+
object: "campaign",
273+
}),
274+
]),
208275
})
209276
);
210277
expect(responseBefore.data?.length).toBeGreaterThan(0);

__tests__/CardsApi.spec.ts

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,20 @@ describe("CardsApi", () => {
139139
const response = await new CardsApi(CONFIG_FOR_INTEGRATION).list();
140140
expect(response).toEqual(
141141
expect.objectContaining({
142-
data: expect.arrayContaining([expect.any(Object)]),
142+
data: expect.arrayContaining([
143+
expect.objectContaining({
144+
id: expect.stringMatching(/^card_[a-zA-Z0-9]+$/),
145+
description: expect.any(String),
146+
size: expect.stringMatching(/^(3\.375x2\.125|2\.125x3\.375)$/),
147+
date_created: expect.stringMatching(
148+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
149+
),
150+
date_modified: expect.stringMatching(
151+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
152+
),
153+
object: "card",
154+
}),
155+
]),
143156
})
144157
);
145158

@@ -155,7 +168,20 @@ describe("CardsApi", () => {
155168
);
156169
expect(responseAfter).toEqual(
157170
expect.objectContaining({
158-
data: expect.arrayContaining([expect.any(Object)]),
171+
data: expect.arrayContaining([
172+
expect.objectContaining({
173+
id: expect.stringMatching(/^card_[a-zA-Z0-9]+$/),
174+
description: expect.any(String),
175+
size: expect.stringMatching(/^(3\.375x2\.125|2\.125x3\.375)$/),
176+
date_created: expect.stringMatching(
177+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
178+
),
179+
date_modified: expect.stringMatching(
180+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
181+
),
182+
object: "card",
183+
}),
184+
]),
159185
previous_url: expect.any(String),
160186
})
161187
);
@@ -173,7 +199,22 @@ describe("CardsApi", () => {
173199
).list(3, before);
174200
expect(responseBefore).toEqual(
175201
expect.objectContaining({
176-
data: expect.arrayContaining([expect.any(Object)]),
202+
data: expect.arrayContaining([
203+
expect.objectContaining({
204+
id: expect.stringMatching(/^card_[a-zA-Z0-9]+$/),
205+
description: expect.any(String),
206+
size: expect.stringMatching(
207+
/^(3\.375x2\.125|2\.125x3\.375)$/
208+
),
209+
date_created: expect.stringMatching(
210+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
211+
),
212+
date_modified: expect.stringMatching(
213+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
214+
),
215+
object: "card",
216+
}),
217+
]),
177218
})
178219
);
179220
const previousPage: Card[] = responseBefore.data || [];

__tests__/PostcardsApi.spec.ts

Lines changed: 93 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -144,31 +144,42 @@ describe("postcardsApi", () => {
144144
})
145145
);
146146

147-
// Create all postcards
147+
// Create all postcards in parallel with error handling
148148
try {
149149
const creationPromises = postcardsToCreate.map(async (postcard) => {
150150
try {
151151
await postcardsApi.create(postcard);
152152
} catch (error) {
153-
console.log(`Failed to create postcard: ${error}`);
153+
// Continue if individual postcard creation fails
154154
}
155155
});
156156

157157
await Promise.all(creationPromises);
158158
} catch (error) {
159-
console.log(`Error during postcard creation: ${error}`);
159+
// Continue without created postcards if creation fails
160160
}
161161

162-
// Wait a moment for API processing
163-
await new Promise((resolve) => setTimeout(resolve, 2000));
164-
165162
// Get pagination data with a small limit to force pagination
166163
const response = await postcardsApi.list(3);
167164

168165
// Verify we have response data
169166
expect(response).toEqual(
170167
expect.objectContaining({
171-
data: expect.any(Array),
168+
data: expect.arrayContaining([
169+
expect.objectContaining({
170+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
171+
url: expect.stringMatching(
172+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
173+
),
174+
date_created: expect.stringMatching(
175+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
176+
),
177+
date_modified: expect.stringMatching(
178+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
179+
),
180+
object: "postcard",
181+
}),
182+
]),
172183
})
173184
);
174185

@@ -196,7 +207,21 @@ describe("postcardsApi", () => {
196207
const response = await postcardsApi.list();
197208
expect(response).toEqual(
198209
expect.objectContaining({
199-
data: expect.any(Array),
210+
data: expect.arrayContaining([
211+
expect.objectContaining({
212+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
213+
url: expect.stringMatching(
214+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
215+
),
216+
date_created: expect.stringMatching(
217+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
218+
),
219+
date_modified: expect.stringMatching(
220+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
221+
),
222+
object: "postcard",
223+
}),
224+
]),
200225
})
201226
);
202227
postcardList = response.data || [];
@@ -209,7 +234,21 @@ describe("postcardsApi", () => {
209234
const responseAfter = await postcardsApi.list(3, undefined, nextUrl);
210235
expect(responseAfter).toEqual(
211236
expect.objectContaining({
212-
data: expect.any(Array),
237+
data: expect.arrayContaining([
238+
expect.objectContaining({
239+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
240+
url: expect.stringMatching(
241+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
242+
),
243+
date_created: expect.stringMatching(
244+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
245+
),
246+
date_modified: expect.stringMatching(
247+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
248+
),
249+
object: "postcard",
250+
}),
251+
]),
213252
})
214253
);
215254
const postcardList2: Postcard[] = responseAfter.data || [];
@@ -219,7 +258,21 @@ describe("postcardsApi", () => {
219258
const response = await postcardsApi.list();
220259
expect(response).toEqual(
221260
expect.objectContaining({
222-
data: expect.any(Array),
261+
data: expect.arrayContaining([
262+
expect.objectContaining({
263+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
264+
url: expect.stringMatching(
265+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
266+
),
267+
date_created: expect.stringMatching(
268+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
269+
),
270+
date_modified: expect.stringMatching(
271+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
272+
),
273+
object: "postcard",
274+
}),
275+
]),
223276
})
224277
);
225278
expect(Array.isArray(response.data)).toBeTruthy();
@@ -231,7 +284,21 @@ describe("postcardsApi", () => {
231284
const responseBefore = await postcardsApi.list(3, previousUrl);
232285
expect(responseBefore).toEqual(
233286
expect.objectContaining({
234-
data: expect.any(Array),
287+
data: expect.arrayContaining([
288+
expect.objectContaining({
289+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
290+
url: expect.stringMatching(
291+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
292+
),
293+
date_created: expect.stringMatching(
294+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
295+
),
296+
date_modified: expect.stringMatching(
297+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
298+
),
299+
object: "postcard",
300+
}),
301+
]),
235302
})
236303
);
237304
const postcardList3: Postcard[] = responseBefore.data || [];
@@ -241,7 +308,21 @@ describe("postcardsApi", () => {
241308
const response = await postcardsApi.list();
242309
expect(response).toEqual(
243310
expect.objectContaining({
244-
data: expect.any(Array),
311+
data: expect.arrayContaining([
312+
expect.objectContaining({
313+
id: expect.stringMatching(/^psc_[a-zA-Z0-9]+$/),
314+
url: expect.stringMatching(
315+
/^https:\/\/(lob-assets|lob-assets-staging)\.com\//
316+
),
317+
date_created: expect.stringMatching(
318+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
319+
),
320+
date_modified: expect.stringMatching(
321+
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
322+
),
323+
object: "postcard",
324+
}),
325+
]),
245326
})
246327
);
247328
expect(Array.isArray(response.data)).toBeTruthy();

0 commit comments

Comments
 (0)