mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2024-12-23 01:20:24 +03:00
Created ImageDownloader test
This commit is contained in:
parent
3a8c7a7bf4
commit
9518a5e442
7 changed files with 50 additions and 32 deletions
|
@ -1,19 +1,18 @@
|
|||
module.exports = {
|
||||
coverageDirectory: '<rootDir>/coverage',
|
||||
collectCoverageFrom: [
|
||||
'src/**/*.{js,ts,tsx}',
|
||||
'!src/registerServiceWorker.js',
|
||||
'!src/index.ts',
|
||||
'src/**/*.{ts,tsx}',
|
||||
'!src/*.{ts,tsx}',
|
||||
'!src/reducers/index.ts',
|
||||
'!src/**/provideServices.ts',
|
||||
'!src/container/*.ts',
|
||||
],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
statements: 80,
|
||||
branches: 80,
|
||||
functions: 80,
|
||||
lines: 80,
|
||||
statements: 80,
|
||||
},
|
||||
},
|
||||
resolver: 'jest-pnp-resolver',
|
||||
|
|
25
test/common/services/ImageDownloader.test.ts
Normal file
25
test/common/services/ImageDownloader.test.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { Mock } from 'ts-mockery';
|
||||
import { AxiosInstance } from 'axios';
|
||||
import { ImageDownloader } from '../../../src/common/services/ImageDownloader';
|
||||
import { windowMock } from '../../mocks/WindowMock';
|
||||
|
||||
describe('ImageDownloader', () => {
|
||||
const get = jest.fn();
|
||||
const axios = Mock.of<AxiosInstance>({ get });
|
||||
let imageDownloader: ImageDownloader;
|
||||
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
(global as any).URL = { createObjectURL: () => '' };
|
||||
|
||||
imageDownloader = new ImageDownloader(axios, windowMock);
|
||||
});
|
||||
|
||||
test('calls URL with response type blob', async () => {
|
||||
get.mockResolvedValue({ data: {} });
|
||||
|
||||
await imageDownloader.saveImage('/foo/bar.png', 'my-image.png');
|
||||
|
||||
expect(get).toHaveBeenCalledWith('/foo/bar.png', { responseType: 'blob' });
|
||||
});
|
||||
});
|
18
test/mocks/WindowMock.ts
Normal file
18
test/mocks/WindowMock.ts
Normal file
|
@ -0,0 +1,18 @@
|
|||
import { Mock } from 'ts-mockery';
|
||||
|
||||
const createLinkMock = () => ({
|
||||
setAttribute: jest.fn(),
|
||||
click: jest.fn(),
|
||||
style: {},
|
||||
});
|
||||
|
||||
export const appendChild = jest.fn();
|
||||
|
||||
export const removeChild = jest.fn();
|
||||
|
||||
export const windowMock = Mock.of<Window>({
|
||||
document: {
|
||||
createElement: jest.fn(createLinkMock),
|
||||
body: { appendChild, removeChild },
|
||||
},
|
||||
});
|
|
@ -2,21 +2,9 @@ import { Mock } from 'ts-mockery';
|
|||
import { CsvJson } from 'csvjson';
|
||||
import ServersExporter from '../../../src/servers/services/ServersExporter';
|
||||
import LocalStorage from '../../../src/utils/services/LocalStorage';
|
||||
import { appendChild, removeChild, windowMock } from '../../mocks/WindowMock';
|
||||
|
||||
describe('ServersExporter', () => {
|
||||
const createLinkMock = () => ({
|
||||
setAttribute: jest.fn(),
|
||||
click: jest.fn(),
|
||||
style: {},
|
||||
});
|
||||
const appendChild = jest.fn();
|
||||
const removeChild = jest.fn();
|
||||
const windowMock = Mock.of<Window>({
|
||||
document: {
|
||||
createElement: jest.fn(createLinkMock),
|
||||
body: { appendChild, removeChild },
|
||||
},
|
||||
});
|
||||
const storageMock = Mock.of<LocalStorage>({
|
||||
get: jest.fn(() => ({
|
||||
abc123: {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { Doughnut } from 'react-chartjs-2';
|
|||
import { keys, values } from 'ramda';
|
||||
import { DoughnutChart } from '../../../src/visits/charts/DoughnutChart';
|
||||
|
||||
describe.skip('<DoughnutChart />', () => {
|
||||
describe('<DoughnutChart />', () => {
|
||||
let wrapper: ShallowWrapper;
|
||||
const stats = {
|
||||
foo: 123,
|
||||
|
|
|
@ -4,7 +4,7 @@ import { prettify } from '../../../src/utils/helpers/numbers';
|
|||
import { MAIN_COLOR, MAIN_COLOR_ALPHA } from '../../../src/utils/theme';
|
||||
import { HorizontalBarChart } from '../../../src/visits/charts/HorizontalBarChart';
|
||||
|
||||
describe.skip('<HorizontalBarChart />', () => {
|
||||
describe('<HorizontalBarChart />', () => {
|
||||
let wrapper: ShallowWrapper;
|
||||
const stats = {
|
||||
foo: 123,
|
||||
|
@ -16,7 +16,6 @@ describe.skip('<HorizontalBarChart />', () => {
|
|||
it('renders Bar with expected properties', () => {
|
||||
wrapper = shallow(<HorizontalBarChart stats={stats} />);
|
||||
const horizontal = wrapper.find(Bar);
|
||||
const cols = wrapper.find('.col-sm-12');
|
||||
|
||||
expect(horizontal).toHaveLength(1);
|
||||
|
||||
|
@ -37,7 +36,6 @@ describe.skip('<HorizontalBarChart />', () => {
|
|||
},
|
||||
y: { stacked: true },
|
||||
});
|
||||
expect(cols).toHaveLength(1);
|
||||
});
|
||||
|
||||
it.each([
|
||||
|
|
|
@ -2,19 +2,9 @@ import { Mock } from 'ts-mockery';
|
|||
import { CsvJson } from 'csvjson';
|
||||
import { VisitsExporter } from '../../../src/visits/services/VisitsExporter';
|
||||
import { NormalizedVisit } from '../../../src/visits/types';
|
||||
import { windowMock } from '../../mocks/WindowMock';
|
||||
|
||||
describe('VisitsExporter', () => {
|
||||
const createLinkMock = () => ({
|
||||
setAttribute: jest.fn(),
|
||||
click: jest.fn(),
|
||||
style: {},
|
||||
});
|
||||
const windowMock = Mock.of<Window>({
|
||||
document: {
|
||||
createElement: jest.fn(createLinkMock),
|
||||
body: { appendChild: jest.fn(), removeChild: jest.fn() },
|
||||
},
|
||||
});
|
||||
const toCSV = jest.fn();
|
||||
const csvToJsonMock = Mock.of<CsvJson>({ toCSV });
|
||||
let exporter: VisitsExporter;
|
||||
|
|
Loading…
Reference in a new issue