Skip to content

Commit e1e4c12

Browse files
authored
Embedded link signup (#518)
related to descope/etc#10884 Also added timeout of token to signin + tests
1 parent 4ece47c commit e1e4c12

File tree

3 files changed

+74
-1
lines changed

3 files changed

+74
-1
lines changed

lib/management/paths.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export default {
3838
generateMagicLinkForTest: '/v1/mgmt/tests/generate/magiclink',
3939
generateEnchantedLinkForTest: '/v1/mgmt/tests/generate/enchantedlink',
4040
generateEmbeddedLink: '/v1/mgmt/user/signin/embeddedlink',
41+
generateSignUpEmbeddedLink: '/v1/mgmt/user/signup/embeddedlink',
4142
history: '/v1/mgmt/user/history',
4243
},
4344
project: {

lib/management/user.test.ts

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1790,6 +1790,53 @@ describe('Management User', () => {
17901790
});
17911791
});
17921792

1793+
describe('generateSignUpEmbeddedLink', () => {
1794+
it('should send the correct request and receive correct response', async () => {
1795+
const mockResponse = {
1796+
token: 'myToken',
1797+
};
1798+
const httpResponse = {
1799+
ok: true,
1800+
json: () => mockResponse,
1801+
clone: () => ({
1802+
json: () => Promise.resolve(mockResponse),
1803+
}),
1804+
status: 200,
1805+
};
1806+
mockHttpClient.post.mockResolvedValue(httpResponse);
1807+
1808+
const resp: SdkResponse<GenerateEmbeddedLinkResponse> =
1809+
await management.user.generateSignUpEmbeddedLink(
1810+
'some-id',
1811+
{ name: 'John Doe' },
1812+
true,
1813+
true,
1814+
{ mfa: true },
1815+
12,
1816+
);
1817+
1818+
expect(mockHttpClient.post).toHaveBeenCalledWith(
1819+
apiPaths.user.generateSignUpEmbeddedLink,
1820+
{
1821+
loginId: 'some-id',
1822+
user: { name: 'John Doe' },
1823+
emailVerified: true,
1824+
phoneVerified: true,
1825+
loginOptions: { mfa: true },
1826+
timeout: 12,
1827+
},
1828+
{ token: 'key' },
1829+
);
1830+
1831+
expect(resp).toEqual({
1832+
code: 200,
1833+
data: mockResponse,
1834+
ok: true,
1835+
response: httpResponse,
1836+
});
1837+
});
1838+
});
1839+
17931840
describe('setPassword', () => {
17941841
it('should send the correct request and receive correct response', async () => {
17951842
const httpResponse = {

lib/management/user.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -915,11 +915,36 @@ const withUser = (sdk: CoreSdk, managementKey?: string) => {
915915
generateEmbeddedLink: (
916916
loginId: string,
917917
customClaims?: Record<string, any>,
918+
timeout?: number,
918919
): Promise<SdkResponse<GenerateEmbeddedLinkResponse>> =>
919920
transformResponse<GenerateEmbeddedLinkResponse>(
920921
sdk.httpClient.post(
921922
apiPaths.user.generateEmbeddedLink,
922-
{ loginId, customClaims },
923+
{ loginId, customClaims, timeout },
924+
{ token: managementKey },
925+
),
926+
(data) => data,
927+
),
928+
929+
generateSignUpEmbeddedLink: (
930+
loginId: string,
931+
user?: {
932+
name?: string;
933+
givenName?: string;
934+
middleName?: string;
935+
familyName?: string;
936+
phone?: string;
937+
email?: string;
938+
},
939+
emailVerified?: boolean,
940+
phoneVerified?: boolean,
941+
loginOptions?: LoginOptions,
942+
timeout?: number,
943+
): Promise<SdkResponse<GenerateEmbeddedLinkResponse>> =>
944+
transformResponse<GenerateEmbeddedLinkResponse>(
945+
sdk.httpClient.post(
946+
apiPaths.user.generateSignUpEmbeddedLink,
947+
{ loginId, user, emailVerified, phoneVerified, loginOptions, timeout },
923948
{ token: managementKey },
924949
),
925950
(data) => data,

0 commit comments

Comments
 (0)