mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-06-01 10:06:17 +00:00
Add Shlink prefix to api-contract models
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ShlinkApiClient } from '../../../src/api-contract';
|
||||
import type { ShortUrl } from '../../../src/short-urls/data';
|
||||
import type { ShlinkShortUrl } from '../../../src/short-urls/data';
|
||||
import {
|
||||
createShortUrl as createShortUrlCreator,
|
||||
shortUrlCreationReducerCreator,
|
||||
} from '../../../src/short-urls/reducers/shortUrlCreation';
|
||||
|
||||
describe('shortUrlCreationReducer', () => {
|
||||
const shortUrl = fromPartial<ShortUrl>({});
|
||||
const shortUrl = fromPartial<ShlinkShortUrl>({});
|
||||
const createShortUrlCall = vi.fn();
|
||||
const buildShlinkApiClient = () => fromPartial<ShlinkApiClient>({ createShortUrl: createShortUrlCall });
|
||||
const createShortUrl = createShortUrlCreator(buildShlinkApiClient);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ShlinkApiClient } from '../../../src/api-contract';
|
||||
import type { RootState } from '../../../src/container/store';
|
||||
import type { ShortUrl } from '../../../src/short-urls/data';
|
||||
import type { ShlinkShortUrl } from '../../../src/short-urls/data';
|
||||
import { shortUrlDetailReducerCreator } from '../../../src/short-urls/reducers/shortUrlDetail';
|
||||
import type { ShortUrlsList } from '../../../src/short-urls/reducers/shortUrlsList';
|
||||
|
||||
@@ -25,7 +25,7 @@ describe('shortUrlDetailReducer', () => {
|
||||
});
|
||||
|
||||
it('return short URL on GET_SHORT_URL_DETAIL', () => {
|
||||
const actionShortUrl = fromPartial<ShortUrl>({ longUrl: 'foo', shortCode: 'bar' });
|
||||
const actionShortUrl = fromPartial<ShlinkShortUrl>({ longUrl: 'foo', shortCode: 'bar' });
|
||||
const state = reducer(
|
||||
{ loading: true, error: false },
|
||||
getShortUrlDetail.fulfilled(actionShortUrl, '', { shortCode: '' }),
|
||||
@@ -58,7 +58,7 @@ describe('shortUrlDetailReducer', () => {
|
||||
}),
|
||||
],
|
||||
])('performs API call when short URL is not found in local state', async (shortUrlsList?: ShortUrlsList) => {
|
||||
const resolvedShortUrl = fromPartial<ShortUrl>({ longUrl: 'foo', shortCode: 'abc123' });
|
||||
const resolvedShortUrl = fromPartial<ShlinkShortUrl>({ longUrl: 'foo', shortCode: 'abc123' });
|
||||
getShortUrlCall.mockResolvedValue(resolvedShortUrl);
|
||||
|
||||
await getShortUrlDetail({ shortCode: 'abc123', domain: '' })(dispatchMock, buildGetState(shortUrlsList), {});
|
||||
@@ -69,8 +69,8 @@ describe('shortUrlDetailReducer', () => {
|
||||
});
|
||||
|
||||
it('avoids API calls when short URL is found in local state', async () => {
|
||||
const foundShortUrl = fromPartial<ShortUrl>({ longUrl: 'foo', shortCode: 'abc123' });
|
||||
getShortUrlCall.mockResolvedValue(fromPartial<ShortUrl>({}));
|
||||
const foundShortUrl = fromPartial<ShlinkShortUrl>({ longUrl: 'foo', shortCode: 'abc123' });
|
||||
getShortUrlCall.mockResolvedValue(fromPartial<ShlinkShortUrl>({}));
|
||||
|
||||
await getShortUrlDetail(foundShortUrl)(
|
||||
dispatchMock,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ShortUrl } from '../../../src/short-urls/data';
|
||||
import type { ShlinkShortUrl } from '../../../src/short-urls/data';
|
||||
import {
|
||||
editShortUrl as editShortUrlCreator,
|
||||
shortUrlEditionReducerCreator,
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
describe('shortUrlEditionReducer', () => {
|
||||
const longUrl = 'https://shlink.io';
|
||||
const shortCode = 'abc123';
|
||||
const shortUrl = fromPartial<ShortUrl>({ longUrl, shortCode });
|
||||
const shortUrl = fromPartial<ShlinkShortUrl>({ longUrl, shortCode });
|
||||
const updateShortUrl = vi.fn().mockResolvedValue(shortUrl);
|
||||
const buildShlinkApiClient = vi.fn().mockReturnValue({ updateShortUrl });
|
||||
const editShortUrl = editShortUrlCreator(buildShlinkApiClient);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { fromPartial } from '@total-typescript/shoehorn';
|
||||
import type { ShlinkApiClient, ShlinkShortUrlsResponse } from '../../../src/api-contract';
|
||||
import type { ShortUrl } from '../../../src/short-urls/data';
|
||||
import type { ShlinkShortUrl } from '../../../src/short-urls/data';
|
||||
import { createShortUrl as createShortUrlCreator } from '../../../src/short-urls/reducers/shortUrlCreation';
|
||||
import { shortUrlDeleted } from '../../../src/short-urls/reducers/shortUrlDeletion';
|
||||
import { editShortUrl as editShortUrlCreator } from '../../../src/short-urls/reducers/shortUrlEdition';
|
||||
@@ -102,36 +102,36 @@ describe('shortUrlsListReducer', () => {
|
||||
it.each([
|
||||
[
|
||||
[
|
||||
fromPartial<ShortUrl>({ shortCode }),
|
||||
fromPartial<ShortUrl>({ shortCode, domain: 'example.com' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'foo' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode, domain: 'example.com' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'foo' }),
|
||||
],
|
||||
[{ shortCode: 'newOne' }, { shortCode }, { shortCode, domain: 'example.com' }, { shortCode: 'foo' }],
|
||||
],
|
||||
[
|
||||
[
|
||||
fromPartial<ShortUrl>({ shortCode }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'code' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'foo' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'bar' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'baz' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'code' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'foo' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'bar' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'baz' }),
|
||||
],
|
||||
[{ shortCode: 'newOne' }, { shortCode }, { shortCode: 'code' }, { shortCode: 'foo' }, { shortCode: 'bar' }],
|
||||
],
|
||||
[
|
||||
[
|
||||
fromPartial<ShortUrl>({ shortCode }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'code' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'foo' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'bar' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'baz1' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'baz2' }),
|
||||
fromPartial<ShortUrl>({ shortCode: 'baz3' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'code' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'foo' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'bar' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'baz1' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'baz2' }),
|
||||
fromPartial<ShlinkShortUrl>({ shortCode: 'baz3' }),
|
||||
],
|
||||
[{ shortCode: 'newOne' }, { shortCode }, { shortCode: 'code' }, { shortCode: 'foo' }, { shortCode: 'bar' }],
|
||||
],
|
||||
])('prepends new short URL and increases total on CREATE_SHORT_URL', (data, expectedData) => {
|
||||
const newShortUrl = fromPartial<ShortUrl>({ shortCode: 'newOne' });
|
||||
const newShortUrl = fromPartial<ShlinkShortUrl>({ shortCode: 'newOne' });
|
||||
const state = {
|
||||
shortUrls: fromPartial<ShlinkShortUrlsResponse>({
|
||||
data,
|
||||
@@ -152,15 +152,15 @@ describe('shortUrlsListReducer', () => {
|
||||
});
|
||||
|
||||
it.each([
|
||||
((): [ShortUrl, ShortUrl[], ShortUrl[]] => {
|
||||
const editedShortUrl = fromPartial<ShortUrl>({ shortCode: 'notMatching' });
|
||||
const list: ShortUrl[] = [fromPartial({ shortCode: 'foo' }), fromPartial({ shortCode: 'bar' })];
|
||||
((): [ShlinkShortUrl, ShlinkShortUrl[], ShlinkShortUrl[]] => {
|
||||
const editedShortUrl = fromPartial<ShlinkShortUrl>({ shortCode: 'notMatching' });
|
||||
const list: ShlinkShortUrl[] = [fromPartial({ shortCode: 'foo' }), fromPartial({ shortCode: 'bar' })];
|
||||
|
||||
return [editedShortUrl, list, list];
|
||||
})(),
|
||||
((): [ShortUrl, ShortUrl[], ShortUrl[]] => {
|
||||
const editedShortUrl = fromPartial<ShortUrl>({ shortCode: 'matching', longUrl: 'new_one' });
|
||||
const list: ShortUrl[] = [
|
||||
((): [ShlinkShortUrl, ShlinkShortUrl[], ShlinkShortUrl[]] => {
|
||||
const editedShortUrl = fromPartial<ShlinkShortUrl>({ shortCode: 'matching', longUrl: 'new_one' });
|
||||
const list: ShlinkShortUrl[] = [
|
||||
fromPartial({ shortCode: 'matching', longUrl: 'old_one' }),
|
||||
fromPartial({ shortCode: 'bar' }),
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user