@nest-boot/auth 7.12.1 → 8.0.0-beta.0

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.
Files changed (177) hide show
  1. package/dist/adapters/mikro-orm-adapter.d.ts +2 -2
  2. package/dist/adapters/mikro-orm-adapter.js +4 -9
  3. package/dist/adapters/mikro-orm-adapter.js.map +1 -1
  4. package/dist/auth-module-options.interface.d.ts +3 -2
  5. package/dist/auth-module-options.interface.js +1 -2
  6. package/dist/auth.constants.js +2 -5
  7. package/dist/auth.constants.js.map +1 -1
  8. package/dist/auth.guard.js +12 -14
  9. package/dist/auth.guard.js.map +1 -1
  10. package/dist/auth.middleware.d.ts +4 -4
  11. package/dist/auth.middleware.js +19 -19
  12. package/dist/auth.middleware.js.map +1 -1
  13. package/dist/auth.module-definition.d.ts +1 -1
  14. package/dist/auth.module-definition.js +3 -7
  15. package/dist/auth.module-definition.js.map +1 -1
  16. package/dist/auth.module.d.ts +3 -3
  17. package/dist/auth.module.js +48 -47
  18. package/dist/auth.module.js.map +1 -1
  19. package/dist/auth.service.d.ts +200 -200
  20. package/dist/auth.service.js +6 -8
  21. package/dist/auth.service.js.map +1 -1
  22. package/dist/auth.transaction-context.js +3 -9
  23. package/dist/auth.transaction-context.js.map +1 -1
  24. package/dist/decorators/current-session.decorator.js +4 -7
  25. package/dist/decorators/current-session.decorator.js.map +1 -1
  26. package/dist/decorators/current-user.decorator.js +4 -7
  27. package/dist/decorators/current-user.decorator.js.map +1 -1
  28. package/dist/decorators/index.d.ts +3 -3
  29. package/dist/decorators/index.js +3 -19
  30. package/dist/decorators/index.js.map +1 -1
  31. package/dist/decorators/public.decorator.d.ts +1 -1
  32. package/dist/decorators/public.decorator.js +3 -7
  33. package/dist/decorators/public.decorator.js.map +1 -1
  34. package/dist/entities/account.entity.d.ts +1 -1
  35. package/dist/entities/account.entity.js +49 -33
  36. package/dist/entities/account.entity.js.map +1 -1
  37. package/dist/entities/index.d.ts +4 -4
  38. package/dist/entities/index.js +4 -20
  39. package/dist/entities/index.js.map +1 -1
  40. package/dist/entities/session.entity.d.ts +1 -1
  41. package/dist/entities/session.entity.js +35 -29
  42. package/dist/entities/session.entity.js.map +1 -1
  43. package/dist/entities/user.entity.d.ts +1 -1
  44. package/dist/entities/user.entity.js +30 -27
  45. package/dist/entities/user.entity.js.map +1 -1
  46. package/dist/entities/verification.entity.d.ts +1 -1
  47. package/dist/entities/verification.entity.js +26 -25
  48. package/dist/entities/verification.entity.js.map +1 -1
  49. package/dist/index.d.ts +9 -9
  50. package/dist/index.js +9 -25
  51. package/dist/index.js.map +1 -1
  52. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js +1 -4
  53. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js.map +1 -1
  54. package/dist/utils/create-email-and-password-config.d.ts +1 -1
  55. package/dist/utils/create-email-and-password-config.js +3 -6
  56. package/dist/utils/create-email-and-password-config.js.map +1 -1
  57. package/dist/utils/create-oidc-config.d.ts +1 -1
  58. package/dist/utils/create-oidc-config.js +12 -15
  59. package/dist/utils/create-oidc-config.js.map +1 -1
  60. package/dist/utils/create-social-provider-config.d.ts +2 -2
  61. package/dist/utils/create-social-provider-config.js +13 -16
  62. package/dist/utils/create-social-provider-config.js.map +1 -1
  63. package/dist/utils/create-social-providers-config.d.ts +1 -1
  64. package/dist/utils/create-social-providers-config.js +4 -7
  65. package/dist/utils/create-social-providers-config.js.map +1 -1
  66. package/dist/utils/estimate-entropy.js +1 -4
  67. package/dist/utils/estimate-entropy.js.map +1 -1
  68. package/dist/utils/generic-oauth-provider-config.type.js +1 -2
  69. package/dist/utils/has-oidc-env-config.js +3 -6
  70. package/dist/utils/has-oidc-env-config.js.map +1 -1
  71. package/dist/utils/has-social-provider-credential-env-config.d.ts +1 -1
  72. package/dist/utils/has-social-provider-credential-env-config.js +3 -6
  73. package/dist/utils/has-social-provider-credential-env-config.js.map +1 -1
  74. package/dist/utils/has-social-provider-env-config.d.ts +1 -1
  75. package/dist/utils/has-social-provider-env-config.js +3 -6
  76. package/dist/utils/has-social-provider-env-config.js.map +1 -1
  77. package/dist/utils/is-env-true.js +1 -4
  78. package/dist/utils/is-env-true.js.map +1 -1
  79. package/dist/utils/oidc.constants.d.ts +1 -1
  80. package/dist/utils/oidc.constants.js +3 -6
  81. package/dist/utils/oidc.constants.js.map +1 -1
  82. package/dist/utils/resolve-oidc-prompt.d.ts +1 -1
  83. package/dist/utils/resolve-oidc-prompt.js +4 -7
  84. package/dist/utils/resolve-oidc-prompt.js.map +1 -1
  85. package/dist/utils/resolve-oidc-scopes.js +1 -4
  86. package/dist/utils/resolve-oidc-scopes.js.map +1 -1
  87. package/dist/utils/resolve-required-oidc-env.d.ts +1 -1
  88. package/dist/utils/resolve-required-oidc-env.js +1 -4
  89. package/dist/utils/resolve-required-oidc-env.js.map +1 -1
  90. package/dist/utils/resolve-required-social-provider-env.d.ts +1 -1
  91. package/dist/utils/resolve-required-social-provider-env.js +3 -6
  92. package/dist/utils/resolve-required-social-provider-env.js.map +1 -1
  93. package/dist/utils/resolve-secret.d.ts +1 -1
  94. package/dist/utils/resolve-secret.js +3 -6
  95. package/dist/utils/resolve-secret.js.map +1 -1
  96. package/dist/utils/resolve-social-provider-enabled.d.ts +1 -1
  97. package/dist/utils/resolve-social-provider-enabled.js +3 -6
  98. package/dist/utils/resolve-social-provider-enabled.js.map +1 -1
  99. package/dist/utils/social-provider.constants.js +1 -4
  100. package/dist/utils/social-provider.constants.js.map +1 -1
  101. package/package.json +24 -26
  102. package/dist/adapters/mikro-orm-adapter.spec.d.ts +0 -8
  103. package/dist/adapters/mikro-orm-adapter.spec.js +0 -417
  104. package/dist/adapters/mikro-orm-adapter.spec.js.map +0 -1
  105. package/dist/auth.guard.spec.d.ts +0 -1
  106. package/dist/auth.guard.spec.js +0 -87
  107. package/dist/auth.guard.spec.js.map +0 -1
  108. package/dist/auth.middleware.spec.d.ts +0 -1
  109. package/dist/auth.middleware.spec.js +0 -139
  110. package/dist/auth.middleware.spec.js.map +0 -1
  111. package/dist/auth.module.spec.d.ts +0 -1
  112. package/dist/auth.module.spec.js +0 -626
  113. package/dist/auth.module.spec.js.map +0 -1
  114. package/dist/auth.service.spec.d.ts +0 -1
  115. package/dist/auth.service.spec.js +0 -26
  116. package/dist/auth.service.spec.js.map +0 -1
  117. package/dist/auth.transaction-context.spec.d.ts +0 -1
  118. package/dist/auth.transaction-context.spec.js +0 -20
  119. package/dist/auth.transaction-context.spec.js.map +0 -1
  120. package/dist/decorators/auth.decorators.spec.d.ts +0 -1
  121. package/dist/decorators/auth.decorators.spec.js +0 -87
  122. package/dist/decorators/auth.decorators.spec.js.map +0 -1
  123. package/dist/entities/entities.spec.d.ts +0 -1
  124. package/dist/entities/entities.spec.js +0 -80
  125. package/dist/entities/entities.spec.js.map +0 -1
  126. package/dist/index.spec.d.ts +0 -1
  127. package/dist/index.spec.js +0 -73
  128. package/dist/index.spec.js.map +0 -1
  129. package/dist/tsconfig.build.tsbuildinfo +0 -1
  130. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.d.ts +0 -1
  131. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js +0 -29
  132. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js.map +0 -1
  133. package/dist/utils/create-email-and-password-config.spec.d.ts +0 -1
  134. package/dist/utils/create-email-and-password-config.spec.js +0 -81
  135. package/dist/utils/create-email-and-password-config.spec.js.map +0 -1
  136. package/dist/utils/create-oidc-config.spec.d.ts +0 -1
  137. package/dist/utils/create-oidc-config.spec.js +0 -73
  138. package/dist/utils/create-oidc-config.spec.js.map +0 -1
  139. package/dist/utils/create-social-provider-config.spec.d.ts +0 -1
  140. package/dist/utils/create-social-provider-config.spec.js +0 -139
  141. package/dist/utils/create-social-provider-config.spec.js.map +0 -1
  142. package/dist/utils/create-social-providers-config.spec.d.ts +0 -1
  143. package/dist/utils/create-social-providers-config.spec.js +0 -63
  144. package/dist/utils/create-social-providers-config.spec.js.map +0 -1
  145. package/dist/utils/estimate-entropy.spec.d.ts +0 -1
  146. package/dist/utils/estimate-entropy.spec.js +0 -13
  147. package/dist/utils/estimate-entropy.spec.js.map +0 -1
  148. package/dist/utils/has-oidc-env-config.spec.d.ts +0 -1
  149. package/dist/utils/has-oidc-env-config.spec.js +0 -23
  150. package/dist/utils/has-oidc-env-config.spec.js.map +0 -1
  151. package/dist/utils/has-social-provider-credential-env-config.spec.d.ts +0 -1
  152. package/dist/utils/has-social-provider-credential-env-config.spec.js +0 -33
  153. package/dist/utils/has-social-provider-credential-env-config.spec.js.map +0 -1
  154. package/dist/utils/has-social-provider-env-config.spec.d.ts +0 -1
  155. package/dist/utils/has-social-provider-env-config.spec.js +0 -34
  156. package/dist/utils/has-social-provider-env-config.spec.js.map +0 -1
  157. package/dist/utils/is-env-true.spec.d.ts +0 -1
  158. package/dist/utils/is-env-true.spec.js +0 -20
  159. package/dist/utils/is-env-true.spec.js.map +0 -1
  160. package/dist/utils/resolve-oidc-prompt.spec.d.ts +0 -1
  161. package/dist/utils/resolve-oidc-prompt.spec.js +0 -28
  162. package/dist/utils/resolve-oidc-prompt.spec.js.map +0 -1
  163. package/dist/utils/resolve-oidc-scopes.spec.d.ts +0 -1
  164. package/dist/utils/resolve-oidc-scopes.spec.js +0 -16
  165. package/dist/utils/resolve-oidc-scopes.spec.js.map +0 -1
  166. package/dist/utils/resolve-required-oidc-env.spec.d.ts +0 -1
  167. package/dist/utils/resolve-required-oidc-env.spec.js +0 -22
  168. package/dist/utils/resolve-required-oidc-env.spec.js.map +0 -1
  169. package/dist/utils/resolve-required-social-provider-env.spec.d.ts +0 -1
  170. package/dist/utils/resolve-required-social-provider-env.spec.js +0 -29
  171. package/dist/utils/resolve-required-social-provider-env.spec.js.map +0 -1
  172. package/dist/utils/resolve-secret.spec.d.ts +0 -1
  173. package/dist/utils/resolve-secret.spec.js +0 -34
  174. package/dist/utils/resolve-secret.spec.js.map +0 -1
  175. package/dist/utils/resolve-social-provider-enabled.spec.d.ts +0 -1
  176. package/dist/utils/resolve-social-provider-enabled.spec.js +0 -20
  177. package/dist/utils/resolve-social-provider-enabled.spec.js.map +0 -1
