1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-03-09 00:18:26 +01:00

fix: misunderstanding node URL api

This commit is contained in:
Christopher Kolstad 2021-05-11 14:43:41 +02:00
parent 69ded61448
commit 171b5182a5
2 changed files with 31 additions and 6 deletions

View File

@ -28,7 +28,7 @@ export default class ResetTokenService {
private logger: Logger; private logger: Logger;
private readonly unleashBase: URL; private readonly unleashBase: string;
constructor( constructor(
stores: IStores, stores: IStores,
@ -36,7 +36,7 @@ export default class ResetTokenService {
) { ) {
this.store = stores.resetTokenStore; this.store = stores.resetTokenStore;
this.logger = getLogger('/services/reset-token-service.ts'); this.logger = getLogger('/services/reset-token-service.ts');
this.unleashBase = new URL(server.unleashUrl); this.unleashBase = server.unleashUrl;
} }
async useAccessToken(token: IResetQuery): Promise<boolean> { async useAccessToken(token: IResetQuery): Promise<boolean> {
@ -82,7 +82,7 @@ export default class ResetTokenService {
} }
private getExistingInvitationUrl(token: IResetToken) { private getExistingInvitationUrl(token: IResetToken) {
return new URL(`/#/new-user?token=${token.token}`, this.unleashBase); return new URL(`${this.unleashBase}/new-user?token=${token.token}`);
} }
private async createResetUrl( private async createResetUrl(
@ -92,7 +92,7 @@ export default class ResetTokenService {
): Promise<URL> { ): Promise<URL> {
const token = await this.createToken(forUser, creator); const token = await this.createToken(forUser, creator);
return Promise.resolve( return Promise.resolve(
new URL(`${path}?token=${token.token}`, this.unleashBase), new URL(`${this.unleashBase}${path}?token=${token.token}`),
); );
} }

View File

@ -65,6 +65,28 @@ test.serial('Should create a reset link', async t => {
); );
}); });
test.serial(
'Should create a reset link with unleashUrl with context path',
async t => {
const localConfig = createTestConfig({
server: { unleashUrl: 'http://localhost:4242/my/sub/path' },
});
const resetToken: ResetTokenService = new ResetTokenService(
stores,
localConfig,
);
const url = await resetToken.createResetPasswordUrl(
userIdToCreateResetFor,
adminUser,
);
t.is(
url.toString().substring(0, url.toString().indexOf('=')),
`${localConfig.server.unleashUrl}/reset-password?token`,
);
},
);
test.serial('Should create a welcome link', async t => { test.serial('Should create a welcome link', async t => {
const url = await resetTokenService.createNewUserUrl( const url = await resetTokenService.createNewUserUrl(
userIdToCreateResetFor, userIdToCreateResetFor,
@ -108,8 +130,11 @@ test.serial('Creating a new token should expire older tokens', async t => {
test.serial( test.serial(
'Retrieving valid invitation links should retrieve an object with userid key and token value', 'Retrieving valid invitation links should retrieve an object with userid key and token value',
async t => { async t => {
await resetTokenService.createToken(userIdToCreateResetFor, adminUser); const token = await resetTokenService.createToken(
userIdToCreateResetFor,
adminUser,
);
t.truthy(token);
const activeInvitations = await resetTokenService.getActiveInvitations(); const activeInvitations = await resetTokenService.getActiveInvitations();
t.true(Object.keys(activeInvitations).length === 1); t.true(Object.keys(activeInvitations).length === 1);
t.true(+Object.keys(activeInvitations)[0] === userIdToCreateResetFor); t.true(+Object.keys(activeInvitations)[0] === userIdToCreateResetFor);