From 861a3c068f09c82bba3258c9cbf1ccc7be063595 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Sat, 8 Feb 2020 09:52:30 +0100 Subject: [PATCH] Ensured domain is passed when editing meta for a short URL on a specific domain --- src/short-urls/helpers/EditMetaModal.js | 2 +- src/short-urls/reducers/shortUrlMeta.js | 4 ++-- test/short-urls/reducers/shortUrlMeta.test.js | 9 +++++---- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/short-urls/helpers/EditMetaModal.js b/src/short-urls/helpers/EditMetaModal.js index 3d403be8..d1bcb020 100644 --- a/src/short-urls/helpers/EditMetaModal.js +++ b/src/short-urls/helpers/EditMetaModal.js @@ -36,7 +36,7 @@ const EditMetaModal = ( const [ maxVisits, setMaxVisits ] = useState(shortUrl && shortUrl.meta && shortUrl.meta.maxVisits); const close = pipe(resetShortUrlMeta, toggle); - const doEdit = () => editShortUrlMeta(shortUrl.shortCode, { + const doEdit = () => editShortUrlMeta(shortUrl.shortCode, shortUrl.domain, { maxVisits: maxVisits && !isEmpty(maxVisits) ? parseInt(maxVisits) : null, validSince: validSince && formatIsoDate(validSince), validUntil: validUntil && formatIsoDate(validUntil), diff --git a/src/short-urls/reducers/shortUrlMeta.js b/src/short-urls/reducers/shortUrlMeta.js index 1fc962b9..c7891cb8 100644 --- a/src/short-urls/reducers/shortUrlMeta.js +++ b/src/short-urls/reducers/shortUrlMeta.js @@ -35,12 +35,12 @@ export default handleActions({ [RESET_EDIT_SHORT_URL_META]: () => initialState, }, initialState); -export const editShortUrlMeta = (buildShlinkApiClient) => (shortCode, meta) => async (dispatch, getState) => { +export const editShortUrlMeta = (buildShlinkApiClient) => (shortCode, domain, meta) => async (dispatch, getState) => { dispatch({ type: EDIT_SHORT_URL_META_START }); const { updateShortUrlMeta } = await buildShlinkApiClient(getState); try { - await updateShortUrlMeta(shortCode, undefined, meta); + await updateShortUrlMeta(shortCode, domain, meta); dispatch({ shortCode, meta, type: SHORT_URL_META_EDITED }); } catch (e) { dispatch({ type: EDIT_SHORT_URL_META_ERROR }); diff --git a/test/short-urls/reducers/shortUrlMeta.test.js b/test/short-urls/reducers/shortUrlMeta.test.js index 508bb836..d3019395 100644 --- a/test/short-urls/reducers/shortUrlMeta.test.js +++ b/test/short-urls/reducers/shortUrlMeta.test.js @@ -1,4 +1,5 @@ import moment from 'moment'; +import each from 'jest-each'; import reducer, { EDIT_SHORT_URL_META_START, EDIT_SHORT_URL_META_ERROR, @@ -56,12 +57,12 @@ describe('shortUrlMetaReducer', () => { afterEach(jest.clearAllMocks); - it('dispatches metadata on success', async () => { - await editShortUrlMeta(buildShlinkApiClient)(shortCode, meta)(dispatch); + each([[ undefined ], [ null ], [ 'example.com' ]]).it('dispatches metadata on success', async (domain) => { + await editShortUrlMeta(buildShlinkApiClient)(shortCode, domain, meta)(dispatch); expect(buildShlinkApiClient).toHaveBeenCalledTimes(1); expect(updateShortUrlMeta).toHaveBeenCalledTimes(1); - expect(updateShortUrlMeta).toHaveBeenCalledWith(shortCode, undefined, meta); + expect(updateShortUrlMeta).toHaveBeenCalledWith(shortCode, domain, meta); expect(dispatch).toHaveBeenCalledTimes(2); expect(dispatch).toHaveBeenNthCalledWith(1, { type: EDIT_SHORT_URL_META_START }); expect(dispatch).toHaveBeenNthCalledWith(2, { type: SHORT_URL_META_EDITED, meta, shortCode }); @@ -73,7 +74,7 @@ describe('shortUrlMetaReducer', () => { updateShortUrlMeta.mockRejectedValue(error); try { - await editShortUrlMeta(buildShlinkApiClient)(shortCode, meta)(dispatch); + await editShortUrlMeta(buildShlinkApiClient)(shortCode, undefined, meta)(dispatch); } catch (e) { expect(e).toBe(error); }