@equinor/fusion-framework-vitest-plugin-react-app 1.0.5 → 1.0.7

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/README.md CHANGED
@@ -165,19 +165,35 @@ test('resolves an access token', async () => {
165
165
  });
166
166
  ```
167
167
 
168
- ### Sign in a named user
168
+ ### Acquire a token for a named user
169
169
 
170
- Pass `configure` to reach the msal mock's builder before the hook renders:
170
+ Configure the MSAL mock's token source when a test needs identity claims other than the
171
+ default `Test User`. The acquired token becomes both the access token and active account:
171
172
 
172
173
  ```tsx
174
+ import { createMockToken } from '@equinor/fusion-framework-module-msal/mock';
175
+ import { useAccessToken } from '@equinor/fusion-framework-react-app/msal';
173
176
  import { renderAppHook } from '@equinor/fusion-framework-vitest-plugin-react-app';
174
- import { useCurrentAccount } from '@equinor/fusion-framework-react-app/msal';
175
177
 
176
- test('reads the configured account', async () => {
177
- const { result } = await renderAppHook(() => useCurrentAccount(), {
178
- configure: (configurator) => configurator.msal.setAccount({ name: 'Ada Lovelace' }),
179
- });
180
- expect(result.current).toMatchObject({ name: 'Ada Lovelace' });
178
+ test('acquires a token for a named user', async () => {
179
+ const { result, fusion } = await renderAppHook(
180
+ () => useAccessToken({ scopes: ['User.Read'] }),
181
+ {
182
+ configure: (configurator) =>
183
+ configurator.msal.setAcquireToken(({ clientId, scopes }) =>
184
+ createMockToken({
185
+ aud: clientId,
186
+ scp: scopes.join(' '),
187
+ name: 'Ada Lovelace',
188
+ preferred_username: 'ada@equinor.com',
189
+ oid: 'ada-lovelace',
190
+ }),
191
+ ),
192
+ },
193
+ );
194
+
195
+ await vi.waitFor(() => expect(result.current.pending).toBe(false));
196
+ expect(fusion.framework.modules.auth.account?.name).toBe('Ada Lovelace');
181
197
  });
182
198
  ```
183
199
 
@@ -29,11 +29,20 @@ import { resolveAppScope, createAppScopeWrapper } from './scope';
29
29
  * await vi.waitFor(() => expect(result.current.pending).toBe(false));
30
30
  * ```
31
31
  *
32
- * @example Sign in a named user
32
+ * @example Acquire a token for a named user
33
33
  * ```tsx
34
- * const { result } = await renderAppHook(() => useCurrentAccount(), {
35
- * configure: (configurator) => configurator.msal.setAccount({ name: 'Ada Lovelace' }),
34
+ * const { result } = await renderAppHook(() => useAccessToken({ scopes: ['User.Read'] }), {
35
+ * configure: (configurator) =>
36
+ * configurator.msal.setAcquireToken(({ clientId, scopes }) =>
37
+ * createMockToken({
38
+ * aud: clientId,
39
+ * scp: scopes.join(' '),
40
+ * name: 'Ada Lovelace',
41
+ * oid: 'ada-lovelace',
42
+ * }),
43
+ * ),
36
44
  * });
45
+ * await vi.waitFor(() => expect(result.current.pending).toBe(false));
37
46
  * ```
38
47
  *
39
48
  * @example Reuse a pre-built parent Fusion instance
@@ -1 +1 @@
1
- {"version":3,"file":"render-app-hook.js","sourceRoot":"","sources":["../../src/render-app-hook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA0DjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAMjC,MAAwC,EACxC,OAAqD;IAErD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACvF,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,eAAe,CAAiB;QAC/D,SAAS;QACT,GAAG;QACH,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;QACtC,GAAG,iBAAiB;QACpB,OAAO,EAAE,qBAAqB,CAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"render-app-hook.js","sourceRoot":"","sources":["../../src/render-app-hook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQlD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AA0DjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAMjC,MAAwC,EACxC,OAAqD;IAErD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACvF,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,eAAe,CAAiB;QAC/D,SAAS;QACT,GAAG;QACH,MAAM,EAAE,cAAc;KACvB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE;QACtC,GAAG,iBAAiB;QACpB,OAAO,EAAE,qBAAqB,CAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { mockFramework, } from '@equinor/fusion-framework/mock';
1
+ import { createMockToken, mockFramework, } from '@equinor/fusion-framework/mock';
2
2
  import { enableAppManifestMock } from '@equinor/fusion-framework-app/mock';
3
3
  import { enableFeatureFlagMock } from '@equinor/fusion-framework-module-feature-flag/mock';
4
4
  import { enableNavigation, createHistory } from '@equinor/fusion-framework-module-navigation';
@@ -40,6 +40,16 @@ export async function resolveFusion(options) {
40
40
  const { env, fusion, configure, runtimeDependencies = [] } = options ?? {};
41
41
  return (fusion ??
42
42
  mockFramework(async (configurator) => {
43
+ configurator.msal.setAcquireToken(({ scopes, account, clientId }) => account
44
+ ? createMockToken({
45
+ name: account.name,
46
+ preferred_username: account.username,
47
+ oid: account.localAccountId,
48
+ tid: account.tenantId,
49
+ aud: clientId,
50
+ scp: scopes.join(' '),
51
+ })
52
+ : null);
43
53
  enableAppManifestMock(configurator, env ?? defaultAppEnv);
44
54
  enableNavigation(configurator, {
45
55
  configure: (config) => config.setHistory(createHistory('memory')),
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-fusion.js","sourceRoot":"","sources":["../../../src/scope/resolve-fusion.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,GAGd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAG9F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,gBAAgB,GAAgD,IAAI,GAAG,CAAC;IAC5E,CAAC,+CAA+C,EAAE,qBAAqB,CAAC;CACzE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,YAAsE,EACtE,mBAA0C;IAE1C,+FAA+F;IAC/F,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,uEAAuE;QACvE,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAA+B,OAKjE;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3E,OAAO,CACL,MAAM;QACN,aAAa,CAAgC,KAAK,EAAE,YAAY,EAAE,EAAE;YAClE,qBAAqB,CAAC,YAAY,EAAE,GAAG,IAAK,aAAsB,CAAC,CAAC;YACpE,gBAAgB,CAAC,YAAY,EAAE;gBAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAClE,CAAC,CAAC;YACH,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-fusion.js","sourceRoot":"","sources":["../../../src/scope/resolve-fusion.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,aAAa,GAGd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAG9F,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,gBAAgB,GAAgD,IAAI,GAAG,CAAC;IAC5E,CAAC,+CAA+C,EAAE,qBAAqB,CAAC;CACzE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,YAAsE,EACtE,mBAA0C;IAE1C,+FAA+F;IAC/F,KAAK,MAAM,UAAU,IAAI,mBAAmB,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrD,uEAAuE;QACvE,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAA+B,OAKjE;IACC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC3E,OAAO,CACL,MAAM;QACN,aAAa,CAAgC,KAAK,EAAE,YAAY,EAAE,EAAE;YAClE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAClE,OAAO;gBACL,CAAC,CAAC,eAAe,CAAC;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,kBAAkB,EAAE,OAAO,CAAC,QAAQ;oBACpC,GAAG,EAAE,OAAO,CAAC,cAAc;oBAC3B,GAAG,EAAE,OAAO,CAAC,QAAQ;oBACrB,GAAG,EAAE,QAAQ;oBACb,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;iBACtB,CAAC;gBACJ,CAAC,CAAC,IAAI,CACT,CAAC;YACF,qBAAqB,CAAC,YAAY,EAAE,GAAG,IAAK,aAAsB,CAAC,CAAC;YACpE,gBAAgB,CAAC,YAAY,EAAE;gBAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAClE,CAAC,CAAC;YACH,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '1.0.5';
2
+ export const version = '1.0.7';
3
3
  //# sourceMappingURL=version.js.map