@equinor/fusion-framework-module-msal 10.0.2 → 11.0.0-next.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 (73) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/README.md +17 -368
  3. package/dist/esm/MsalConfigurator.js +176 -88
  4. package/dist/esm/MsalConfigurator.js.map +1 -1
  5. package/dist/esm/__tests__/MsalConfigurator.test.js +75 -0
  6. package/dist/esm/__tests__/MsalConfigurator.test.js.map +1 -1
  7. package/dist/esm/__tests__/create-proxy-provider.test.js +53 -0
  8. package/dist/esm/__tests__/create-proxy-provider.test.js.map +1 -0
  9. package/dist/esm/__tests__/mock/msal-mock.test.js +399 -0
  10. package/dist/esm/__tests__/mock/msal-mock.test.js.map +1 -0
  11. package/dist/esm/index.js +5 -0
  12. package/dist/esm/index.js.map +1 -1
  13. package/dist/esm/mock/MsalMockClient.js +467 -0
  14. package/dist/esm/mock/MsalMockClient.js.map +1 -0
  15. package/dist/esm/mock/MsalMockConfigurator.js +187 -0
  16. package/dist/esm/mock/MsalMockConfigurator.js.map +1 -0
  17. package/dist/esm/mock/create-mock-token.js +60 -0
  18. package/dist/esm/mock/create-mock-token.js.map +1 -0
  19. package/dist/esm/mock/create-msal-mock-client.js +20 -0
  20. package/dist/esm/mock/create-msal-mock-client.js.map +1 -0
  21. package/dist/esm/mock/decode-jwt-segment.js +22 -0
  22. package/dist/esm/mock/decode-jwt-segment.js.map +1 -0
  23. package/dist/esm/mock/index.js +30 -0
  24. package/dist/esm/mock/index.js.map +1 -0
  25. package/dist/esm/mock/module.js +38 -0
  26. package/dist/esm/mock/module.js.map +1 -0
  27. package/dist/esm/msal-config-schema.js +37 -0
  28. package/dist/esm/msal-config-schema.js.map +1 -0
  29. package/dist/esm/telemetry-config-schema.js +16 -0
  30. package/dist/esm/telemetry-config-schema.js.map +1 -0
  31. package/dist/esm/version.js +1 -1
  32. package/dist/esm/version.js.map +1 -1
  33. package/dist/esm/versioning/resolve-version.js +0 -1
  34. package/dist/esm/versioning/resolve-version.js.map +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/dist/types/MsalConfigurator.d.ts +96 -20
  37. package/dist/types/__tests__/create-proxy-provider.test.d.ts +1 -0
  38. package/dist/types/__tests__/mock/msal-mock.test.d.ts +1 -0
  39. package/dist/types/index.d.ts +5 -0
  40. package/dist/types/mock/MsalMockClient.d.ts +270 -0
  41. package/dist/types/mock/MsalMockConfigurator.d.ts +156 -0
  42. package/dist/types/mock/create-mock-token.d.ts +54 -0
  43. package/dist/types/mock/create-msal-mock-client.d.ts +14 -0
  44. package/dist/types/mock/decode-jwt-segment.d.ts +13 -0
  45. package/dist/types/mock/index.d.ts +29 -0
  46. package/dist/types/mock/module.d.ts +35 -0
  47. package/dist/types/msal-config-schema.d.ts +64 -0
  48. package/dist/types/telemetry-config-schema.d.ts +8 -0
  49. package/dist/types/version.d.ts +1 -1
  50. package/docs/api-reference.md +85 -0
  51. package/docs/auth-code-flow.md +86 -0
  52. package/docs/migration-v2-to-v4.md +115 -0
  53. package/docs/testing.md +167 -0
  54. package/docs/troubleshooting.md +17 -0
  55. package/docs/version-management.md +67 -0
  56. package/package.json +12 -5
  57. package/src/MsalConfigurator.ts +202 -115
  58. package/src/__tests__/MsalConfigurator.test.ts +106 -0
  59. package/src/__tests__/create-proxy-provider.test.ts +77 -0
  60. package/src/__tests__/mock/msal-mock.test.ts +544 -0
  61. package/src/index.ts +6 -0
  62. package/src/mock/MsalMockClient.ts +599 -0
  63. package/src/mock/MsalMockConfigurator.ts +241 -0
  64. package/src/mock/create-mock-token.ts +92 -0
  65. package/src/mock/create-msal-mock-client.ts +25 -0
  66. package/src/mock/decode-jwt-segment.ts +22 -0
  67. package/src/mock/index.ts +29 -0
  68. package/src/mock/module.ts +54 -0
  69. package/src/msal-config-schema.ts +81 -0
  70. package/src/telemetry-config-schema.ts +25 -0
  71. package/src/version.ts +1 -1
  72. package/src/versioning/resolve-version.ts +0 -1
  73. package/vitest.config.ts +1 -1
