Updated tests from modified code

This commit is contained in:
Alejandro Celaya 2020-01-19 13:20:46 +01:00
parent d44a4b260e
commit 207a8cef20
3 changed files with 46 additions and 1 deletions

View file

@ -51,7 +51,7 @@ export default class ShlinkApiClient {
updateShortUrlMeta = (shortCode, meta) =>
this._performRequest(`/short-urls/${shortCode}`, 'PATCH', {}, meta)
.then(() => ({ meta }));
.then(() => meta);
listTags = () =>
this._performRequest('/tags', 'GET')

View file

@ -6,6 +6,7 @@ import reducer, {
} from '../../../src/short-urls/reducers/shortUrlsList';
import { SHORT_URL_TAGS_EDITED } from '../../../src/short-urls/reducers/shortUrlTags';
import { SHORT_URL_DELETED } from '../../../src/short-urls/reducers/shortUrlDeletion';
import { SHORT_URL_META_EDITED } from '../../../src/short-urls/reducers/shortUrlMeta';
describe('shortUrlsListReducer', () => {
describe('reducer', () => {
@ -52,6 +53,31 @@ describe('shortUrlsListReducer', () => {
});
});
it('Updates meta on matching URL on SHORT_URL_META_EDITED', () => {
const shortCode = 'abc123';
const meta = {
maxVisits: 5,
validSince: '2020-05-05',
};
const state = {
shortUrls: {
data: [
{ shortCode, meta: { maxVisits: 10 } },
{ shortCode: 'foo', meta: null },
],
},
};
expect(reducer(state, { type: SHORT_URL_META_EDITED, shortCode, meta })).toEqual({
shortUrls: {
data: [
{ shortCode, meta },
{ shortCode: 'foo', meta: null },
],
},
});
});
it('Removes matching URL on SHORT_URL_DELETED', () => {
const shortCode = 'abc123';
const state = {

View file

@ -102,6 +102,25 @@ describe('ShlinkApiClient', () => {
});
});
describe('updateShortUrlMeta', () => {
it('properly updates short URL meta', async () => {
const expectedMeta = {
maxVisits: 50,
validSince: '2025-01-01T10:00:00+01:00',
};
const axiosSpy = jest.fn(createAxiosMock());
const { updateShortUrlMeta } = new ShlinkApiClient(axiosSpy);
const result = await updateShortUrlMeta('abc123', expectedMeta);
expect(expectedMeta).toEqual(result);
expect(axiosSpy).toHaveBeenCalledWith(expect.objectContaining({
url: '/short-urls/abc123',
method: 'PATCH',
}));
});
});
describe('listTags', () => {
it('properly returns list of tags', async () => {
const expectedTags = [ 'foo', 'bar' ];