@@ -1,417 +0,0 @@
1
- "use strict";
2
- /**
3
- * Unit tests for convertWhereToMikroOrm
4
- *
5
- * Locks down AND/OR connector semantics to prevent returning raw arrays
6
- * that MikroORM interprets as OR (which caused an OIDC login identity
7
- * collision bug in production).
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- // Mock better-auth/adapters to avoid ESM compatibility issues.
11
- const mockCreateAdapterFactory = jest.fn((config) => config);
12
- jest.mock("better-auth/adapters", () => ({
13
- createAdapterFactory: mockCreateAdapterFactory,
14
- }));
15
- const entities_1 = require("../entities");
16
- const mikro_orm_adapter_1 = require("./mikro-orm-adapter");
17
- /** Helper to construct a Where condition */
18
- function makeWhere(field, operator, value, connector = "AND") {
19
- return { field, operator, value, connector };
20
- }
21
- describe("convertWhereToMikroOrm", () => {
22
- describe("AND connector", () => {
23
- it("should merge multiple AND conditions into a $and object (OIDC login reproduction)", () => {
24
- const where = [
25
- makeWhere("accountId", "eq", "w9mj34kow1sc", "AND"),
26
- makeWhere("providerId", "eq", "oidc", "AND"),
27
- ];
28
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
29
- // Must be a $and object, not an array (arrays are interpreted as $or by MikroORM)
30
- expect(result).toEqual({
31
- $and: [
32
- { accountId: { $eq: "w9mj34kow1sc" } },
33
- { providerId: { $eq: "oidc" } },
34
- ],
35
- });
36
- expect(Array.isArray(result)).toBe(false);
37
- });
38
- it("should default to AND when connector is omitted", () => {
39
- const where = [
40
- { field: "name", operator: "eq", value: "test" },
41
- { field: "age", operator: "gt", value: 18 },
42
- ];
43
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
44
- expect(result).toEqual({
45
- $and: [{ name: { $eq: "test" } }, { age: { $gt: 18 } }],
46
- });
47
- });
48
- it("should handle duplicate fields correctly (range query, no key override)", () => {
49
- const where = [
50
- makeWhere("createdAt", "gte", "2024-01-01"),
51
- makeWhere("createdAt", "lt", "2025-01-01"),
52
- ];
53
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
54
- expect(result).toEqual({
55
- $and: [
56
- { createdAt: { $gte: "2024-01-01" } },
57
- { createdAt: { $lt: "2025-01-01" } },
58
- ],
59
- });
60
- });
61
- });
62
- describe("OR connector", () => {
63
- it("should wrap all OR conditions in a $or object", () => {
64
- const where = [
65
- makeWhere("email", "eq", "a@test.com", "OR"),
66
- makeWhere("email", "eq", "b@test.com", "OR"),
67
- ];
68
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
69
- expect(result).toEqual({
70
- $or: [
71
- { email: { $eq: "a@test.com" } },
72
- { email: { $eq: "b@test.com" } },
73
- ],
74
- });
75
- });
76
- });
77
- describe("mixed AND/OR", () => {
78
- it("A AND B OR C → (A AND B) OR C", () => {
79
- const where = [
80
- makeWhere("accountId", "eq", "xxx", "AND"),
81
- makeWhere("providerId", "eq", "oidc", "AND"),
82
- makeWhere("status", "eq", "active", "OR"),
83
- ];
84
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
85
- expect(result).toEqual({
86
- $or: [
87
- {
88
- $and: [
89
- { accountId: { $eq: "xxx" } },
90
- { providerId: { $eq: "oidc" } },
91
- ],
92
- },
93
- { status: { $eq: "active" } },
94
- ],
95
- });
96
- });
97
- it("A AND B OR C AND D → (A AND B) OR (C AND D)", () => {
98
- const where = [
99
- makeWhere("a", "eq", "1", "AND"),
100
- makeWhere("b", "eq", "2", "AND"),
101
- makeWhere("c", "eq", "3", "OR"),
102
- makeWhere("d", "eq", "4", "AND"),
103
- ];
104
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
105
- expect(result).toEqual({
106
- $or: [
107
- { $and: [{ a: { $eq: "1" } }, { b: { $eq: "2" } }] },
108
- { $and: [{ c: { $eq: "3" } }, { d: { $eq: "4" } }] },
109
- ],
110
- });
111
- });
112
- it("should flatten when only one branch exists", () => {
113
- const where = [makeWhere("a", "eq", "1", "OR")];
114
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
115
- expect(result).toEqual({ a: { $eq: "1" } });
116
- });
117
- });
118
- describe("operator mapping", () => {
119
- const testOperator = (operator, mikroOp, value = "test") => {
120
- const where = [makeWhere("f", operator, value)];
121
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
122
- expect(result).toEqual({ $and: [{ f: { [mikroOp]: value } }] });
123
- };
124
- it("eq → $eq", () => {
125
- testOperator("eq", "$eq");
126
- });
127
- it("ne → $ne", () => {
128
- testOperator("ne", "$ne");
129
- });
130
- it("lt → $lt", () => {
131
- testOperator("lt", "$lt", 10);
132
- });
133
- it("lte → $lte", () => {
134
- testOperator("lte", "$lte", 10);
135
- });
136
- it("gt → $gt", () => {
137
- testOperator("gt", "$gt", 10);
138
- });
139
- it("gte → $gte", () => {
140
- testOperator("gte", "$gte", 10);
141
- });
142
- it("in → $in", () => {
143
- testOperator("in", "$in", [1, 2]);
144
- });
145
- it("not_in → $nin", () => {
146
- testOperator("not_in", "$nin", [1, 2]);
147
- });
148
- it("contains → $like %value%", () => {
149
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
150
- makeWhere("name", "contains", "test"),
151
- ]);
152
- expect(result).toEqual({ $and: [{ name: { $like: "%test%" } }] });
153
- });
154
- it("starts_with → $like value%", () => {
155
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
156
- makeWhere("name", "starts_with", "test"),
157
- ]);
158
- expect(result).toEqual({ $and: [{ name: { $like: "test%" } }] });
159
- });
160
- it("ends_with → $like %value", () => {
161
- const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
162
- makeWhere("name", "ends_with", "test"),
163
- ]);
164
- expect(result).toEqual({ $and: [{ name: { $like: "%test" } }] });
165
- });
166
- });
167
- describe("string type validation", () => {
168
- it("should throw when contains receives a non-string value", () => {
169
- expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "contains", 123)])).toThrow("Value must be a string");
170
- });
171
- it("should throw when starts_with receives a non-string value", () => {
172
- expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "starts_with", 123)])).toThrow("Value must be a string");
173
- });
174
- it("should throw when ends_with receives a non-string value", () => {
175
- expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "ends_with", 123)])).toThrow("Value must be a string");
176
- });
177
- });
178
- describe("unsupported operator", () => {
179
- it("should throw on unknown operator", () => {
180
- expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "unknown_op", "x")])).toThrow("Unsupported operator: unknown_op");
181
- });
182
- });
183
- });
184
- class TestAccount extends entities_1.BaseAccount {
185
- }
186
- class TestSession extends entities_1.BaseSession {
187
- }
188
- class TestUser extends entities_1.BaseUser {
189
- }
190
- class TestVerification extends entities_1.BaseVerification {
191
- }
192
- const entities = {
193
- account: TestAccount,
194
- session: TestSession,
195
- user: TestUser,
196
- verification: TestVerification,
197
- };
198
- function createOrm() {
199
- const flush = jest.fn();
200
- const em = {
201
- assign: jest.fn(),
202
- count: jest.fn(),
203
- create: jest.fn((_entity, data) => ({ ...data })),
204
- findAll: jest.fn(),
205
- findOne: jest.fn(),
206
- flush,
207
- nativeDelete: jest.fn(),
208
- nativeUpdate: jest.fn(),
209
- persist: jest.fn(() => ({
210
- flush,
211
- })),
212
- };
213
- return {
214
- em,
215
- flush,
216
- orm: {
217
- em,
218
- },
219
- };
220
- }
221
- describe("mikroOrmAdapter", () => {
222
- beforeEach(() => {
223
- mockCreateAdapterFactory.mockClear();
224
- });
225
- it("should configure better-auth adapter capabilities", () => {
226
- const { orm } = createOrm();
227
- const adapterFactory = (0, mikro_orm_adapter_1.mikroOrmAdapter)({
228
- debugLogs: true,
229
- entities,
230
- orm,
231
- });
232
- expect(mockCreateAdapterFactory).toHaveBeenCalledWith(expect.objectContaining({
233
- config: expect.objectContaining({
234
- adapterId: "mikro-orm-adapter",
235
- adapterName: "MikroORM Adapter",
236
- debugLogs: true,
237
- disableIdGeneration: true,
238
- supportsBooleans: true,
239
- supportsDates: true,
240
- supportsJSON: true,
241
- supportsNumericIds: true,
242
- usePlural: false,
243
- }),
244
- }));
245
- expect(adapterFactory.config.debugLogs).toBe(true);
246
- });
247
- it("should create and persist entities", async () => {
248
- const { em, flush, orm } = createOrm();
249
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
250
- await expect(adapter.create({
251
- data: {
252
- email: "user@example.com",
253
- },
254
- model: "user",
255
- })).resolves.toEqual({
256
- email: "user@example.com",
257
- });
258
- expect(em.create).toHaveBeenCalledWith(TestUser, {
259
- email: "user@example.com",
260
- });
261
- expect(em.persist).toHaveBeenCalledWith({
262
- email: "user@example.com",
263
- });
264
- expect(flush).toHaveBeenCalledTimes(1);
265
- });
266
- it("should update an existing entity", async () => {
267
- const { em, orm } = createOrm();
268
- const entity = {
269
- id: "user-1",
270
- name: "Old",
271
- };
272
- em.findOne.mockResolvedValue(entity);
273
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
274
- await expect(adapter.update({
275
- model: "user",
276
- update: {
277
- name: "New",
278
- },
279
- where: [makeWhere("id", "eq", "user-1")],
280
- })).resolves.toBe(entity);
281
- expect(em.findOne).toHaveBeenCalledWith(TestUser, {
282
- $and: [
283
- {
284
- id: {
285
- $eq: "user-1",
286
- },
287
- },
288
- ],
289
- });
290
- expect(em.assign).toHaveBeenCalledWith(entity, {
291
- name: "New",
292
- });
293
- expect(em.flush).toHaveBeenCalledTimes(1);
294
- });
295
- it("should return null when update cannot find an entity", async () => {
296
- const { em, orm } = createOrm();
297
- em.findOne.mockResolvedValue(null);
298
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
299
- await expect(adapter.update({
300
- model: "user",
301
- update: {
302
- name: "New",
303
- },
304
- where: [makeWhere("id", "eq", "missing")],
305
- })).resolves.toBeNull();
306
- expect(em.assign).not.toHaveBeenCalled();
307
- expect(em.flush).not.toHaveBeenCalled();
308
- });
309
- it("should update and delete many entities", async () => {
310
- const { em, orm } = createOrm();
311
- em.nativeUpdate.mockResolvedValue(2);
312
- em.nativeDelete.mockResolvedValue(3);
313
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
314
- const where = [makeWhere("providerId", "eq", "oidc")];
315
- await expect(adapter.updateMany({
316
- model: "account",
317
- update: {
318
- scope: "email",
319
- },
320
- where,
321
- })).resolves.toBe(2);
322
- await expect(adapter.deleteMany({
323
- model: "account",
324
- where,
325
- })).resolves.toBe(3);
326
- await adapter.delete({
327
- model: "account",
328
- where,
329
- });
330
- expect(em.nativeUpdate).toHaveBeenCalledWith(TestAccount, {
331
- $and: [
332
- {
333
- providerId: {
334
- $eq: "oidc",
335
- },
336
- },
337
- ],
338
- }, {
339
- scope: "email",
340
- });
341
- expect(em.nativeDelete).toHaveBeenCalledTimes(2);
342
- });
343
- it("should find one and many entities", async () => {
344
- const { em, orm } = createOrm();
345
- const session = {
346
- token: "session-token",
347
- };
348
- const sessions = [session];
349
- em.findOne.mockResolvedValue(session);
350
- em.findAll.mockResolvedValue(sessions);
351
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
352
- await expect(adapter.findOne({
353
- model: "session",
354
- where: [makeWhere("token", "eq", "session-token")],
355
- })).resolves.toBe(session);
356
- await expect(adapter.findMany({
357
- limit: 10,
358
- model: "session",
359
- sortBy: {
360
- direction: "desc",
361
- field: "createdAt",
362
- },
363
- where: [makeWhere("token", "eq", "session-token")],
364
- })).resolves.toBe(sessions);
365
- expect(em.findAll).toHaveBeenCalledWith(TestSession, {
366
- limit: 10,
367
- offset: 0,
368
- orderBy: {
369
- createdAt: "desc",
370
- },
371
- where: {
372
- $and: [
373
- {
374
- token: {
375
- $eq: "session-token",
376
- },
377
- },
378
- ],
379
- },
380
- });
381
- });
382
- it("should find many entities without optional filters", async () => {
383
- const { em, orm } = createOrm();
384
- em.findAll.mockResolvedValue([]);
385
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
386
- await expect(adapter.findMany({
387
- model: "verification",
388
- })).resolves.toEqual([]);
389
- expect(em.findAll).toHaveBeenCalledWith(TestVerification, {
390
- limit: undefined,
391
- offset: 0,
392
- });
393
- });
394
- it("should count entities with and without filters", async () => {
395
- const { em, orm } = createOrm();
396
- em.count.mockResolvedValueOnce(1).mockResolvedValueOnce(4);
397
- const adapter = (0, mikro_orm_adapter_1.mikroOrmAdapter)({ entities, orm }).adapter();
398
- await expect(adapter.count({
399
- model: "user",
400
- where: [makeWhere("email", "eq", "user@example.com")],
401
- })).resolves.toBe(1);
402
- await expect(adapter.count({
403
- model: "user",
404
- })).resolves.toBe(4);
405
- expect(em.count).toHaveBeenNthCalledWith(1, TestUser, {
406
- $and: [
407
- {
408
- email: {
409
- $eq: "user@example.com",
410
- },
411
- },
412
- ],
413
- });
414
- expect(em.count).toHaveBeenNthCalledWith(2, TestUser, undefined);
415
- });
416
- });
417
- //# sourceMappingURL=mikro-orm-adapter.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mikro-orm-adapter.spec.js","sourceRoot":"","sources":["../../src/adapters/mikro-orm-adapter.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const request_context_1 = require("@nest-boot/request-context");
4
- const core_1 = require("@nestjs/core");
5
- const testing_1 = require("@nestjs/testing");
6
- const rxjs_1 = require("rxjs");
7
- const auth_constants_1 = require("./auth.constants");
8
- const auth_guard_1 = require("./auth.guard");
9
- const entities_1 = require("./entities");
10
- class PromiseAuthGuard extends auth_guard_1.AuthGuard {
11
- canActivate(_context) {
12
- return Promise.resolve(true);
13
- }
14
- }
15
- class ObservableAuthGuard extends auth_guard_1.AuthGuard {
16
- canActivate(_context) {
17
- return (0, rxjs_1.of)(true);
18
- }
19
- }
20
- class PublicAwareAuthGuard extends auth_guard_1.AuthGuard {
21
- isContextPublic(context) {
22
- return this.isPublic(context);
23
- }
24
- }
25
- describe("AuthGuard", () => {
26
- afterEach(() => {
27
- jest.restoreAllMocks();
28
- });
29
- it("allows subclasses to return the full CanActivate result type", () => {
30
- expect(PromiseAuthGuard).toBeDefined();
31
- expect(ObservableAuthGuard).toBeDefined();
32
- });
33
- it("allows subclasses to reuse the public route metadata lookup", async () => {
34
- const handler = () => undefined;
35
- class TestController {
36
- }
37
- const context = {
38
- getClass: jest.fn(() => TestController),
39
- getHandler: jest.fn(() => handler),
40
- };
41
- const getAllAndOverride = jest.fn(() => true);
42
- const { guard } = await createGuard(PublicAwareAuthGuard, getAllAndOverride);
43
- expect(guard.isContextPublic(context)).toBe(true);
44
- expect(getAllAndOverride).toHaveBeenCalledWith(auth_constants_1.IS_PUBLIC_KEY, [
45
- handler,
46
- TestController,
47
- ]);
48
- });
49
- it("allows public routes without a session", async () => {
50
- const { guard } = await createGuard(auth_guard_1.AuthGuard, jest.fn(() => true));
51
- const context = {
52
- getClass: jest.fn(),
53
- getHandler: jest.fn(),
54
- };
55
- expect(guard.canActivate(context)).toBe(true);
56
- });
57
- it("requires a session for non-public routes", async () => {
58
- const { guard } = await createGuard(auth_guard_1.AuthGuard, jest.fn(() => false));
59
- const context = {
60
- getClass: jest.fn(),
61
- getHandler: jest.fn(),
62
- };
63
- const get = jest.spyOn(request_context_1.RequestContext, "get");
64
- get.mockReturnValueOnce(undefined);
65
- expect(guard.canActivate(context)).toBe(false);
66
- expect(get).toHaveBeenCalledWith(entities_1.BaseSession);
67
- get.mockReturnValueOnce(new entities_1.BaseSession());
68
- expect(guard.canActivate(context)).toBe(true);
69
- });
70
- });
71
- async function createGuard(guardType, getAllAndOverride) {
72
- const moduleRef = await testing_1.Test.createTestingModule({
73
- providers: [
74
- guardType,
75
- {
76
- provide: core_1.Reflector,
77
- useValue: {
78
- getAllAndOverride,
79
- },
80
- },
81
- ],
82
- }).compile();
83
- return {
84
- guard: moduleRef.get(guardType),
85
- };
86
- }
87
- //# sourceMappingURL=auth.guard.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.guard.spec.js","sourceRoot":"","sources":["../src/auth.guard.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};