@better-auth/test-utils 1.8.0-beta.1 → 1.8.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/create-test-suite.d.mts +5 -6
- package/dist/adapter/create-test-suite.mjs +2 -1
- package/dist/adapter/suites/auth-flow.d.mts +6 -8
- package/dist/adapter/suites/auth-flow.mjs +8 -5
- package/dist/adapter/suites/basic.d.mts +8 -20
- package/dist/adapter/suites/basic.mjs +151 -101
- package/dist/adapter/suites/case-insensitive.d.mts +7 -11
- package/dist/adapter/suites/case-insensitive.mjs +12 -8
- package/dist/adapter/suites/index.d.mts +2 -1
- package/dist/adapter/suites/joins.d.mts +6 -8
- package/dist/adapter/suites/joins.mjs +2 -1
- package/dist/adapter/suites/number-id.d.mts +6 -8
- package/dist/adapter/suites/number-id.mjs +2 -1
- package/dist/adapter/suites/transactions.d.mts +6 -8
- package/dist/adapter/suites/transactions.mjs +2 -1
- package/dist/adapter/suites/uuid.d.mts +6 -8
- package/dist/adapter/suites/uuid.mjs +9 -6
- package/dist/adapter/test-adapter.d.mts +3 -15
- package/dist/adapter/test-adapter.mjs +15 -11
- package/dist/adapter.d.mts +1 -0
- package/dist/scim.d.mts +5 -6
- package/dist/scim.mjs +7 -4
- package/package.json +6 -6
|
@@ -8,7 +8,8 @@ import { organization } from "better-auth/plugins/organization";
|
|
|
8
8
|
const normalTestSuite = createTestSuite("normal", {}, (helpers, debugTools) => {
|
|
9
9
|
return {
|
|
10
10
|
"init - tests": async () => {
|
|
11
|
-
|
|
11
|
+
const opts = helpers.getBetterAuthOptions();
|
|
12
|
+
expect(opts.advanced?.database?.generateId !== "serial").toBeTruthy();
|
|
12
13
|
},
|
|
13
14
|
...getNormalTestSuiteTests(helpers, debugTools)
|
|
14
15
|
};
|
|
@@ -46,13 +47,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
46
47
|
data: user
|
|
47
48
|
});
|
|
48
49
|
expect(res.id).toEqual(transformIdOutput ? transformIdOutput(ID) : ID);
|
|
49
|
-
|
|
50
|
+
const findResult = await adapter.findOne({
|
|
50
51
|
model: "user",
|
|
51
52
|
where: [{
|
|
52
53
|
field: "id",
|
|
53
54
|
value: res.id
|
|
54
55
|
}]
|
|
55
|
-
})
|
|
56
|
+
});
|
|
57
|
+
expect(findResult).toEqual(res);
|
|
56
58
|
},
|
|
57
59
|
"create - should return null for nullable foreign keys": {
|
|
58
60
|
migrateBetterAuth: { plugins: [{
|
|
@@ -124,13 +126,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
124
126
|
},
|
|
125
127
|
"findOne - should find a model": async () => {
|
|
126
128
|
const [user] = await insertRandom("user");
|
|
127
|
-
|
|
129
|
+
const result = await adapter.findOne({
|
|
128
130
|
model: "user",
|
|
129
131
|
where: [{
|
|
130
132
|
field: "id",
|
|
131
133
|
value: user.id
|
|
132
134
|
}]
|
|
133
|
-
})
|
|
135
|
+
});
|
|
136
|
+
expect(result).toEqual(user);
|
|
134
137
|
},
|
|
135
138
|
"findOne - should not apply defaultValue if value not found": async () => {
|
|
136
139
|
await modifyBetterAuthOptions({
|
|
@@ -206,33 +209,36 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
206
209
|
},
|
|
207
210
|
"findOne - should find a model using a reference field": async () => {
|
|
208
211
|
const [user, session] = await insertRandom("session");
|
|
209
|
-
|
|
212
|
+
const result = await adapter.findOne({
|
|
210
213
|
model: "session",
|
|
211
214
|
where: [{
|
|
212
215
|
field: "userId",
|
|
213
216
|
value: user.id
|
|
214
217
|
}]
|
|
215
|
-
})
|
|
218
|
+
});
|
|
219
|
+
expect(result).toEqual(session);
|
|
216
220
|
},
|
|
217
221
|
"findOne - should not throw on record not found": async () => {
|
|
218
222
|
const useUUIDs = getBetterAuthOptions().advanced?.database?.generateId === "uuid";
|
|
219
|
-
|
|
223
|
+
const result = await adapter.findOne({
|
|
220
224
|
model: "user",
|
|
221
225
|
where: [{
|
|
222
226
|
field: "id",
|
|
223
227
|
value: useUUIDs ? crypto.randomUUID() : "100000"
|
|
224
228
|
}]
|
|
225
|
-
})
|
|
229
|
+
});
|
|
230
|
+
expect(result).toBeNull();
|
|
226
231
|
},
|
|
227
232
|
"findOne - should find a model without id": async () => {
|
|
228
233
|
const [user] = await insertRandom("user");
|
|
229
|
-
|
|
234
|
+
const result = await adapter.findOne({
|
|
230
235
|
model: "user",
|
|
231
236
|
where: [{
|
|
232
237
|
field: "email",
|
|
233
238
|
value: user.email
|
|
234
239
|
}]
|
|
235
|
-
})
|
|
240
|
+
});
|
|
241
|
+
expect(result).toEqual(user);
|
|
236
242
|
},
|
|
237
243
|
"findOne - should find a model with join": async () => {
|
|
238
244
|
const users = [];
|
|
@@ -340,14 +346,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
340
346
|
},
|
|
341
347
|
"findOne - should select fields": async () => {
|
|
342
348
|
const [user] = await insertRandom("user");
|
|
343
|
-
|
|
349
|
+
const result = await adapter.findOne({
|
|
344
350
|
model: "user",
|
|
345
351
|
where: [{
|
|
346
352
|
field: "id",
|
|
347
353
|
value: user.id
|
|
348
354
|
}],
|
|
349
355
|
select: ["email", "name"]
|
|
350
|
-
})
|
|
356
|
+
});
|
|
357
|
+
expect(result).toEqual({
|
|
351
358
|
email: user.email,
|
|
352
359
|
name: user.name
|
|
353
360
|
});
|
|
@@ -494,14 +501,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
494
501
|
},
|
|
495
502
|
forceAllowId: true
|
|
496
503
|
});
|
|
497
|
-
|
|
504
|
+
const result = await adapter.findOne({
|
|
498
505
|
model: "session",
|
|
499
506
|
where: [{
|
|
500
507
|
field: "token",
|
|
501
508
|
value: session.token
|
|
502
509
|
}],
|
|
503
510
|
join: { user: true }
|
|
504
|
-
})
|
|
511
|
+
});
|
|
512
|
+
expect(result).toEqual({
|
|
505
513
|
...session,
|
|
506
514
|
user
|
|
507
515
|
});
|
|
@@ -528,14 +536,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
528
536
|
model: "oneToOneTable",
|
|
529
537
|
data: { oneToOne: users[1].id }
|
|
530
538
|
});
|
|
531
|
-
|
|
539
|
+
const result = await adapter.findOne({
|
|
532
540
|
model: "user",
|
|
533
541
|
where: [{
|
|
534
542
|
field: "id",
|
|
535
543
|
value: users[0].id
|
|
536
544
|
}],
|
|
537
545
|
join: { oneToOneTable: true }
|
|
538
|
-
})
|
|
546
|
+
});
|
|
547
|
+
expect(result).toEqual({
|
|
539
548
|
...users[0],
|
|
540
549
|
oneToOneTable: oneToOne
|
|
541
550
|
});
|
|
@@ -554,14 +563,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
554
563
|
},
|
|
555
564
|
forceAllowId: true
|
|
556
565
|
});
|
|
557
|
-
|
|
566
|
+
const result = await adapter.findOne({
|
|
558
567
|
model: "user",
|
|
559
568
|
where: [{
|
|
560
569
|
field: "id",
|
|
561
570
|
value: user.id
|
|
562
571
|
}],
|
|
563
572
|
join: { session: true }
|
|
564
|
-
})
|
|
573
|
+
});
|
|
574
|
+
expect(result).toEqual({
|
|
565
575
|
...user,
|
|
566
576
|
session: [session]
|
|
567
577
|
});
|
|
@@ -637,7 +647,7 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
637
647
|
} }
|
|
638
648
|
}] }, true);
|
|
639
649
|
const useUUIDs = getBetterAuthOptions().advanced?.database?.generateId === "uuid";
|
|
640
|
-
|
|
650
|
+
const result = await adapter.findOne({
|
|
641
651
|
model: "user",
|
|
642
652
|
where: [{
|
|
643
653
|
field: "id",
|
|
@@ -648,7 +658,8 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
648
658
|
account: true,
|
|
649
659
|
oneToOneTable: true
|
|
650
660
|
}
|
|
651
|
-
})
|
|
661
|
+
});
|
|
662
|
+
expect(result).toBeNull();
|
|
652
663
|
},
|
|
653
664
|
"findOne - should join a model with modified field name": async () => {
|
|
654
665
|
await modifyBetterAuthOptions({
|
|
@@ -679,33 +690,36 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
679
690
|
model: "oneToOneTable",
|
|
680
691
|
data: { oneToOne: user.email }
|
|
681
692
|
});
|
|
682
|
-
|
|
693
|
+
const result = await adapter.findOne({
|
|
683
694
|
model: "user",
|
|
684
695
|
where: [{
|
|
685
696
|
field: "email",
|
|
686
697
|
value: user.email
|
|
687
698
|
}],
|
|
688
699
|
join: { oneToOneTable: true }
|
|
689
|
-
})
|
|
700
|
+
});
|
|
701
|
+
expect(result).toEqual({
|
|
690
702
|
...user,
|
|
691
703
|
oneToOneTable: oneToOne
|
|
692
704
|
});
|
|
693
705
|
},
|
|
694
706
|
"findMany - should find many models": async () => {
|
|
695
707
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
696
|
-
|
|
708
|
+
const result = await adapter.findMany({ model: "user" });
|
|
709
|
+
expect(sortModels(result)).toEqual(sortModels(users));
|
|
697
710
|
},
|
|
698
711
|
"findMany - should find many models with date fields": async () => {
|
|
699
712
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
700
713
|
const youngestUser = users.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())[0];
|
|
701
|
-
|
|
714
|
+
const result = await adapter.findMany({
|
|
702
715
|
model: "user",
|
|
703
716
|
where: [{
|
|
704
717
|
field: "createdAt",
|
|
705
718
|
value: youngestUser.createdAt,
|
|
706
719
|
operator: "lt"
|
|
707
720
|
}]
|
|
708
|
-
})
|
|
721
|
+
});
|
|
722
|
+
expect(sortModels(result)).toEqual(sortModels(users.filter((user) => user.createdAt < youngestUser.createdAt)));
|
|
709
723
|
},
|
|
710
724
|
"findMany - should find many models with join": async () => {
|
|
711
725
|
let expectedResult = [];
|
|
@@ -961,11 +975,12 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
961
975
|
forceAllowId: true
|
|
962
976
|
});
|
|
963
977
|
}
|
|
964
|
-
|
|
978
|
+
const result = await adapter.findMany({
|
|
965
979
|
model: "user",
|
|
966
980
|
join: { session: true },
|
|
967
981
|
offset: 2
|
|
968
|
-
})
|
|
982
|
+
});
|
|
983
|
+
expect(result.length).toBe(3);
|
|
969
984
|
},
|
|
970
985
|
"findMany - should find many with join and sortBy": async () => {
|
|
971
986
|
let n = -1;
|
|
@@ -1154,13 +1169,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1154
1169
|
},
|
|
1155
1170
|
"findMany - should return an empty array when no models are found": async () => {
|
|
1156
1171
|
const useUUIDs = getBetterAuthOptions().advanced?.database?.generateId === "uuid";
|
|
1157
|
-
|
|
1172
|
+
const result = await adapter.findMany({
|
|
1158
1173
|
model: "user",
|
|
1159
1174
|
where: [{
|
|
1160
1175
|
field: "id",
|
|
1161
1176
|
value: useUUIDs ? crypto.randomUUID() : "100000"
|
|
1162
1177
|
}]
|
|
1163
|
-
})
|
|
1178
|
+
});
|
|
1179
|
+
expect(result).toEqual([]);
|
|
1164
1180
|
},
|
|
1165
1181
|
"findMany - should return empty array when base records don't exist with joins": async () => {
|
|
1166
1182
|
await modifyBetterAuthOptions({ plugins: [{
|
|
@@ -1176,7 +1192,7 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1176
1192
|
} } } }
|
|
1177
1193
|
}] }, true);
|
|
1178
1194
|
const useUUIDs = getBetterAuthOptions().advanced?.database?.generateId === "uuid";
|
|
1179
|
-
|
|
1195
|
+
const result = await adapter.findMany({
|
|
1180
1196
|
model: "user",
|
|
1181
1197
|
where: [{
|
|
1182
1198
|
field: "id",
|
|
@@ -1187,18 +1203,20 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1187
1203
|
account: true,
|
|
1188
1204
|
oneToOneTable: true
|
|
1189
1205
|
}
|
|
1190
|
-
})
|
|
1206
|
+
});
|
|
1207
|
+
expect(result).toEqual([]);
|
|
1191
1208
|
},
|
|
1192
1209
|
"findMany - should find many models with starts_with operator": async () => {
|
|
1193
1210
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1194
|
-
|
|
1211
|
+
const result = await adapter.findMany({
|
|
1195
1212
|
model: "user",
|
|
1196
1213
|
where: [{
|
|
1197
1214
|
field: "name",
|
|
1198
1215
|
value: "user",
|
|
1199
1216
|
operator: "starts_with"
|
|
1200
1217
|
}]
|
|
1201
|
-
})
|
|
1218
|
+
});
|
|
1219
|
+
expect(sortModels(result)).toEqual(sortModels(users));
|
|
1202
1220
|
},
|
|
1203
1221
|
"findMany - starts_with should not interpret regex patterns": async () => {
|
|
1204
1222
|
const userTemplate = await generate("user");
|
|
@@ -1307,14 +1325,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1307
1325
|
"findMany - should find many models with contains operator": async () => {
|
|
1308
1326
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1309
1327
|
expect(users[0].email).toContain("@email.com");
|
|
1310
|
-
|
|
1328
|
+
const result = await adapter.findMany({
|
|
1311
1329
|
model: "user",
|
|
1312
1330
|
where: [{
|
|
1313
1331
|
field: "email",
|
|
1314
1332
|
value: "mail",
|
|
1315
1333
|
operator: "contains"
|
|
1316
1334
|
}]
|
|
1317
|
-
})
|
|
1335
|
+
});
|
|
1336
|
+
expect(sortModels(result)).toEqual(sortModels(users));
|
|
1318
1337
|
},
|
|
1319
1338
|
"findMany - should handle multiple where conditions with different operators": async () => {
|
|
1320
1339
|
const testData = [{
|
|
@@ -1390,36 +1409,39 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1390
1409
|
},
|
|
1391
1410
|
"findMany - should find many models with contains operator (using symbol)": async () => {
|
|
1392
1411
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1393
|
-
|
|
1412
|
+
const result = await adapter.findMany({
|
|
1394
1413
|
model: "user",
|
|
1395
1414
|
where: [{
|
|
1396
1415
|
field: "email",
|
|
1397
1416
|
value: "@",
|
|
1398
1417
|
operator: "contains"
|
|
1399
1418
|
}]
|
|
1400
|
-
})
|
|
1419
|
+
});
|
|
1420
|
+
expect(sortModels(result)).toEqual(sortModels(users));
|
|
1401
1421
|
},
|
|
1402
1422
|
"findMany - should find many models with eq operator": async () => {
|
|
1403
1423
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1404
|
-
|
|
1424
|
+
const result = await adapter.findMany({
|
|
1405
1425
|
model: "user",
|
|
1406
1426
|
where: [{
|
|
1407
1427
|
field: "email",
|
|
1408
1428
|
value: users[0].email,
|
|
1409
1429
|
operator: "eq"
|
|
1410
1430
|
}]
|
|
1411
|
-
})
|
|
1431
|
+
});
|
|
1432
|
+
expect(sortModels(result)).toEqual(sortModels([users[0]]));
|
|
1412
1433
|
},
|
|
1413
1434
|
"findMany - should find many models with ne operator": async () => {
|
|
1414
1435
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1415
|
-
|
|
1436
|
+
const result = await adapter.findMany({
|
|
1416
1437
|
model: "user",
|
|
1417
1438
|
where: [{
|
|
1418
1439
|
field: "email",
|
|
1419
1440
|
value: users[0].email,
|
|
1420
1441
|
operator: "ne"
|
|
1421
1442
|
}]
|
|
1422
|
-
})
|
|
1443
|
+
});
|
|
1444
|
+
expect(sortModels(result)).toEqual(sortModels(users.slice(1)));
|
|
1423
1445
|
},
|
|
1424
1446
|
"findMany - should find many models with gt operator": async () => {
|
|
1425
1447
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
@@ -1492,14 +1514,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1492
1514
|
},
|
|
1493
1515
|
"findMany - should find many models with not_in operator": async () => {
|
|
1494
1516
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
1495
|
-
|
|
1517
|
+
const result = await adapter.findMany({
|
|
1496
1518
|
model: "user",
|
|
1497
1519
|
where: [{
|
|
1498
1520
|
field: "id",
|
|
1499
1521
|
value: [users[0].id, users[1].id],
|
|
1500
1522
|
operator: "not_in"
|
|
1501
1523
|
}]
|
|
1502
|
-
})
|
|
1524
|
+
});
|
|
1525
|
+
expect(sortModels(result)).toEqual([users[2]]);
|
|
1503
1526
|
},
|
|
1504
1527
|
"findMany - should find many models with sortBy": async () => {
|
|
1505
1528
|
let n = -1;
|
|
@@ -1540,13 +1563,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1540
1563
|
direction: "asc"
|
|
1541
1564
|
}
|
|
1542
1565
|
});
|
|
1543
|
-
|
|
1566
|
+
const desc = await adapter.findMany({
|
|
1544
1567
|
model: "user",
|
|
1545
1568
|
sortBy: {
|
|
1546
1569
|
field: "id",
|
|
1547
1570
|
direction: "desc"
|
|
1548
1571
|
}
|
|
1549
|
-
})
|
|
1572
|
+
});
|
|
1573
|
+
expect(desc.map((x) => x.id)).toEqual(asc.map((x) => x.id).reverse());
|
|
1550
1574
|
},
|
|
1551
1575
|
"findMany - should find many models with limit": async () => {
|
|
1552
1576
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
@@ -1558,12 +1582,12 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1558
1582
|
expect(users.find((x) => x.id === result[0].id)).not.toBeNull();
|
|
1559
1583
|
},
|
|
1560
1584
|
"findMany - should find many models with offset": async () => {
|
|
1561
|
-
|
|
1562
|
-
await
|
|
1563
|
-
expect((await adapter.findMany({
|
|
1585
|
+
await insertRandom("user", 10);
|
|
1586
|
+
const result = await adapter.findMany({
|
|
1564
1587
|
model: "user",
|
|
1565
1588
|
offset: 2
|
|
1566
|
-
})
|
|
1589
|
+
});
|
|
1590
|
+
expect(result.length).toEqual(8);
|
|
1567
1591
|
},
|
|
1568
1592
|
"findMany - should find many models with limit and offset": async () => {
|
|
1569
1593
|
await insertRandom("user", 5);
|
|
@@ -1609,14 +1633,15 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1609
1633
|
}
|
|
1610
1634
|
} } } }, true);
|
|
1611
1635
|
const users = (await insertRandom("user", 5)).map((x) => x[0]);
|
|
1612
|
-
|
|
1636
|
+
const result = await adapter.findMany({
|
|
1613
1637
|
model: "user",
|
|
1614
1638
|
sortBy: {
|
|
1615
1639
|
field: "numericField",
|
|
1616
1640
|
direction: "asc"
|
|
1617
1641
|
},
|
|
1618
1642
|
limit: 2
|
|
1619
|
-
})
|
|
1643
|
+
});
|
|
1644
|
+
expect(result).toEqual(users.sort((a, b) => a.numericField - b.numericField).slice(0, 2));
|
|
1620
1645
|
},
|
|
1621
1646
|
"findMany - should find many models with sortBy and limit and offset": async () => {
|
|
1622
1647
|
let n = -1;
|
|
@@ -1724,11 +1749,12 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1724
1749
|
expect(findResult).toEqual(expectedResult);
|
|
1725
1750
|
},
|
|
1726
1751
|
"update - should return null when where is empty": async () => {
|
|
1727
|
-
|
|
1752
|
+
const result = await adapter.update({
|
|
1728
1753
|
model: "user",
|
|
1729
1754
|
where: [],
|
|
1730
1755
|
update: { name: "test-name" }
|
|
1731
|
-
})
|
|
1756
|
+
});
|
|
1757
|
+
expect(result).toBeNull();
|
|
1732
1758
|
},
|
|
1733
1759
|
"updateMany - should update all models when where is empty": async () => {
|
|
1734
1760
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
@@ -1812,7 +1838,7 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1812
1838
|
});
|
|
1813
1839
|
expect(won).not.toBeNull();
|
|
1814
1840
|
expect(won.image).toBe(image);
|
|
1815
|
-
|
|
1841
|
+
const lost = await adapter.incrementOne({
|
|
1816
1842
|
model: "user",
|
|
1817
1843
|
where: [{
|
|
1818
1844
|
field: "id",
|
|
@@ -1823,14 +1849,16 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1823
1849
|
}],
|
|
1824
1850
|
increment: {},
|
|
1825
1851
|
set: { image: "https://example.com/should-not-apply.png" }
|
|
1826
|
-
})
|
|
1827
|
-
expect(
|
|
1852
|
+
});
|
|
1853
|
+
expect(lost).toBeNull();
|
|
1854
|
+
const after = await adapter.findOne({
|
|
1828
1855
|
model: "user",
|
|
1829
1856
|
where: [{
|
|
1830
1857
|
field: "id",
|
|
1831
1858
|
value: transitionUser.id
|
|
1832
1859
|
}]
|
|
1833
|
-
})
|
|
1860
|
+
});
|
|
1861
|
+
expect(after.image).toBe(image);
|
|
1834
1862
|
},
|
|
1835
1863
|
"delete - should delete a model": async () => {
|
|
1836
1864
|
const [user] = await insertRandom("user");
|
|
@@ -1841,13 +1869,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1841
1869
|
value: user.id
|
|
1842
1870
|
}]
|
|
1843
1871
|
});
|
|
1844
|
-
|
|
1872
|
+
const result = await adapter.findOne({
|
|
1845
1873
|
model: "user",
|
|
1846
1874
|
where: [{
|
|
1847
1875
|
field: "id",
|
|
1848
1876
|
value: user.id
|
|
1849
1877
|
}]
|
|
1850
|
-
})
|
|
1878
|
+
});
|
|
1879
|
+
expect(result).toBeNull();
|
|
1851
1880
|
},
|
|
1852
1881
|
"delete - should not throw on record not found": async () => {
|
|
1853
1882
|
const useUUIDs = getBetterAuthOptions().advanced?.database?.generateId === "uuid";
|
|
@@ -1871,13 +1900,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1871
1900
|
value: verification.identifier
|
|
1872
1901
|
}]
|
|
1873
1902
|
});
|
|
1874
|
-
|
|
1903
|
+
const result = await adapter.findOne({
|
|
1875
1904
|
model: "verification",
|
|
1876
1905
|
where: [{
|
|
1877
1906
|
field: "identifier",
|
|
1878
1907
|
value: verification.identifier
|
|
1879
1908
|
}]
|
|
1880
|
-
})
|
|
1909
|
+
});
|
|
1910
|
+
expect(result).toBeNull();
|
|
1881
1911
|
},
|
|
1882
1912
|
"deleteMany - should delete many models": async () => {
|
|
1883
1913
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
@@ -1893,7 +1923,8 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1893
1923
|
connector: "OR"
|
|
1894
1924
|
}]
|
|
1895
1925
|
});
|
|
1896
|
-
|
|
1926
|
+
const result = await adapter.findMany({ model: "user" });
|
|
1927
|
+
expect(sortModels(result)).toEqual(sortModels(users.slice(2)));
|
|
1897
1928
|
},
|
|
1898
1929
|
"deleteMany - starts_with should not interpret regex patterns": async () => {
|
|
1899
1930
|
const userTemplate = await generate("user");
|
|
@@ -1914,20 +1945,24 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1914
1945
|
operator: "starts_with"
|
|
1915
1946
|
}]
|
|
1916
1947
|
});
|
|
1917
|
-
|
|
1948
|
+
const deleted = await adapter.findOne({
|
|
1918
1949
|
model: "user",
|
|
1919
1950
|
where: [{
|
|
1920
1951
|
field: "id",
|
|
1921
1952
|
value: literalRegexUser.id
|
|
1922
1953
|
}]
|
|
1923
|
-
})
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1954
|
+
});
|
|
1955
|
+
expect(deleted).toBeNull();
|
|
1956
|
+
for (const user of normalUsers) {
|
|
1957
|
+
const stillThere = await adapter.findOne({
|
|
1958
|
+
model: "user",
|
|
1959
|
+
where: [{
|
|
1960
|
+
field: "id",
|
|
1961
|
+
value: user.id
|
|
1962
|
+
}]
|
|
1963
|
+
});
|
|
1964
|
+
expect(stillThere).not.toBeNull();
|
|
1965
|
+
}
|
|
1931
1966
|
},
|
|
1932
1967
|
"deleteMany - ends_with should not interpret regex patterns": async () => {
|
|
1933
1968
|
const userTemplate = await generate("user");
|
|
@@ -1948,20 +1983,24 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1948
1983
|
operator: "ends_with"
|
|
1949
1984
|
}]
|
|
1950
1985
|
});
|
|
1951
|
-
|
|
1986
|
+
const deleted = await adapter.findOne({
|
|
1952
1987
|
model: "user",
|
|
1953
1988
|
where: [{
|
|
1954
1989
|
field: "id",
|
|
1955
1990
|
value: literalRegexUser.id
|
|
1956
1991
|
}]
|
|
1957
|
-
})
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1992
|
+
});
|
|
1993
|
+
expect(deleted).toBeNull();
|
|
1994
|
+
for (const user of normalUsers) {
|
|
1995
|
+
const stillThere = await adapter.findOne({
|
|
1996
|
+
model: "user",
|
|
1997
|
+
where: [{
|
|
1998
|
+
field: "id",
|
|
1999
|
+
value: user.id
|
|
2000
|
+
}]
|
|
2001
|
+
});
|
|
2002
|
+
expect(stillThere).not.toBeNull();
|
|
2003
|
+
}
|
|
1965
2004
|
},
|
|
1966
2005
|
"deleteMany - contains should not interpret regex patterns": async () => {
|
|
1967
2006
|
const userTemplate = await generate("user");
|
|
@@ -1982,20 +2021,24 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
1982
2021
|
operator: "contains"
|
|
1983
2022
|
}]
|
|
1984
2023
|
});
|
|
1985
|
-
|
|
2024
|
+
const deleted = await adapter.findOne({
|
|
1986
2025
|
model: "user",
|
|
1987
2026
|
where: [{
|
|
1988
2027
|
field: "id",
|
|
1989
2028
|
value: literalRegexUser.id
|
|
1990
2029
|
}]
|
|
1991
|
-
})
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
2030
|
+
});
|
|
2031
|
+
expect(deleted).toBeNull();
|
|
2032
|
+
for (const user of normalUsers) {
|
|
2033
|
+
const stillThere = await adapter.findOne({
|
|
2034
|
+
model: "user",
|
|
2035
|
+
where: [{
|
|
2036
|
+
field: "id",
|
|
2037
|
+
value: user.id
|
|
2038
|
+
}]
|
|
2039
|
+
});
|
|
2040
|
+
expect(stillThere).not.toBeNull();
|
|
2041
|
+
}
|
|
1999
2042
|
},
|
|
2000
2043
|
"deleteMany - should delete many models with numeric values": async () => {
|
|
2001
2044
|
let i = 0;
|
|
@@ -2021,7 +2064,8 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2021
2064
|
operator: "gt"
|
|
2022
2065
|
}]
|
|
2023
2066
|
});
|
|
2024
|
-
|
|
2067
|
+
const result = await adapter.findMany({ model: "user" });
|
|
2068
|
+
expect(result).toEqual([users[0]]);
|
|
2025
2069
|
},
|
|
2026
2070
|
"deleteMany - should delete many models with boolean values": async () => {
|
|
2027
2071
|
const users = (await insertRandom("user", 3)).map((x) => x[0]);
|
|
@@ -2057,14 +2101,16 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2057
2101
|
},
|
|
2058
2102
|
"count - should count many models": async () => {
|
|
2059
2103
|
const users = await insertRandom("user", 15);
|
|
2060
|
-
|
|
2104
|
+
const result = await adapter.count({ model: "user" });
|
|
2105
|
+
expect(result).toEqual(users.length);
|
|
2061
2106
|
},
|
|
2062
2107
|
"count - should return 0 with no rows to count": async () => {
|
|
2063
|
-
|
|
2108
|
+
const result = await adapter.count({ model: "user" });
|
|
2109
|
+
expect(result).toEqual(0);
|
|
2064
2110
|
},
|
|
2065
2111
|
"count - should count with where clause": async () => {
|
|
2066
2112
|
const users = (await insertRandom("user", 15)).map((x) => x[0]);
|
|
2067
|
-
|
|
2113
|
+
const result = await adapter.count({
|
|
2068
2114
|
model: "user",
|
|
2069
2115
|
where: [{
|
|
2070
2116
|
field: "id",
|
|
@@ -2075,7 +2121,8 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2075
2121
|
value: users[3].id,
|
|
2076
2122
|
connector: "OR"
|
|
2077
2123
|
}]
|
|
2078
|
-
})
|
|
2124
|
+
});
|
|
2125
|
+
expect(result).toEqual(2);
|
|
2079
2126
|
},
|
|
2080
2127
|
"update - should correctly return record when updating a field used in where clause": async () => {
|
|
2081
2128
|
const [user] = await insertRandom("user");
|
|
@@ -2100,13 +2147,14 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2100
2147
|
});
|
|
2101
2148
|
expect(foundUser).toBeDefined();
|
|
2102
2149
|
expect(foundUser.id).toBe(user.id);
|
|
2103
|
-
|
|
2150
|
+
const oldUser = await adapter.findOne({
|
|
2104
2151
|
model: "user",
|
|
2105
2152
|
where: [{
|
|
2106
2153
|
field: "email",
|
|
2107
2154
|
value: originalEmail
|
|
2108
2155
|
}]
|
|
2109
|
-
})
|
|
2156
|
+
});
|
|
2157
|
+
expect(oldUser).toBeNull();
|
|
2110
2158
|
},
|
|
2111
2159
|
"update - should handle updating multiple fields including where clause field": async () => {
|
|
2112
2160
|
const [user] = await insertRandom("user");
|
|
@@ -2989,7 +3037,7 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2989
3037
|
expect(winner).not.toBeNull();
|
|
2990
3038
|
expect(winner.id).toBe(user.id);
|
|
2991
3039
|
expect(winner.emailVerified).toBe(!user.emailVerified);
|
|
2992
|
-
|
|
3040
|
+
const loser = await adapter.update({
|
|
2993
3041
|
model: "user",
|
|
2994
3042
|
where: [{
|
|
2995
3043
|
field: "id",
|
|
@@ -2999,14 +3047,16 @@ const getNormalTestSuiteTests = ({ adapter, generate, insertRandom, modifyBetter
|
|
|
2999
3047
|
value: user.emailVerified
|
|
3000
3048
|
}],
|
|
3001
3049
|
update: { emailVerified: user.emailVerified }
|
|
3002
|
-
})
|
|
3003
|
-
expect(
|
|
3050
|
+
});
|
|
3051
|
+
expect(loser).toBeNull();
|
|
3052
|
+
const after = await adapter.findOne({
|
|
3004
3053
|
model: "user",
|
|
3005
3054
|
where: [{
|
|
3006
3055
|
field: "id",
|
|
3007
3056
|
value: user.id
|
|
3008
3057
|
}]
|
|
3009
|
-
})
|
|
3058
|
+
});
|
|
3059
|
+
expect(after.emailVerified).toBe(!user.emailVerified);
|
|
3010
3060
|
}
|
|
3011
3061
|
};
|
|
3012
3062
|
};
|