Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

Commit

Permalink
Merge f24cab1 into bc6556c
Browse files Browse the repository at this point in the history
  • Loading branch information
AindriuBrennan committed Apr 7, 2020
2 parents bc6556c + f24cab1 commit 8fcd5bd
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/UnifiedPushAdminClient.ts
Expand Up @@ -93,5 +93,12 @@ export class UnifiedPushAdminClient {
*/
create: async (appId: string, variant: Variant): Promise<Variant> =>
this.variantsAdmin.create(await this.auth(), appId, variant),
/**
* Delete a variant by its Id
* @param appId the id of the app this variant is associated with
* @param filter filter to be used to filter the variants.
*/
delete: async (appId: string, filter?: VariantFilter) =>
this.variantsAdmin.delete(await this.auth(), appId, filter),
};
}
6 changes: 6 additions & 0 deletions src/variants/VariantsAdmin.ts
Expand Up @@ -45,4 +45,10 @@ export class VariantsAdmin {
}
return (await api.post(`/applications/${appId}/${variant.type}`, variant)).data as Variant;
}

async delete(api: AxiosInstance, appId: string, filter?: VariantFilter) {
return Promise.all(
(await this.find(api, appId, filter)).map(variant => api.delete(`/applications/${appId}/${variant.variantID!}`))
);
}
}
14 changes: 14 additions & 0 deletions test/mocks/nockMocks.ts
Expand Up @@ -113,6 +113,20 @@ export const mockUps = (baseUrl = BASE_URL, auth = false) =>
expect(requestBody.indexOf('name="certificate"')).not.toEqual(-1);
return TEST_NEW_VARIANT_CREATED;
})
.delete(/rest\/applications\/?[^\/]*\/?[^\/]*/)
// tslint:disable-next-line:only-arrow-functions
.reply(200, function(uri, requestBody) {
const del = /rest\/applications\/?([^\/]*)\/?([^\/]*)/;
const params = del.exec(uri)!;
const appid = params[1];
const varId = params[2];
const app = mockData.find(appDel => appDel.pushApplicationID === appid)!;
const variants = app?.variants?.filter(variant => variant.variantID !== varId);

app.variants = variants;

return variants;
})
.persist(true);

export const mockKeyCloak = () =>
Expand Down
9 changes: 9 additions & 0 deletions test/variants/VariantsAdmin.test.ts
Expand Up @@ -77,4 +77,13 @@ describe('Variants Admin', () => {
expect(variant).toEqual(TEST_NEW_VARIANT_CREATED);
jest.restoreAllMocks();
});

it('Should delete a variant', async () => {
await variantAdmin.delete(api, TEST_APP_ID, {
variantID: 'v-2:2',
});
const appDel = mockData.find(appDel => appDel.pushApplicationID === TEST_APP_ID)!;
const varDel = appDel.variants!.find(variant => variant.variantID === 'v-2:2');
expect(appDel.variants).not.toContain(varDel);
});
});

0 comments on commit 8fcd5bd

Please sign in to comment.