@@ -0,0 +1,399 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { ModulesConfigurator, } from '@equinor/fusion-framework-module';
3
+ import telemetryModule from '@equinor/fusion-framework-module-telemetry';
4
+ import { MsalConfigurator } from '../../MsalConfigurator';
5
+ import { MsalProvider } from '../../MsalProvider';
6
+ import { enableMSAL, module as realModule } from '../../module';
7
+ import { MsalMockClient, createMsalMockClient, enableMsalMock, msalMockModule, MsalMockConfigurator, } from '../../mock';
8
+ /**
9
+ * Initializes the mock module through the real module system.
10
+ *
11
+ * @remarks
12
+ * Deliberately avoids hand-building initialization arguments. Faking the module
13
+ * system is the very cost this work removes, and a hand-rolled `init` would test
14
+ * the fake rather than the module. The telemetry module is registered because the
15
+ * MSAL schema requires a telemetry provider to be present.
16
+ *
17
+ * @param options - The user the mock client represents.
18
+ * @returns The provider the module produced.
19
+ */
20
+ const initializeMockWith = async (configure) => {
21
+ const configurator = new ModulesConfigurator([telemetryModule]);
22
+ enableMsalMock(configurator, configure);
23
+ const instances = await configurator.initialize();
24
+ return instances.auth;
25
+ };
26
+ /**
27
+ * Initializes the mock module for a given account.
28
+ *
29
+ * @param options - The user the mock client represents.
30
+ * @returns The provider the module produced.
31
+ */
32
+ const initializeMock = (user) => initializeMockWith(user && ((builder) => builder.setAccount(user)));
33
+ /** The client configuration a test would declare, identical for real and mock. */
34
+ const clientConfig = (clientId = 'fusion-mock-client', tenantId = 'fusion-mock-tenant') => ({
35
+ auth: { clientId, tenantId },
36
+ });
37
+ describe('msalMockModule', () => {
38
+ it('changes nothing but the configurator', () => {
39
+ expect(msalMockModule.name).toBe(realModule.name);
40
+ expect(msalMockModule.version).toBe(realModule.version);
41
+ // The production initializer, untouched — the mock has no lifecycle of its own
42
+ expect(msalMockModule.initialize).toBe(realModule.initialize);
43
+ });
44
+ it('builds a real MsalConfigurator, so the whole builder stays available', () => {
45
+ const configurator = msalMockModule.configure?.();
46
+ expect(configurator).toBeInstanceOf(MsalConfigurator);
47
+ expect(configurator).toBeInstanceOf(MsalMockConfigurator);
48
+ });
49
+ });
50
+ describe('enableMsalMock', () => {
51
+ it('produces the real MsalProvider, not a stand-in', async () => {
52
+ const provider = await initializeMock();
53
+ // The point of substituting the client rather than the provider: everything
54
+ // above the network boundary is production code
55
+ expect(provider).toBeInstanceOf(MsalProvider);
56
+ });
57
+ it('signs in a user without any client configuration', async () => {
58
+ const provider = await initializeMock({ name: 'Ada Lovelace' });
59
+ expect(provider.account?.name).toBe('Ada Lovelace');
60
+ });
61
+ it('replaces an auth module that is already registered', async () => {
62
+ // A FrameworkConfigurator pre-registers the real auth module, so the mock is
63
+ // only useful if registering it afterwards wins
64
+ const configurator = new ModulesConfigurator([telemetryModule, realModule]);
65
+ enableMsalMock(configurator);
66
+ const instances = await configurator.initialize();
67
+ expect(instances.auth.account?.name).toBe('Test User');
68
+ });
69
+ it('declares the account without constructing a client', () => {
70
+ const configurator = new MsalMockConfigurator();
71
+ configurator.setAccount({ username: 'ada@equinor.com' });
72
+ // Nothing is built until the module assembles its config
73
+ expect(configurator.getClient()).toBeUndefined();
74
+ expect(configurator.getClientConfig()).toBeUndefined();
75
+ });
76
+ it('resolves an account callback with the ordinary builder arguments', async () => {
77
+ // An ordinary config-builder callback, so a test can reach the modules in
78
+ // scope rather than being handed a bespoke signature
79
+ const provider = await initializeMockWith((builder) => builder.setAccount(async ({ hasModule }) => ({
80
+ name: hasModule('telemetry') ? 'Ada Lovelace' : 'Nobody',
81
+ })));
82
+ expect(provider.account?.name).toBe('Ada Lovelace');
83
+ });
84
+ it('signs the user in before the provider initializes', async () => {
85
+ // The provider's own start-up path must see the declared state, or a test
86
+ // could not observe what the framework does with it
87
+ const provider = await initializeMockWith((builder) => {
88
+ builder.setAccount({ signedOut: true });
89
+ builder.setRequiresAuth(true);
90
+ });
91
+ // `requiresAuth` made the real provider log in during initialize
92
+ expect(provider.account?.username).toBe('test.user@equinor.com');
93
+ });
94
+ it('signs the declared user in on a client that was set explicitly', async () => {
95
+ // The rule is uniform: the user goes on whichever client the module
96
+ // authenticates through, wherever that client came from
97
+ const own = new MsalMockClient(clientConfig());
98
+ own.setUser({ name: 'Grace Hopper' });
99
+ const provider = await initializeMockWith((builder) => {
100
+ builder.setClient(own);
101
+ builder.setAccount({ name: 'Ada Lovelace' });
102
+ });
103
+ expect(provider.client).toBe(own);
104
+ expect(provider.account?.name).toBe('Ada Lovelace');
105
+ });
106
+ it('leaves a client that was set explicitly alone when no user is declared', async () => {
107
+ const own = new MsalMockClient(clientConfig());
108
+ own.setUser({ name: 'Grace Hopper' });
109
+ const provider = await initializeMockWith((builder) => builder.setClient(own));
110
+ expect(provider.account?.name).toBe('Grace Hopper');
111
+ });
112
+ it('refuses to declare a user on a client that cannot represent one', async () => {
113
+ // Failing quietly is the whole failure mode this exists to prevent
114
+ const configurator = new ModulesConfigurator([telemetryModule]);
115
+ enableMsalMock(configurator, (builder) => {
116
+ builder.setClient({});
117
+ builder.setAccount({ name: 'Ada Lovelace' });
118
+ });
119
+ await expect(configurator.initialize()).rejects.toThrow(/does not authenticate through a mock client/);
120
+ });
121
+ it('carries the user on the configuration, resolved by the builder', async () => {
122
+ // The user travels the ordinary pipeline as `mock.account` rather than
123
+ // living on the builder, so any code with the raw configuration can read it
124
+ const configurator = new MsalMockConfigurator();
125
+ configurator.setAccount(async () => ({ name: 'Ada Lovelace' }));
126
+ let rawConfig;
127
+ vi.spyOn(configurator, '_processConfig').mockImplementation(async (config) => {
128
+ rawConfig = config;
129
+ return config;
130
+ });
131
+ await configurator.createConfigAsync({
132
+ requireInstance: async () => undefined,
133
+ hasModule: () => false,
134
+ config: {},
135
+ });
136
+ expect(rawConfig?.mock?.account).toEqual({ name: 'Ada Lovelace' });
137
+ });
138
+ it('applies the account as it ends up, not as it started', async () => {
139
+ const provider = await initializeMockWith((builder) => {
140
+ builder.setAccount({ name: 'Ada Lovelace' });
141
+ builder.setAccount({ name: 'Grace Hopper' });
142
+ });
143
+ expect(provider.client).toBeInstanceOf(MsalMockClient);
144
+ expect(provider.account?.name).toBe('Grace Hopper');
145
+ });
146
+ it('builds its client from setClientConfig, exactly as the real module does', async () => {
147
+ const provider = await initializeMockWith((builder) => builder.setClientConfig(clientConfig('my-app', 'my-tenant')));
148
+ expect(provider.client).toBeInstanceOf(MsalMockClient);
149
+ expect(provider.client.clientId).toBe('my-app');
150
+ expect(provider.client.tenantId).toBe('my-tenant');
151
+ });
152
+ it('exposes the client built for a signed-out account', async () => {
153
+ const provider = await initializeMockWith((builder) => builder.setAccount({ signedOut: true }));
154
+ const client = provider.client;
155
+ expect(client.hasValidClaims).toBe(false);
156
+ client.setActiveAccount({
157
+ homeAccountId: 'id.tenant',
158
+ localAccountId: 'id',
159
+ environment: 'login.microsoftonline.com',
160
+ tenantId: 'tenant',
161
+ username: 'user@equinor.com',
162
+ name: 'User',
163
+ });
164
+ expect(client.hasValidClaims).toBe(true);
165
+ });
166
+ it('starts with no account when signed out', async () => {
167
+ const provider = await initializeMock({ signedOut: true });
168
+ expect(provider.account).toBeNull();
169
+ });
170
+ it('runs the real sign-in flow through the provider', async () => {
171
+ const provider = await initializeMock({ signedOut: true });
172
+ expect(provider.account).toBeNull();
173
+ await provider.login({ request: { scopes: ['User.Read'] } });
174
+ expect(provider.account?.username).toBe('test.user@equinor.com');
175
+ });
176
+ it('runs the real sign-out flow through the provider', async () => {
177
+ const provider = await initializeMock();
178
+ expect(provider.account).not.toBeNull();
179
+ await provider.logout();
180
+ expect(provider.account).toBeNull();
181
+ });
182
+ it('lets the real provider resolve default scopes', async () => {
183
+ const provider = await initializeMockWith((builder) => builder.setClientConfig(clientConfig('my-app')));
184
+ const token = await provider.acquireAccessToken();
185
+ const claims = JSON.parse(atob(token?.split('.')[1] ?? ''));
186
+ // MsalProvider — not the mock — turns "no scopes requested" into `${clientId}/.default`
187
+ expect(claims.scp).toBe('my-app/.default');
188
+ });
189
+ });
190
+ describe('enableMsalMock when hoisted onto a host', () => {
191
+ /**
192
+ * Initializes the mock module inside a host application.
193
+ *
194
+ * @remarks
195
+ * `ModulesConfigurator.initialize` forwards its argument as the module `ref`,
196
+ * which is exactly how a portal hands its modules to an app it loads. Going
197
+ * through the real module system keeps the proxy-provider path under test.
198
+ *
199
+ * @param configure - Configuration applied to the hosted (inner) module.
200
+ * @returns The provider the hosted module produced.
201
+ */
202
+ const initializeHosted = async (configure) => {
203
+ const host = await initializeMockWith((builder) => builder.setAccount({ name: 'Host User' }));
204
+ const configurator = new ModulesConfigurator([telemetryModule]);
205
+ enableMsalMock(configurator, configure);
206
+ const instances = await configurator.initialize({ auth: host });
207
+ return { host, hosted: instances.auth };
208
+ };
209
+ it('authenticates through the host instead of building a client of its own', async () => {
210
+ const { host, hosted } = await initializeHosted();
211
+ expect(hosted).not.toBe(host);
212
+ expect(hosted.account?.name).toBe('Host User');
213
+ });
214
+ it('signs the declared user in on the host client, since none is built here', async () => {
215
+ // The client belongs to the host, built in a scope this builder never sees.
216
+ // Reaching it is the only way a declaration made here can take effect at
217
+ // all — otherwise `setAccount` silently does nothing exactly when an
218
+ // application is being tested inside a portal
219
+ const { host, hosted } = await initializeHosted((builder) => builder.setAccount({ name: 'Ada Lovelace' }));
220
+ expect(hosted.account?.name).toBe('Ada Lovelace');
221
+ // The session is shared, as it is in production
222
+ expect(host.account?.name).toBe('Ada Lovelace');
223
+ });
224
+ it('leaves the host user alone when the app declares none', async () => {
225
+ const { host, hosted } = await initializeHosted();
226
+ expect(hosted.account?.name).toBe('Host User');
227
+ expect(host.account?.name).toBe('Host User');
228
+ });
229
+ it('refuses to declare a user the host cannot honour', async () => {
230
+ // Failing quietly here is the bug this path exists to prevent
231
+ const host = await initializeMockWith();
232
+ const realHost = { ...host, client: {} };
233
+ const configurator = new ModulesConfigurator([telemetryModule]);
234
+ enableMsalMock(configurator, (builder) => builder.setAccount({ name: 'Ada Lovelace' }));
235
+ await expect(configurator.initialize({ auth: realHost })).rejects.toThrow(/does not authenticate through a mock client/);
236
+ });
237
+ it('declares no client configuration at all, so nothing stands in for the host', async () => {
238
+ // The stand-in configuration exists only to build a client from; a hoisted
239
+ // module builds none, so it must not look configured either
240
+ let hosted;
241
+ const host = await initializeMockWith((builder) => builder.setAccount({ name: 'Host User' }));
242
+ const configurator = new ModulesConfigurator([telemetryModule]);
243
+ enableMsalMock(configurator, (builder) => {
244
+ hosted = builder;
245
+ });
246
+ await configurator.initialize({ auth: host });
247
+ expect(hosted?.getClientConfig()).toBeUndefined();
248
+ expect(hosted?.getClient()).toBeUndefined();
249
+ });
250
+ });
251
+ describe('createMsalMockClient with the real module', () => {
252
+ it('needs no mock module — the client is enough', async () => {
253
+ const configurator = new ModulesConfigurator([telemetryModule]);
254
+ enableMSAL(configurator, (builder) => {
255
+ builder.setClient(createMsalMockClient(clientConfig(), { name: 'Ada Lovelace' }));
256
+ });
257
+ const instances = await configurator.initialize();
258
+ expect(instances.auth.account?.name).toBe('Ada Lovelace');
259
+ });
260
+ });
261
+ describe('MsalMockClient', () => {
262
+ it('takes the same argument as the real client', () => {
263
+ const client = new MsalMockClient(clientConfig('my-app', 'my-tenant'));
264
+ expect(client.clientId).toBe('my-app');
265
+ expect(client.tenantId).toBe('my-tenant');
266
+ });
267
+ it('reads the tenant out of the authority when none was given', () => {
268
+ // A production config often carries only `authority`, and the tenant still
269
+ // has to reach the tokens the client mints
270
+ const client = new MsalMockClient({
271
+ auth: {
272
+ clientId: 'my-app',
273
+ authority: 'https://login.microsoftonline.com/authority-tenant',
274
+ },
275
+ });
276
+ expect(client.tenantId).toBe('authority-tenant');
277
+ });
278
+ it('is not mistaken for a promise', () => {
279
+ const client = new MsalMockClient(clientConfig());
280
+ expect(client.then).toBeUndefined();
281
+ });
282
+ it('fails silent sign-in without an account, as MSAL does', async () => {
283
+ const client = new MsalMockClient(clientConfig());
284
+ client.setUser({ signedOut: true });
285
+ await expect(client.ssoSilent({ scopes: ['X'] })).rejects.toThrow(/no cached account/);
286
+ });
287
+ it('issues identical tokens across instances', async () => {
288
+ const first = new MsalMockClient(clientConfig());
289
+ const second = new MsalMockClient(clientConfig());
290
+ const a = await first.acquireToken({ request: { scopes: ['X'] } });
291
+ const b = await second.acquireToken({ request: { scopes: ['X'] } });
292
+ expect(a?.accessToken).toBe(b?.accessToken);
293
+ });
294
+ it('lets a test runner spy on a single method', async () => {
295
+ const client = new MsalMockClient(clientConfig());
296
+ vi.spyOn(client, 'acquireToken').mockResolvedValue({
297
+ account: client.getActiveAccount(),
298
+ accessToken: 'mock-token',
299
+ idToken: 'mock-token',
300
+ scopes: ['mock'],
301
+ tokenType: 'Bearer',
302
+ expiresOn: new Date('2033-11-14T22:13:20.000Z'),
303
+ authority: 'https://login.microsoftonline.com/mock',
304
+ uniqueId: 'mock-user',
305
+ tenantId: 'mock-tenant',
306
+ fromCache: false,
307
+ correlationId: 'fusion-mock-correlation',
308
+ });
309
+ const result = await client.acquireToken({ request: { scopes: ['X'] } });
310
+ expect(result?.accessToken).toBe('mock-token');
311
+ });
312
+ });
313
+ describe('setAccount(null)', () => {
314
+ it('starts with nobody signed in', async () => {
315
+ const provider = await initializeMockWith((builder) => builder.setAccount(null));
316
+ expect(provider.account).toBeNull();
317
+ expect(provider.client.hasValidClaims).toBe(false);
318
+ });
319
+ it('is a declaration, not the absence of one', async () => {
320
+ // Saying "nobody" has to beat the default signed-in user, so it cannot be
321
+ // treated the same as saying nothing at all
322
+ const provider = await initializeMockWith((builder) => {
323
+ builder.setAccount({ name: 'Ada Lovelace' });
324
+ builder.setAccount(null);
325
+ });
326
+ expect(provider.account).toBeNull();
327
+ });
328
+ it('forgets the identity, unlike signedOut which keeps it', async () => {
329
+ const forgotten = await initializeMockWith((builder) => {
330
+ builder.setAccount({ name: 'Ada Lovelace' });
331
+ builder.setAccount(null);
332
+ });
333
+ const remembered = await initializeMockWith((builder) => builder.setAccount({ name: 'Ada Lovelace', signedOut: true }));
334
+ await forgotten.client.login({ request: { scopes: [] } });
335
+ await remembered.client.login({ request: { scopes: [] } });
336
+ expect(forgotten.account?.name).toBe('Test User');
337
+ expect(remembered.account?.name).toBe('Ada Lovelace');
338
+ });
339
+ it('resolves null from a callback too', async () => {
340
+ const provider = await initializeMockWith((builder) => builder.setAccount(async () => null));
341
+ expect(provider.account).toBeNull();
342
+ });
343
+ });
344
+ describe('MsalMockClient account cache', () => {
345
+ it('swaps the signed-in user on a live framework, as the docs describe', async () => {
346
+ const provider = await initializeMock();
347
+ const account = {
348
+ ...provider.account,
349
+ homeAccountId: 'ada',
350
+ name: 'Ada Lovelace',
351
+ };
352
+ provider.client.setActiveAccount(account);
353
+ expect(provider.account?.name).toBe('Ada Lovelace');
354
+ });
355
+ it('holds the signed-in user in the account cache', () => {
356
+ const client = new MsalMockClient(clientConfig());
357
+ expect(client.getAllAccounts()).toEqual([client.getActiveAccount()]);
358
+ });
359
+ it('empties the cache when the user signs out', async () => {
360
+ const client = new MsalMockClient(clientConfig());
361
+ await client.logout();
362
+ expect(client.getActiveAccount()).toBeNull();
363
+ expect(client.getAllAccounts()).toEqual([]);
364
+ });
365
+ it('matches a cached account on the filter it is given', () => {
366
+ const client = new MsalMockClient(clientConfig());
367
+ const account = client.getActiveAccount();
368
+ expect(client.getAccount({ username: account?.username })).toBe(account);
369
+ expect(client.getAccount({ homeAccountId: account?.homeAccountId })).toBe(account);
370
+ expect(client.getAccount({ username: 'someone.else@equinor.com' })).toBeNull();
371
+ });
372
+ it('caches an account a test makes active', () => {
373
+ // Tests swap the user per run rather than reconstructing the framework, so
374
+ // an account MSAL never issued still has to end up in the cache
375
+ const client = new MsalMockClient(clientConfig());
376
+ const account = {
377
+ ...client.getActiveAccount(),
378
+ homeAccountId: 'grace.hopper',
379
+ username: 'grace.hopper@equinor.com',
380
+ name: 'Grace Hopper',
381
+ };
382
+ client.setActiveAccount(account);
383
+ expect(client.getActiveAccount()?.name).toBe('Grace Hopper');
384
+ expect(client.getAccount({ username: 'grace.hopper@equinor.com' })).toBe(account);
385
+ });
386
+ it('replaces the session when a new user is declared', () => {
387
+ const client = new MsalMockClient(clientConfig());
388
+ client.setUser({ name: 'Ada Lovelace', userId: 'ada' });
389
+ expect(client.getAllAccounts()).toHaveLength(1);
390
+ expect(client.getActiveAccount()?.name).toBe('Ada Lovelace');
391
+ });
392
+ it('leaves no account behind when signed out', () => {
393
+ const client = new MsalMockClient(clientConfig());
394
+ client.setUser({ signedOut: true });
395
+ expect(client.getAllAccounts()).toEqual([]);
396
+ expect(client.hasValidClaims).toBe(false);
397
+ });
398
+ });
399
+ //# sourceMappingURL=msal-mock.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msal-mock.test.js","sourceRoot":"","sources":["../../../../src/__tests__/mock/msal-mock.test.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -26,5 +26,10 @@
26
26
  */
27
27
  export { module, configureMsal, enableMSAL, } from './module';
28
28
  export { MsalClient } from './MsalClient';
29
+ /**
30
+ * Required to implement {@link IMsalProvider}, whose `msalVersion` member is
31
+ * typed as this enum.
32
+ */
33
+ export { MsalModuleVersion } from './static';
29
34
  export { default } from './module';
30
35
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,GAGX,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAC;AAIjE,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,GAGX,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,UAAU,EAAyB,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI7C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC"}